Update rules_rust

Several changes I made in 971-Robot-Code first have been upstreamed,
including finished a few pieces that I now want to use.

Change-Id: Iac6317989c1d3a0c7886c7d4a5798c6dbcedf2a9
Signed-off-by: Brian Silverman <bsilver16384@gmail.com>
diff --git a/WORKSPACE b/WORKSPACE
index 185018c..16b62ef 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -834,14 +834,23 @@
     urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz"],
 )
 
+http_archive(
+    name = "rules_rust_tinyjson",
+    build_file = "@rules_rust//util/process_wrapper:BUILD.tinyjson.bazel",
+    sha256 = "1a8304da9f9370f6a6f9020b7903b044aa9ce3470f300a1fba5bc77c78145a16",
+    strip_prefix = "tinyjson-2.3.0",
+    type = "tar.gz",
+    url = "https://crates.io/api/v1/crates/tinyjson/2.3.0/download",
+)
+
 local_repository(
     name = "rules_rust",
     path = "third_party/rules_rust",
 )
 
-load("@rules_rust//rust:repositories.bzl", "rust_toolchain_repository")
+load("@rules_rust//rust:repositories.bzl", "rust_repository_set")
 
-rust_toolchain_repository(
+rust_repository_set(
     name = "rust",
     allocator_library = "@//tools/rust:forward_allocator",
     edition = "2021",
@@ -851,8 +860,8 @@
         "armv7-unknown-linux-gnueabihf",
         "aarch64-unknown-linux-gnu",
     ],
+    register_toolchain = False,
     rustfmt_version = "1.62.0",
-    toolchain_name_prefix = "toolchain_for",
     version = "1.62.0",
 )
 
diff --git a/third_party/cargo_raze/cargo_raze.patch b/third_party/cargo_raze/cargo_raze.patch
index f4cd02a..68b263e 100644
--- a/third_party/cargo_raze/cargo_raze.patch
+++ b/third_party/cargo_raze/cargo_raze.patch
@@ -11,7 +11,7 @@
 -        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": "@rust_windows_x86_64//:cargo",
 -        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": "@rust_linux_x86_64//:cargo",
 -    }),
-+    actual = "@rust//:cargo",
++    actual = "@rust__x86_64-unknown-linux-gnu_tools//:cargo",
  )
  
  alias(
@@ -23,13 +23,21 @@
 -        "@rules_rust//rust/platform:x86_64-pc-windows-msvc": "@rust_windows_x86_64//:rustc",
 -        "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": "@rust_linux_x86_64//:rustc",
 -    }),
-+    actual = "@rust//:rustc",
++    actual = "@rust__x86_64-unknown-linux-gnu_tools//:rustc",
  )
  
  sh_binary(
 
 --- third_party/zlib/BUILD.zlib.bazel	2022-02-03 01:26:46.756187851 -0800
 +++ third_party/zlib/BUILD.zlib.bazel	2022-02-03 01:26:58.048702010 -0800
+@@ -1,6 +1,7 @@
+ # Copied from https://github.com/protocolbuffers/protobuf/blob/master/third_party/zlib.BUILD
+ 
+ load("@rules_cc//cc:defs.bzl", "cc_library")
++load("@rules_rust//cargo:cargo_build_script.bzl", "cargo_dep_env")
+ 
+ licenses(["notice"])  # BSD/MIT-like license (for zlib)
+ 
 @@ -58,6 +58,8 @@ cc_library(
          "//conditions:default": [
              "-Wno-unused-variable",
@@ -39,7 +47,7 @@
          ],
      }),
      includes = ["zlib/include/"],
-@@ -28,6 +28,15 @@ genrule(
+@@ -28,6 +28,20 @@ genrule(
      srcs = _ZLIB_HEADERS,
      outs = _ZLIB_PREFIXED_HEADERS,
      cmd = "cp $(SRCS) $(@D)/zlib/include/",
@@ -47,12 +55,17 @@
  )
 +
 +genrule(
-+    name = "dep_z_include",
-+    visibility = ["//visibility:public"],
++    name = "gen_dep_z_include",
 +    outs = ["dep_z_include.env"],
 +    srcs = [":copy_public_headers"],
 +    cmd = "echo 'DEP_Z_INCLUDE=$${pwd}/'\"$$(dirname \"$$(echo \"$(locations :copy_public_headers)\" | awk '{ print $$1 }')\")\" > $@",
 +)
++
++cargo_dep_env(
++    name = "dep_z_include",
++    src = "dep_z_include.env",
++    visibility = ["//visibility:public"],
++)
  
  cc_library(
 
@@ -153,10 +166,10 @@
 +++ third_party/cargo/remote/BUILD.libz-sys-1.1.2.bazel	2022-02-04 00:45:57.151816346 -0800
 @@ -57,6 +57,8 @@ rust_library(
      # buildifier: leave-alone
-+    dep_env_files = ["@cargo_raze__zlib//:dep_z_include"],
      deps = [
          "@cargo_raze__libc__0_2_92//:libc",
 +        "@cargo_raze__zlib//:zlib",
++        "@cargo_raze__zlib//:dep_z_include",
      ] + selects.with_or({
          # cfg(target_env = "msvc")
          (
diff --git a/third_party/rules_rust/.bazelci/presubmit.yml b/third_party/rules_rust/.bazelci/presubmit.yml
index b948e0a..ac6b419 100644
--- a/third_party/rules_rust/.bazelci/presubmit.yml
+++ b/third_party/rules_rust/.bazelci/presubmit.yml
@@ -7,25 +7,25 @@
   # TODO: Switch manual tag to platform constraint after bazel 4.0.
   - "//test/versioned_dylib:versioned_dylib_test"
 default_macos_targets: &default_macos_targets
+  - "--"
   - "//..."
 default_windows_targets: &default_windows_targets
   - "--" # Allows negative patterns; hack for https://github.com/bazelbuild/continuous-integration/pull/245
   - "//..."
   - "-//bindgen/..."
   - "-//test/proto/..."
-  - "-//tools/rust_analyzer/..."
-  - "-//test/rustfmt/..."
+  - "-//test/unit/pipelined_compilation/..."
 crate_universe_vendor_example_targets: &crate_universe_vendor_example_targets
+  - "//vendor_external:crates_vendor"
   - "//vendor_local_manifests:crates_vendor"
   - "//vendor_local_pkgs:crates_vendor"
   - "//vendor_remote_manifests:crates_vendor_manifests"
   - "//vendor_remote_pkgs:crates_vendor_pkgs"
-cc_binary_example_targets: &cc_binary_example_targets
-  - "//..."
 tasks:
   ubuntu2004:
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
+    coverage_targets: *default_linux_targets
   rbe_ubuntu1604:
     shell_commands:
       - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
@@ -40,6 +40,7 @@
   macos:
     build_targets: *default_macos_targets
     test_targets: *default_macos_targets
+    coverage_targets: *default_macos_targets
     build_flags: *aspects_flags
   windows:
     build_flags:
@@ -123,8 +124,18 @@
       - "--config=rustfmt"
       - "--config=clippy"
       - "--repo_env=CC=clang"
-      # TODO(hlopko): Make this work (some tests were failing)
-      # - "--linkopt=-fuse-ld=lld"
+    build_targets: *default_linux_targets
+    test_targets: *default_linux_targets
+  ubuntu2004_clang_lld:
+    name: With Clang and LLD
+    platform: ubuntu2004
+    shell_commands:
+      - "sudo apt -y update && sudo apt -y install lld"
+    build_flags:
+      - "--config=rustfmt"
+      - "--config=clippy"
+      - "--repo_env=CC=clang"
+      - "--linkopt=-fuse-ld=lld"
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
   ubuntu2004_rolling_clang:
@@ -134,21 +145,19 @@
       - "--config=rustfmt"
       - "--config=clippy"
       - "--repo_env=CC=clang"
-      # TODO(hlopko): Make this work (some tests were failing)
-      # - "--linkopt=-fuse-ld=lld"
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
     soft_fail: yes
     bazel: "rolling"
   ubuntu1804:
     name: "Min Bazel Version"
-    bazel: "4.0.0"
+    bazel: "5.0.0"
     platform: ubuntu1804
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
   ubuntu1804_with_aspects:
     name: "Min Bazel Version With Aspects"
-    bazel: "4.0.0"
+    bazel: "5.0.0"
     platform: ubuntu1804
     build_targets: *default_linux_targets
     test_targets: *default_linux_targets
@@ -193,6 +202,31 @@
     test_targets:
       - "//..."
     build_flags: *aspects_flags
+  ubuntu2004_examples_clang:
+    name: Examples with Clang
+    platform: ubuntu2004
+    working_directory: examples
+    build_flags:
+      - "--repo_env=CC=clang"
+    build_targets:
+      - "//..."
+    test_targets:
+      - "//..."
+    build_flags: *aspects_flags
+  ubuntu2004_examples_clang_lld:
+    name: Examples with Clang and LLD
+    platform: ubuntu2004
+    shell_commands:
+      - "sudo apt -y update && sudo apt -y install lld"
+    working_directory: examples
+    build_flags:
+      - "--repo_env=CC=clang"
+      - "--linkopt=-fuse-ld=lld"
+    build_targets:
+      - "//..."
+    test_targets:
+      - "//..."
+    build_flags: *aspects_flags
   ubuntu2004_examples_rolling:
     name: "Examples with Rolling Bazel Version"
     platform: ubuntu2004
@@ -299,52 +333,18 @@
       - "//..."
     test_targets:
       - "//..."
-  cc_binary_examples_ubuntu2004:
-    name: Crate Universe Examples
+  cc_common_link_ubuntu2004:
+    name: Build via cc_common.link
     platform: ubuntu2004
-    working_directory: examples/cc_binary
-    run_targets: *cc_binary_example_targets
+    working_directory: test/cc_common_link
     build_targets:
       - "//..."
     test_targets:
       - "//..."
-    build_flags: *aspects_flags
-  cc_binary_rbe_ubuntu1604:
-    name: Crate Universe Examples
-    platform: rbe_ubuntu1604
-    working_directory: examples/cc_binary
-    shell_commands:
-      - sed -i 's/^# load("@bazelci_rules/load("@bazelci_rules/' WORKSPACE.bazel
-      - sed -i 's/^# rbe_preconfig/rbe_preconfig/' WORKSPACE.bazel
-    run_targets: *cc_binary_example_targets
-    build_targets:
-      - "//..."
-    test_targets:
-      - "//..."
-    build_flags: *aspects_flags
-  cc_binary_examples_macos:
-    name: Crate Universe Examples
-    platform: macos
-    working_directory: examples/cc_binary
-    run_targets: *cc_binary_example_targets
-    build_targets:
-      - "//..."
-    test_targets:
-      - "//..."
-    build_flags: *aspects_flags
-  cc_binary_examples_windows:
-    name: Crate Universe Examples
-    platform: windows
-    working_directory: examples/cc_binary
-    batch_commands:
-      - echo startup --windows_enable_symlinks >> user.bazelrc
-      - echo build --enable_runfiles >> user.bazelrc  # this is not enabled by default on windows and is necessary for the cargo build scripts
-    run_targets: *cc_binary_example_targets
-    build_flags: *aspects_flags
-    build_targets:
-      - "//..."
-    test_targets:
-      - "//..."
+    build_flags:
+      - "--@rules_rust//rust/settings:experimental_use_cc_common_link=True"
+
+
 buildifier:
   version: latest
   warnings: "all"
diff --git a/third_party/rules_rust/.bazelignore b/third_party/rules_rust/.bazelignore
index 2a58041..8c75c35 100644
--- a/third_party/rules_rust/.bazelignore
+++ b/third_party/rules_rust/.bazelignore
@@ -1,3 +1,4 @@
 docs
 examples
 crate_universe/private/bootstrap
+test/cc_common_link
diff --git a/third_party/rules_rust/.clang-format b/third_party/rules_rust/.clang-format
new file mode 100644
index 0000000..2296f7d
--- /dev/null
+++ b/third_party/rules_rust/.clang-format
@@ -0,0 +1,3 @@
+---
+BasedOnStyle: Google
+...
diff --git a/third_party/rules_rust/.github/.gitignore b/third_party/rules_rust/.github/.gitignore
new file mode 100644
index 0000000..cf7de92
--- /dev/null
+++ b/third_party/rules_rust/.github/.gitignore
@@ -0,0 +1,2 @@
+release_notes.txt
+rules_rust*.tar.gz
diff --git a/third_party/rules_rust/.github/github.bazelrc b/third_party/rules_rust/.github/github.bazelrc
new file mode 100644
index 0000000..74fb554
--- /dev/null
+++ b/third_party/rules_rust/.github/github.bazelrc
@@ -0,0 +1,20 @@
+# Bazel settings for use in Github CI
+
+# Always display the flags being used
+common --announce_rc
+
+# These settings make the windows workers behave similarly to unix workers
+startup --windows_enable_symlinks
+build --enable_runfiles
+
+# Show errors in CI
+test --test_output=errors
+
+# Show more information about failures
+build --verbose_failures
+
+# UI for cleaner CI output
+common --color=no
+common --curses=no
+common --show_task_finish
+common --show_timestamps
diff --git a/third_party/rules_rust/.github/release_notes.template b/third_party/rules_rust/.github/release_notes.template
new file mode 100644
index 0000000..26c3b67
--- /dev/null
+++ b/third_party/rules_rust/.github/release_notes.template
@@ -0,0 +1,15 @@
+# {version}
+
+```python
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+http_archive(
+    name = "rules_rust",
+    sha256 = "{sha256}",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_rust/releases/download/{version}/rules_rust-v{version}.tar.gz",
+        "https://github.com/bazelbuild/rules_rust/releases/download/{version}/rules_rust-v{version}.tar.gz",
+    ],
+)
+```
+
+Additional documentation can be found at: https://bazelbuild.github.io/rules_rust/#setup
diff --git a/third_party/rules_rust/.github/version.bzl.template b/third_party/rules_rust/.github/version.bzl.template
deleted file mode 100644
index b3591a8..0000000
--- a/third_party/rules_rust/.github/version.bzl.template
+++ /dev/null
@@ -1,8 +0,0 @@
-"""The version of rules_rust.
-          
-Note: Any change to this file will trigger a new release. To make changes here,
-edit `./.github/version.bzl.template` instead and run the `Release` action to
-create a new release with an updated `./version.bzl` file.
-"""
-
-VERSION = "{VERSION}"
diff --git a/third_party/rules_rust/.github/workflows/release.yaml b/third_party/rules_rust/.github/workflows/release.yaml
new file mode 100644
index 0000000..bd4dbab
--- /dev/null
+++ b/third_party/rules_rust/.github/workflows/release.yaml
@@ -0,0 +1,225 @@
+---
+name: Release
+on:
+  workflow_dispatch:
+
+defaults:
+  run:
+    shell: bash
+
+env:
+  BAZEL_STARTUP_FLAGS: --bazelrc=${{ github.workspace }}/.github/github.bazelrc
+
+jobs:
+  validation:
+    runs-on: ubuntu-20.04
+    steps:
+      - uses: actions/checkout@v2
+      # TODO: Unfortunately it's not obvious how to restrict `workflow_dispatch` to a particular branch
+      # so this step ensures releases are always done off of `main`.
+      - name: Ensure branch is 'main'
+        run: |
+          git fetch origin &> /dev/null
+          branch="$(git rev-parse --abbrev-ref HEAD)"
+          if [[ "${branch}" != "main" ]]; then
+            echo "The release branch must be main. Got '${branch}'' instead." >&2
+            exit 1
+          else
+            echo "Branch is '${branch}'"
+          fi
+      - name: Ensure release does not already exist
+        run: |
+          git fetch origin &> /dev/null
+          version="$(grep 'VERSION =' ${{ github.workspace }}/version.bzl | sed 's/VERSION = "//' | sed 's/"//')"
+          if [[ -n "$(git tag -l ${version})" ]]; then
+            echo "A release '${version}' already exists." >&2
+            exit 1
+          else
+            echo "Tag '${version}' will be created"
+          fi
+  builds:
+    needs: validation
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        # Create a job for each target triple
+        include:
+          - os: macos-11
+            env:
+              TARGET: "aarch64-apple-darwin"
+          - os: ubuntu-20.04
+            env:
+              TARGET: "aarch64-unknown-linux-gnu"
+          - os: macos-11
+            env:
+              TARGET: "x86_64-apple-darwin"
+          - os: ubuntu-20.04
+            env:
+              TARGET: "x86_64-pc-windows-gnu"
+          - os: windows-2019
+            env:
+              TARGET: "x86_64-pc-windows-msvc"
+          - os: ubuntu-20.04
+            env:
+              TARGET: "x86_64-unknown-linux-gnu"
+          - os: ubuntu-20.04
+            env:
+              TARGET: "x86_64-unknown-linux-musl"
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install rust toolchains for host
+        run: |
+          # Detect the current version of rust
+          version="$(grep 'DEFAULT_RUST_VERSION =' ./rust/private/common.bzl | grep -o '[[:digit:].]\+')"
+          rustup override set "${version}"
+          rustup update stable && rustup default stable
+      - name: Setup macos build tooling
+        run: |
+          sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer/
+          # Set SDK environment variables
+          echo "SDKROOT=$(xcrun -sdk macosx11.1 --show-sdk-path)" >> $GITHUB_ENV
+          echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx11.1 --show-sdk-platform-version)" >> $GITHUB_ENV
+        if: startswith(matrix.os, 'macos')
+      - name: Setup Windows Bazelrc
+        run: |
+          echo "startup --output_user_root=C:/tmp" > ./user.bazelrc
+        if: startswith(matrix.os, 'Windows')
+      - name: Build cargo-bazel binaries
+        run: |
+          # Build binaries
+          if [[ "${RUNNER_OS}" == "Windows" ]]; then
+            OUTPUT_PATH="$(cygpath "${{ github.workspace }}/crate_universe/target/artifacts" -m)"
+          else
+            OUTPUT_PATH="${{ github.workspace }}/crate_universe/target/artifacts"
+          fi
+            bazel ${BAZEL_STARTUP_FLAGS[@]} run //crate_universe/tools/cross_installer -- --target=${TARGET} --output="${OUTPUT_PATH}"
+        env:
+          TARGET: "${{ matrix.env.TARGET }}"
+      - uses: actions/upload-artifact@v2
+        with:
+          name: "${{ matrix.env.TARGET }}"
+          path: ${{ github.workspace }}/crate_universe/target/artifacts/${{ matrix.env.TARGET }}
+          if-no-files-found: error
+  release:
+    needs: builds
+    runs-on: ubuntu-20.04
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/download-artifact@v2
+        with:
+          path: ${{ github.workspace }}/crate_universe/target/artifacts
+      - name: Detect the current version
+        run: |
+          version="$(grep 'VERSION =' ${{ github.workspace }}/version.bzl | grep -o '[[:digit:].]\+')"
+          echo "RELEASE_VERSION=${version}" >> $GITHUB_ENV
+      - name: Create the rules archive
+        run: |
+          # Update urls and sha256 values
+          bazel ${BAZEL_STARTUP_FLAGS[@]}  run //crate_universe/tools/urls_generator -- --artifacts-dir="${ARTIFACTS_DIR}" --url-prefix="${URL_PREFIX}"
+          bazel clean
+          # Build an archive of the repo contents
+          tar -czf ${{ github.workspace }}/.github/rules_rust.tar.gz --exclude=".git" --exclude=".github" --exclude="examples" -C ${{ github.workspace }} .
+          # Save the sha256 checksum of the distro archive to the environment
+          sha256="$(shasum --algorithm 256 ${{ github.workspace }}/.github/rules_rust.tar.gz | awk '{ print $1 }')"
+          echo "ARCHIVE_SHA256=${sha256}" >> $GITHUB_ENV
+        env:
+          CARGO_BAZEL_GENERATOR_URL: file://${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-gnu/cargo-bazel
+          ARTIFACTS_DIR: ${{ github.workspace }}/crate_universe/target/artifacts
+          URL_PREFIX: https://github.com/${{ github.repository_owner }}/rules_rust/releases/download/${{ env.RELEASE_VERSION }}
+      # Upload the artifact in case creating a release fails so all artifacts can then be manually recovered.
+      - uses: actions/upload-artifact@v2
+        with:
+          name: "rules_rust.tar.gz"
+          path: ${{ github.workspace }}/.github/rules_rust.tar.gz
+          if-no-files-found: error
+      - name: Generate release notes
+        run: |
+          # Generate the release notes
+          sed 's/{version}/${{ env.RELEASE_VERSION }}/g' ${{ github.workspace }}/.github/release_notes.template \
+          | sed 's/{sha256}/${{ env.ARCHIVE_SHA256 }}/g' \
+          > ${{ github.workspace }}/.github/release_notes.txt
+      - name: Create release
+        uses: softprops/action-gh-release@v1
+        id: rules_rust_release
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          generate_release_notes: true
+          tag_name: ${{ env.RELEASE_VERSION }}
+          body_path: ${{ github.workspace }}/.github/release_notes.txt
+          target_commitish: ${{ github.base_ref }}
+
+      - name: "Upload the rules archive"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: rules_rust-v${{ env.RELEASE_VERSION }}.tar.gz
+          asset_path: ${{ github.workspace }}/.github/rules_rust.tar.gz
+          asset_content_type: application/gzip
+
+      # There must be a upload action for each platform triple we create
+      - name: "Upload aarch64-apple-darwin"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-aarch64-apple-darwin
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-apple-darwin/cargo-bazel
+          asset_content_type: application/octet-stream
+      - name: "Upload aarch64-unknown-linux-gnu"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-aarch64-unknown-linux-gnu
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/aarch64-unknown-linux-gnu/cargo-bazel
+          asset_content_type: application/octet-stream
+      - name: "Upload x86_64-apple-darwin"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-x86_64-apple-darwin
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-apple-darwin/cargo-bazel
+          asset_content_type: application/octet-stream
+      - name: "Upload x86_64-pc-windows-gnu"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-x86_64-pc-windows-gnu.exe
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-pc-windows-gnu/cargo-bazel.exe
+          asset_content_type: application/octet-stream
+      - name: "Upload x86_64-pc-windows-msvc"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-x86_64-pc-windows-msvc.exe
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-pc-windows-msvc/cargo-bazel.exe
+          asset_content_type: application/octet-stream
+      - name: "Upload x86_64-unknown-linux-gnu"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-x86_64-unknown-linux-gnu
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-gnu/cargo-bazel
+          asset_content_type: application/octet-stream
+      - name: "Upload x86_64-unknown-linux-musl"
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
+          asset_name: cargo-bazel-x86_64-unknown-linux-musl
+          asset_path: ${{ github.workspace }}/crate_universe/target/artifacts/x86_64-unknown-linux-musl/cargo-bazel
+          asset_content_type: application/octet-stream
diff --git a/third_party/rules_rust/.github/workflows/release_begin.yaml b/third_party/rules_rust/.github/workflows/release_begin.yaml
deleted file mode 100644
index 6313efa..0000000
--- a/third_party/rules_rust/.github/workflows/release_begin.yaml
+++ /dev/null
@@ -1,197 +0,0 @@
----
-name: Release
-on:
-  workflow_dispatch:
-    inputs:
-      version:
-        description: "The new version to release"
-        required: true
-
-defaults:
-  run:
-    shell: bash
-
-jobs:
-  crate_universe_builds:
-    if: ${{ github.repository_owner == 'bazelbuild' }}
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        # Create a job for each target triple
-        include:
-          - os: macos-10.15
-            env:
-              TARGET: "aarch64-apple-darwin"
-              EXTENSION: ""
-          - os: ubuntu-20.04
-            env:
-              TARGET: "aarch64-unknown-linux-gnu"
-              EXTENSION: ""
-          - os: macos-10.15
-            env:
-              TARGET: "x86_64-apple-darwin"
-              EXTENSION: ""
-          - os: ubuntu-20.04
-            env:
-              TARGET: "x86_64-pc-windows-gnu"
-              EXTENSION: ".exe"
-          - os: ubuntu-20.04
-            env:
-              TARGET: "x86_64-unknown-linux-gnu"
-              EXTENSION: ""
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          ref: "${{ github.base_ref }}"
-      - run: |
-          # Install cross
-          if [[ "${RUNNER_OS}" == "macOS" ]]; then
-            curl --fail -Lo ~/cross.tar.gz https://github.com/rust-embedded/cross/releases/download/v0.2.1/cross-v0.2.1-x86_64-apple-darwin.tar.gz
-          else
-            curl --fail -Lo ~/cross.tar.gz https://github.com/rust-embedded/cross/releases/download/v0.2.1/cross-v0.2.1-x86_64-unknown-linux-gnu.tar.gz
-          fi
-          sudo tar -xf ~/cross.tar.gz -C /usr/local/bin/
-          sudo chmod +x /usr/local/bin/cross
-        if: matrix.os != 'windows-2019'
-      - run: |
-          # Install rust toolchains for host
-
-          # Detect the current version of rust
-          version="$(grep 'DEFAULT_RUST_VERSION =' ./rust/private/common.bzl | sed 's/DEFAULT_RUST_VERSION = "//' | sed 's/"//')"
-
-          rustup override set "${version}"
-          rustup update stable && rustup default stable
-      - run: |
-          # Setup macos build tooling
-          sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer/
-
-          # Set SDK environment variables
-          echo "SDKROOT=$(xcrun -sdk macosx11.1 --show-sdk-path)" >> $GITHUB_ENV
-          echo "MACOSX_DEPLOYMENT_TARGET=$(xcrun -sdk macosx11.1 --show-sdk-platform-version)" >> $GITHUB_ENV
-        if: matrix.os == 'macOS-10.15'
-      - run: |
-          # Build binaries
-          ./crate_universe/private/bootstrap/build.sh
-        env:
-          TARGET: "${{ matrix.env.TARGET }}"
-      - uses: actions/upload-artifact@v2
-        with:
-          name: "${{ matrix.env.TARGET }}"
-          path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/${{ matrix.env.TARGET }}
-          if-no-files-found: error
-  release:
-    if: ${{ github.repository_owner == 'bazelbuild' }}
-    needs: crate_universe_builds
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-        with:
-          ref: main
-      - run: |
-          # Write new releases file
-          cat ${{ github.workspace }}/.github/version.bzl.template \
-          | sed 's/{VERSION}/${{ github.event.inputs.version }}/' \
-          > ${{ github.workspace }}/version.bzl
-      - run: |
-          # Get release candidate number
-          git fetch origin &> /dev/null
-          num_tags="$(git tag -l | grep "${{ github.event.inputs.version }}" | wc -l | xargs || true)"
-          echo "RELEASE_CANDIDATE_NUMBER=$( echo "${num_tags}" | python3 -c 'import sys; print(int(sys.stdin.read().strip()) + 1)')" >> $GITHUB_ENV
-      - uses: actions/download-artifact@v2
-        with:
-          path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin
-      - run: |
-          # Write new crate_universe defaults.bzl file
-          # Copy the new template
-          cp ${{ github.workspace }}/crate_universe/private/defaults.bzl.template ${{ github.workspace }}/crate_universe/private/defaults.bzl
-
-          # Generate the release URL
-          url="${URL_PREFIX}/crate_universe_resolver-{host_triple}{extension}"
-          sed -i "s|{DEFAULT_URL_TEMPLATE}|${url}|" ${{ github.workspace }}/crate_universe/private/defaults.bzl
-          sed -i "s|{rc}|${RELEASE_CANDIDATE_NUMBER}|" ${{ github.workspace }}/crate_universe/private/defaults.bzl
-
-          # Populate all sha256 values
-          TARGETS=(
-            aarch64-apple-darwin
-            aarch64-unknown-linux-gnu
-            x86_64-apple-darwin
-            x86_64-pc-windows-gnu
-            x86_64-unknown-linux-gnu
-          )
-          for triple in ${TARGETS[@]}; do
-            if [[ "${triple}" == *"windows"* ]]; then
-                bin_name=crate_universe_resolver.exe
-            else
-                bin_name=crate_universe_resolver
-            fi
-            sha256="$(shasum --algorithm 256 ${{ github.workspace }}/crate_universe/private/bootstrap/bin/${triple}/release/${bin_name} | awk '{ print $1 }')"
-            sed -i "s|{${triple}--sha256}|${sha256}|" ${{ github.workspace }}/crate_universe/private/defaults.bzl
-          done
-        env:
-          URL_PREFIX: https://github.com/${{ github.repository_owner }}/rules_rust/releases/download/${{ github.event.inputs.version }}
-      - run: |
-          # Update docs for release
-          SKIP_COMMIT=1 ${{ github.workspace }}/docs/update_docs.sh
-      - uses: actions/create-release@v1
-        id: rules_rust_release
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          prerelease: true
-          tag_name: ${{ github.event.inputs.version }}rc-${{ env.RELEASE_CANDIDATE_NUMBER }}
-          release_name: ${{ github.event.inputs.version }}rc-${{ env.RELEASE_CANDIDATE_NUMBER }}
-          body: ${{ github.event.inputs.version }}rc-${{ env.RELEASE_CANDIDATE_NUMBER }}
-          commitish: main
-      # There must be a upload action for each platform triple we create
-      - name: "Upload aarch64-apple-darwin"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-aarch64-apple-darwin
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/aarch64-apple-darwin/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload aarch64-unknown-linux-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-aarch64-unknown-linux-gnu
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/aarch64-unknown-linux-gnu/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-apple-darwin"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-apple-darwin
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-apple-darwin/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-pc-windows-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-pc-windows-gnu.exe
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-pc-windows-gnu/release/crate_universe_resolver.exe
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-unknown-linux-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-unknown-linux-gnu
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-unknown-linux-gnu/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - uses: peter-evans/create-pull-request@v3
-        with:
-          title: Release ${{ github.event.inputs.version }}
-          commit-message: release ${{ github.event.inputs.version }}
-          branch: release/${{ github.event.inputs.version }}
-          delete-branch: true
-          body: Release ${{ github.event.inputs.version }}
diff --git a/third_party/rules_rust/.github/workflows/release_finish.yaml b/third_party/rules_rust/.github/workflows/release_finish.yaml
deleted file mode 100644
index 116422e..0000000
--- a/third_party/rules_rust/.github/workflows/release_finish.yaml
+++ /dev/null
@@ -1,122 +0,0 @@
----
-name: Release Finalize
-on:
-  push:
-    branches:
-      - main
-    paths:
-      # Only trigger for new releases
-      - "version.bzl"
-
-defaults:
-  run:
-    shell: bash
-
-jobs:
-  release:
-    if: ${{ github.repository_owner == 'bazelbuild' }}
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-      - run: |
-          # Get current release version
-          git fetch origin &> /dev/null
-          RELEASE_VERSION=$(cat version.bzl | grep VERSION | sed 's/VERSION = "//' | sed 's/"//')
-          echo "RELEASE_VERSION=${RELEASE_VERSION}" >> $GITHUB_ENV
-
-          # Get release candidate number
-          echo "RELEASE_CANDIDATE_NUMBER=$(git tag -l | grep "${RELEASE_VERSION}" | wc -l | xargs || true)" >> $GITHUB_ENV
-      - run: |
-          # Ensure there is at least 1 release candidate in the environment
-          if [[ -z "${RELEASE_CANDIDATE_NUMBER}" ]]; then
-            exit 1
-          elif [[ "${RELEASE_CANDIDATE_NUMBER}" -eq "0" ]]; then
-            exit 1
-          fi
-      - run: |
-          # Download all artifacts from the release candidate
-          TARGETS=(
-            aarch64-apple-darwin
-            aarch64-unknown-linux-gnu
-            x86_64-apple-darwin
-            x86_64-pc-windows-gnu
-            x86_64-unknown-linux-gnu
-          )
-
-          for triple in ${TARGETS[@]}; do
-            if [[ "${triple}" == *"windows"* ]]; then
-                ext=".exe"
-            else
-                ext=""
-            fi
-            resolver="${ARTIFACT_DIR}/${triple}/release/crate_universe_resolver${ext}"
-            mkdir -p "$(dirname "${resolver}")"
-            url="${ARTIFACT_URL}/crate_universe_resolver-${triple}${ext}"
-            echo "Downloading '${url}' to '${resolver}'"
-            curl --fail -Lo "${resolver}" "${url}"
-            sha256="$(shasum --algorithm 256 "${resolver}" | awk '{ print $1 }')"
-
-            if [[ -z "$(grep "\"${triple}\": \"${sha256}\"" ${{ github.workspace }}/crate_universe/private/defaults.bzl)" ]]; then
-              echo "Unexpected sha256 value from `${url}`: got ${sha256}, expected value in `defaults.bzl`"
-              exit 1
-            fi
-          done
-        env:
-          ARTIFACT_URL: https://github.com/${{ github.repository_owner }}/rules_rust/releases/download/${{env.RELEASE_VERSION}}rc-${{ env.RELEASE_CANDIDATE_NUMBER }}
-          ARTIFACT_DIR: ${{ github.workspace }}/crate_universe/private/bootstrap/bin
-      - uses: actions/create-release@v1
-        id: rules_rust_release
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          prerelease: true
-          tag_name: ${{env.RELEASE_VERSION}}
-          release_name: ${{env.RELEASE_VERSION}}
-          body: ${{env.RELEASE_VERSION}}
-          commitish: ${{ github.base_ref }}
-      # There must be a upload action for each platform triple we create
-      - name: "Upload aarch64-apple-darwin"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-aarch64-apple-darwin
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/aarch64-apple-darwin/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload aarch64-unknown-linux-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-aarch64-unknown-linux-gnu
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/aarch64-unknown-linux-gnu/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-apple-darwin"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-apple-darwin
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-apple-darwin/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-pc-windows-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-pc-windows-gnu.exe
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-pc-windows-gnu/release/crate_universe_resolver.exe
-          asset_content_type: application/octet-stream
-      - name: "Upload x86_64-unknown-linux-gnu"
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.rules_rust_release.outputs.upload_url }}
-          asset_name: crate_universe_resolver-x86_64-unknown-linux-gnu
-          asset_path: ${{ github.workspace }}/crate_universe/private/bootstrap/bin/x86_64-unknown-linux-gnu/release/crate_universe_resolver
-          asset_content_type: application/octet-stream
diff --git a/third_party/rules_rust/.gitignore b/third_party/rules_rust/.gitignore
index ca118a2..cccba25 100644
--- a/third_party/rules_rust/.gitignore
+++ b/third_party/rules_rust/.gitignore
@@ -6,7 +6,10 @@
 # bazel
 /bazel-*
 /examples/bazel-*
+/examples/cargo_manifest_dir/external_crate/bazel-*
+/examples/crate_universe/bazel-*
 /examples/crate_universe/*/bazel-*
+/test/cc_common_link/bazel-*
 /docs/bazel-*
 user.bazelrc
 
diff --git a/third_party/rules_rust/BUILD.bazel b/third_party/rules_rust/BUILD.bazel
index 598746e..69e43c7 100644
--- a/third_party/rules_rust/BUILD.bazel
+++ b/third_party/rules_rust/BUILD.bazel
@@ -1,5 +1,5 @@
 load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
-load("//rust:defs.bzl", "capture_clippy_output", "error_format", "extra_exec_rustc_flags", "extra_rustc_flags")
+load("//rust:defs.bzl", "capture_clippy_output", "clippy_flags", "error_format", "extra_exec_rustc_flag", "extra_exec_rustc_flags", "extra_rustc_flag", "extra_rustc_flags", "is_proc_macro_dep", "is_proc_macro_dep_enabled")
 
 exports_files(["LICENSE"])
 
@@ -11,13 +11,6 @@
     visibility = ["//visibility:public"],
 )
 
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//:bzl_lib` target instead",
-    visibility = ["//visibility:public"],
-)
-
 # This setting may be changed from the command line to generate machine readable errors.
 error_format(
     name = "error_format",
@@ -25,6 +18,32 @@
     visibility = ["//visibility:public"],
 )
 
+# This setting may be used to pass extra options to clippy from the command line.
+# It applies across all targets.
+clippy_flags(
+    name = "clippy_flags",
+    build_setting_default = [],
+    visibility = ["//visibility:public"],
+)
+
+# This setting may be used to identify dependencies of proc-macro-s.
+# This feature is only enabled if `is_proc_macro_dep_enabled` is true.
+# Its value controls the BAZEL_RULES_RUST_IS_PROC_MACRO_DEP environment variable
+# made available to the rustc invocation.
+is_proc_macro_dep(
+    name = "is_proc_macro_dep",
+    build_setting_default = False,
+    visibility = ["//visibility:public"],
+)
+
+# This setting enables the feature to identify dependencies of proc-macro-s,
+# see `is_proc_macro_dep`.
+is_proc_macro_dep_enabled(
+    name = "is_proc_macro_dep_enabled",
+    build_setting_default = False,
+    visibility = ["//visibility:public"],
+)
+
 # This setting may be used to pass extra options to rustc from the command line
 # in non-exec configuration.
 # It applies across all targets whereas the rustc_flags option on targets applies only
@@ -35,6 +54,12 @@
     visibility = ["//visibility:public"],
 )
 
+extra_rustc_flag(
+    name = "extra_rustc_flag",
+    build_setting_default = "",
+    visibility = ["//visibility:public"],
+)
+
 # This setting may be used to pass extra options to rustc from the command line
 # in exec configuration.
 # It applies across all targets whereas the rustc_flags option on targets applies only
@@ -45,6 +70,12 @@
     visibility = ["//visibility:public"],
 )
 
+extra_exec_rustc_flag(
+    name = "extra_exec_rustc_flag",
+    build_setting_default = "",
+    visibility = ["//visibility:public"],
+)
+
 # This setting is used by the clippy rules. See https://bazelbuild.github.io/rules_rust/rust_clippy.html
 label_flag(
     name = "clippy.toml",
diff --git a/third_party/rules_rust/WORKSPACE.bazel b/third_party/rules_rust/WORKSPACE.bazel
index 9610b09..6c3f851 100644
--- a/third_party/rules_rust/WORKSPACE.bazel
+++ b/third_party/rules_rust/WORKSPACE.bazel
@@ -4,11 +4,11 @@
 
 rules_rust_dependencies()
 
-rust_register_toolchains(include_rustc_srcs = True)
+rust_register_toolchains()
 
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
 
-crate_deps_repository(bootstrap = True)
+crate_universe_dependencies(bootstrap = True)
 
 load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
 
@@ -18,13 +18,15 @@
 
 rust_proto_transitive_repositories()
 
-load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_repositories")
+load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_dependencies", "rust_bindgen_register_toolchains")
 
-rust_bindgen_repositories()
+rust_bindgen_dependencies()
 
-load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_deps")
+rust_bindgen_register_toolchains()
 
-rust_analyzer_deps()
+load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_dependencies")
+
+rust_analyzer_dependencies()
 
 load("@rules_rust//util/import:deps.bzl", "import_deps")
 
diff --git a/third_party/rules_rust/bindgen/3rdparty/BUILD.bazel b/third_party/rules_rust/bindgen/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..2317ac9
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/BUILD.bazel
@@ -0,0 +1,52 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "bindgen": [crate.annotation(
+            gen_build_script = True,
+        )],
+        "clang-sys": [crate.annotation(
+            gen_build_script = True,
+        )],
+        "indexmap": [crate.annotation(
+            gen_build_script = True,
+        )],
+        "libloading": [crate.annotation(
+            gen_build_script = True,
+        )],
+        "log": [crate.annotation(
+            rustc_flags = ["--cfg=atomic_cas"],
+        )],
+    },
+    cargo_lockfile = "Cargo.Bazel.lock",
+    generate_build_scripts = False,
+    mode = "remote",
+    packages = {
+        "bindgen": crate.spec(
+            version = "0.60.1",
+        ),
+        "libloading": crate.spec(
+            version = "0.7.3",
+        ),
+    },
+    repository_name = "rules_rust_bindgen",
+    tags = ["manual"],
+)
+
+alias(
+    name = "bindgen",
+    actual = "//bindgen/3rdparty/crates:bindgen__bindgen",
+    tags = ["manual"],
+    visibility = ["//visibility:public"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//bindgen/3rdparty/crates:defs.bzl",
+        "//bindgen/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//bindgen:__pkg__"],
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/bindgen/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..0ed2fcd
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,359 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bindgen"
+version = "0.60.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6"
+dependencies = [
+ "bitflags",
+ "cexpr",
+ "clang-sys",
+ "clap",
+ "env_logger",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "peeking_take_while",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "which",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_lex",
+ "indexmap",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "bindgen",
+ "libloading",
+]
+
+[[package]]
+name = "either"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "libloading"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
+dependencies = [
+ "cfg-if",
+ "winapi",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "nom"
+version = "7.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "os_str_bytes"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
+
+[[package]]
+name = "peeking_take_while"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "shlex"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+
+[[package]]
+name = "which"
+version = "4.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae"
+dependencies = [
+ "either",
+ "lazy_static",
+ "libc",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
new file mode 100644
index 0000000..a0b54c3
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "aho_corasick",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel
new file mode 100644
index 0000000..3429815
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "atty",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.14",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "hermit")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "hermit")'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..d8c2b8b
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..7021421
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,53 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "bindgen",
+    actual = "@rules_rust_bindgen__bindgen-0.60.1//:bindgen",
+    tags = ["manual"],
+)
+
+alias(
+    name = "libloading",
+    actual = "@rules_rust_bindgen__libloading-0.7.3//:libloading",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "bindgen__bindgen",
+    actual = "@rules_rust_bindgen__bindgen-0.60.1//:bindgen__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@rules_rust_bindgen__clap-3.2.12//:stdio-fixture__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel
new file mode 100644
index 0000000..65ed0d9
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bindgen-0.60.1.bazel
@@ -0,0 +1,296 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "bindgen",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clap",
+        "default",
+        "env_logger",
+        "log",
+        "logging",
+        "runtime",
+        "which",
+        "which-rustfmt",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.60.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__bindgen-0.60.1//:build_script_build",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__cexpr-0.6.0//:cexpr",
+            "@rules_rust_bindgen__clang-sys-1.3.3//:clang_sys",
+            "@rules_rust_bindgen__clap-3.2.12//:clap",
+            "@rules_rust_bindgen__env_logger-0.9.0//:env_logger",
+            "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_bindgen__lazycell-1.3.0//:lazycell",
+            "@rules_rust_bindgen__log-0.4.17//:log",
+            "@rules_rust_bindgen__peeking_take_while-0.1.2//:peeking_take_while",
+            "@rules_rust_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_bindgen__rustc-hash-1.1.0//:rustc_hash",
+            "@rules_rust_bindgen__shlex-1.1.0//:shlex",
+            "@rules_rust_bindgen__which-4.2.5//:which",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "bindgen__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clap",
+        "default",
+        "env_logger",
+        "log",
+        "logging",
+        "runtime",
+        "which",
+        "which-rustfmt",
+    ],
+    crate_root = "src/main.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.60.1",
+    deps = [
+        ":bindgen",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__bindgen-0.60.1//:build_script_build",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__cexpr-0.6.0//:cexpr",
+            "@rules_rust_bindgen__clang-sys-1.3.3//:clang_sys",
+            "@rules_rust_bindgen__clap-3.2.12//:clap",
+            "@rules_rust_bindgen__env_logger-0.9.0//:env_logger",
+            "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_bindgen__lazycell-1.3.0//:lazycell",
+            "@rules_rust_bindgen__log-0.4.17//:log",
+            "@rules_rust_bindgen__peeking_take_while-0.1.2//:peeking_take_while",
+            "@rules_rust_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_bindgen__rustc-hash-1.1.0//:rustc_hash",
+            "@rules_rust_bindgen__shlex-1.1.0//:shlex",
+            "@rules_rust_bindgen__which-4.2.5//:which",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "bindgen_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clap",
+        "default",
+        "env_logger",
+        "log",
+        "logging",
+        "runtime",
+        "which",
+        "which-rustfmt",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.60.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "bindgen_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..a2c944a
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
new file mode 100644
index 0000000..62b2c50
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cexpr-0.6.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "cexpr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__nom-7.1.1//:nom",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..7f979d3
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clang-sys-1.3.3.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clang-sys-1.3.3.bazel
new file mode 100644
index 0000000..fd28d2b
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clang-sys-1.3.3.bazel
@@ -0,0 +1,199 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0
+# ])
+
+rust_library(
+    name = "clang_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clang_3_5",
+        "clang_3_6",
+        "clang_3_7",
+        "clang_3_8",
+        "clang_3_9",
+        "clang_4_0",
+        "clang_5_0",
+        "clang_6_0",
+        "libloading",
+        "runtime",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__clang-sys-1.3.3//:build_script_build",
+            "@rules_rust_bindgen__glob-0.3.0//:glob",
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_bindgen__libloading-0.7.3//:libloading",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "clang-sys_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clang_3_5",
+        "clang_3_6",
+        "clang_3_7",
+        "clang_3_8",
+        "clang_3_9",
+        "clang_4_0",
+        "clang_5_0",
+        "clang_6_0",
+        "libloading",
+        "runtime",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    links = "clang",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.3.3",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__glob-0.3.0//:glob",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "clang-sys_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap-3.2.12.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap-3.2.12.bazel
new file mode 100644
index 0000000..de7dad1
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap-3.2.12.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "color",
+        "default",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_bindgen__indexmap-1.9.1//:indexmap",
+            "@rules_rust_bindgen__strsim-0.10.0//:strsim",
+            "@rules_rust_bindgen__termcolor-1.1.3//:termcolor",
+            "@rules_rust_bindgen__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "stdio-fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "color",
+        "default",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/bin/stdio-fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+        ":clap",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_bindgen__bitflags-1.3.2//:bitflags",
+            "@rules_rust_bindgen__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_bindgen__indexmap-1.9.1//:indexmap",
+            "@rules_rust_bindgen__strsim-0.10.0//:strsim",
+            "@rules_rust_bindgen__termcolor-1.1.3//:termcolor",
+            "@rules_rust_bindgen__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
new file mode 100644
index 0000000..6d7a45c
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap_lex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__os_str_bytes-6.2.0//:os_str_bytes",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
new file mode 100644
index 0000000..b9a02d0
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "either",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
new file mode 100644
index 0000000..8cef2f1
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "env_logger",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "default",
+        "humantime",
+        "regex",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_bindgen__humantime-2.1.0//:humantime",
+            "@rules_rust_bindgen__log-0.4.17//:log",
+            "@rules_rust_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_bindgen__termcolor-1.1.3//:termcolor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.glob-0.3.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.glob-0.3.0.bazel
new file mode 100644
index 0000000..b229170
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.glob-0.3.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "glob",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
new file mode 100644
index 0000000..2324de1
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..f4755d6
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
new file mode 100644
index 0000000..e4d9eba
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "humantime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..e2235d8
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__hashbrown-0.12.3//:hashbrown",
+            "@rules_rust_bindgen__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
new file mode 100644
index 0000000..65ba91f
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "lazy_static",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel
new file mode 100644
index 0000000..3496e7f
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.lazycell-1.3.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "lazycell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..81fa84b
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libloading-0.7.3.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libloading-0.7.3.bazel
new file mode 100644
index 0000000..cd99f1a
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.libloading-0.7.3.bazel
@@ -0,0 +1,127 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # ISC
+# ])
+
+rust_library(
+    name = "libloading",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__cfg-if-1.0.0//:cfg_if",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..ef9ffa5
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=atomic_cas",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..e549393
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
new file mode 100644
index 0000000..bb6a767
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.minimal-lexical-0.2.1.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "minimal_lexical",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel
new file mode 100644
index 0000000..cbfbefb
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.nom-7.1.1.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "nom",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "7.1.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_bindgen__minimal-lexical-0.2.1//:minimal_lexical",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
new file mode 100644
index 0000000..95c948d
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "os_str_bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw_os_str",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "6.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel
new file mode 100644
index 0000000..2618979
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.peeking_take_while-0.1.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "peeking_take_while",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..e1e99e6
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..bcc7563
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__proc-macro2-1.0.40//:proc_macro2",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..47333eb
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,109 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_bindgen__aho-corasick-0.7.18//:aho_corasick",
+            "@rules_rust_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_bindgen__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..195baea
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,98 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
new file mode 100644
index 0000000..75de0b1
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "rustc_hash",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel
new file mode 100644
index 0000000..49b021f
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.shlex-1.1.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "shlex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
new file mode 100644
index 0000000..8c741af
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "strsim",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
new file mode 100644
index 0000000..ae18d1f
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "termcolor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__winapi-util-0.1.5//:winapi_util",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
new file mode 100644
index 0000000..99bfc63
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "textwrap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.15.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..a403831
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel
new file mode 100644
index 0000000..acf903d
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.which-4.2.5.bazel
@@ -0,0 +1,104 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "which",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "4.2.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__lazy_static-1.4.0//:lazy_static",
+
+            # Common Deps
+            "@rules_rust_bindgen__either-1.7.0//:either",
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
+        ],
+        "//conditions:default": [
+            "@rules_rust_bindgen__either-1.7.0//:either",
+            "@rules_rust_bindgen__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..8747875
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,112 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "libloaderapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..ab0818a
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
new file mode 100644
index 0000000..5fde268
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "winapi_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..1aed2bb
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/crates.bzl b/third_party/rules_rust/bindgen/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..9ffa4ff
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//bindgen/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_bindgen",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//bindgen/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/bindgen/3rdparty/crates/defs.bzl b/third_party/rules_rust/bindgen/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..a7ef859
--- /dev/null
+++ b/third_party/rules_rust/bindgen/3rdparty/crates/defs.bzl
@@ -0,0 +1,787 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //bindgen/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "bindgen": "@rules_rust_bindgen__bindgen-0.60.1//:bindgen",
+            "libloading": "@rules_rust_bindgen__libloading-0.7.3//:libloading",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__aho-corasick-0.7.18",
+        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.18/download"],
+        strip_prefix = "aho-corasick-0.7.18",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.aho-corasick-0.7.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__atty-0.2.14",
+        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
+        strip_prefix = "atty-0.2.14",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.atty-0.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__bindgen-0.60.1",
+        sha256 = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bindgen/0.60.1/download"],
+        strip_prefix = "bindgen-0.60.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bindgen-0.60.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__cexpr-0.6.0",
+        sha256 = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cexpr/0.6.0/download"],
+        strip_prefix = "cexpr-0.6.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cexpr-0.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__clang-sys-1.3.3",
+        sha256 = "5a050e2153c5be08febd6734e29298e844fdb0fa21aeddd63b4eb7baa106c69b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clang-sys/1.3.3/download"],
+        strip_prefix = "clang-sys-1.3.3",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clang-sys-1.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__clap-3.2.12",
+        sha256 = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.12/download"],
+        strip_prefix = "clap-3.2.12",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap-3.2.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_lex/0.2.4/download"],
+        strip_prefix = "clap_lex-0.2.4",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.clap_lex-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__either-1.7.0",
+        sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/either/1.7.0/download"],
+        strip_prefix = "either-1.7.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.either-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__env_logger-0.9.0",
+        sha256 = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/env_logger/0.9.0/download"],
+        strip_prefix = "env_logger-0.9.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.env_logger-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__glob-0.3.0",
+        sha256 = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/glob/0.3.0/download"],
+        strip_prefix = "glob-0.3.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.glob-0.3.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__hashbrown-0.12.3",
+        sha256 = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.3/download"],
+        strip_prefix = "hashbrown-0.12.3",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.hashbrown-0.12.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__humantime-2.1.0",
+        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/humantime/2.1.0/download"],
+        strip_prefix = "humantime-2.1.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.humantime-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.indexmap-1.9.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__lazy_static-1.4.0",
+        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        strip_prefix = "lazy_static-1.4.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__lazycell-1.3.0",
+        sha256 = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lazycell/1.3.0/download"],
+        strip_prefix = "lazycell-1.3.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.lazycell-1.3.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__libloading-0.7.3",
+        sha256 = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libloading/0.7.3/download"],
+        strip_prefix = "libloading-0.7.3",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.libloading-0.7.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__minimal-lexical-0.2.1",
+        sha256 = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/minimal-lexical/0.2.1/download"],
+        strip_prefix = "minimal-lexical-0.2.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.minimal-lexical-0.2.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__nom-7.1.1",
+        sha256 = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/nom/7.1.1/download"],
+        strip_prefix = "nom-7.1.1",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.nom-7.1.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__os_str_bytes-6.2.0",
+        sha256 = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.2.0/download"],
+        strip_prefix = "os_str_bytes-6.2.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.os_str_bytes-6.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__peeking_take_while-0.1.2",
+        sha256 = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/peeking_take_while/0.1.2/download"],
+        strip_prefix = "peeking_take_while-0.1.2",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.peeking_take_while-0.1.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.proc-macro2-1.0.40.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.quote-1.0.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.regex-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__rustc-hash-1.1.0",
+        sha256 = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rustc-hash/1.1.0/download"],
+        strip_prefix = "rustc-hash-1.1.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.rustc-hash-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__shlex-1.1.0",
+        sha256 = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/shlex/1.1.0/download"],
+        strip_prefix = "shlex-1.1.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.shlex-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__termcolor-1.1.3",
+        sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
+        strip_prefix = "termcolor-1.1.3",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.termcolor-1.1.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__textwrap-0.15.0",
+        sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
+        strip_prefix = "textwrap-0.15.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.textwrap-0.15.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.unicode-ident-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__which-4.2.5",
+        sha256 = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/which/4.2.5/download"],
+        strip_prefix = "which-4.2.5",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.which-4.2.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__winapi-util-0.1.5",
+        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        strip_prefix = "winapi-util-0.1.5",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_bindgen__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//bindgen/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
diff --git a/third_party/rules_rust/bindgen/BUILD.bazel b/third_party/rules_rust/bindgen/BUILD.bazel
index 8c5426b..bb93162 100644
--- a/third_party/rules_rust/bindgen/BUILD.bazel
+++ b/third_party/rules_rust/bindgen/BUILD.bazel
@@ -3,23 +3,29 @@
 
 package(default_visibility = ["//visibility:public"])
 
-toolchain_type(name = "bindgen_toolchain")
-
-bzl_library(
-    name = "bzl_lib",
-    srcs = glob(["**/*.bzl"]) + ["//bindgen/raze:crates.bzl"],
-    deps = ["//rust:bzl_lib"],
+toolchain_type(
+    name = "toolchain_type",
 )
 
 alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//bindgen:bzl_lib` target instead",
+    name = "bindgen_toolchain",
+    actual = "toolchain_type",
+    deprecation = "instead use `@rules_rust//bindgen:toolchain_type`",
+    tags = ["manual"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]),
+    deps = [
+        "//bindgen/3rdparty:bzl_lib",
+        "//rust:bzl_lib",
+    ],
 )
 
 rust_bindgen_toolchain(
     name = "default_bindgen_toolchain_impl",
-    bindgen = "//bindgen/raze:cargo_bin_bindgen",
+    bindgen = "//bindgen/3rdparty:bindgen",
     clang = select({
         "//rust/platform:osx": "@bindgen_clang_osx//:clang",
         "//conditions:default": "@bindgen_clang_linux//:clang",
@@ -37,5 +43,5 @@
 toolchain(
     name = "default_bindgen_toolchain",
     toolchain = "default_bindgen_toolchain_impl",
-    toolchain_type = "//bindgen:bindgen_toolchain",
+    toolchain_type = "//bindgen:toolchain_type",
 )
diff --git a/third_party/rules_rust/bindgen/README.md b/third_party/rules_rust/bindgen/README.md
index cc0fcd2..a56d141 100644
--- a/third_party/rules_rust/bindgen/README.md
+++ b/third_party/rules_rust/bindgen/README.md
@@ -1,82 +1,8 @@
 # Rust Bindgen Rules
 
-<div class="toc">
-  <h2>Rules</h2>
-  <ul>
-    <li><a href="docs/index.md#rust_bindgen_toolchain">rust_bindgen_toolchain</a></li>
-    <li>rust_bindgen</li>
-    <li>rust_bindgen_library</li>
-  </ul>
-</div>
-
-## Overview
-
 These rules are for using [Bindgen][bindgen] to generate [Rust][rust] bindings to C (and some C++) libraries.
 
+See the `rules_rust` documentation for more info: https://bazelbuild.github.io/rules_rust/rust_bindgen.html
+
 [rust]: http://www.rust-lang.org/
 [bindgen]: https://github.com/rust-lang/rust-bindgen
-
-See the [bindgen example](../examples/ffi/rust_calling_c/simple/BUILD.bazel#L9) for a more complete example of use.
-
-### Setup
-
-To use the Rust bindgen rules, add the following to your `WORKSPACE` file to add the
-external repositories for the Rust bindgen toolchain (in addition to the [rust rules setup](..)):
-
-```python
-load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_repositories")
-
-rust_bindgen_repositories()
-```
-This makes the default toolchain defined in [`@rules_rust`](./BUILD) available.
-
-[raze]: https://github.com/google/cargo-raze
-
-It will load crate dependencies of bindgen that are generated using
-[cargo raze][raze] inside the rules_rust
-repository. However, using those dependencies might conflict with other uses
-of [cargo raze][raze]. If you need to change
-those dependencies, please see the [dedicated section below](#custom-deps).
-
-For additional information, see the [Bazel toolchains documentation](https://docs.bazel.build/versions/master/toolchains.html).
-
-## <a name="custom-deps">Customizing dependencies
-
-These rules depends on the [`bindgen`](https://crates.io/crates/bindgen) binary crate, and it 
-in turn depends on both a clang binary and the clang library. To obtain these dependencies,
-`rust_bindgen_repositories` imports bindgen and its dependencies using BUILD files generated with
-[`cargo raze`][raze], along with a tarball of clang.
-
-If you want to change the bindgen used, or use [`cargo raze`][raze] in a more
-complex scenario (with more dependencies), you must redefine those
-dependencies.
-
-To do this, once you've imported the needed dependencies (see our
-[Cargo.toml](./raze/Cargo.toml) file to see the default dependencies), you
-need to create your own toolchain. To do so you can create a BUILD
-file with your [`rust_bindgen_toolchain`](../docs/index.md#rust_bindgen_toolchain) definition, for example:
-
-```python
-load("@rules_rust//bindgen:bindgen.bzl", "rust_bindgen_toolchain")
-
-rust_bindgen_toolchain(
-    name = "bindgen-toolchain-impl",
-    bindgen = "//my/raze:cargo_bin_bindgen",
-    clang = "//my/clang:clang",
-    libclang = "//my/clang:libclang.so",
-    libstdcxx = "//my/cpp:libstdc++",
-)
-
-toolchain(
-    name = "bindgen-toolchain",
-    toolchain = "bindgen-toolchain-impl",
-    toolchain_type = "@rules_rust//bindgen:bindgen_toolchain",
-)
-```
-
-Now that you have your own toolchain, you need to register it by
-inserting the following statement in your `WORKSPACE` file:
-
-```python
-register_toolchains("//my/toolchains:bindgen-toolchain")
-```
diff --git a/third_party/rules_rust/bindgen/bindgen.bzl b/third_party/rules_rust/bindgen/bindgen.bzl
index a0e93d5..58288d8 100644
--- a/third_party/rules_rust/bindgen/bindgen.bzl
+++ b/third_party/rules_rust/bindgen/bindgen.bzl
@@ -77,7 +77,7 @@
     rust_library(
         name = name,
         srcs = [name + "__bindgen.rs"],
-        tags = tags + ["__bindgen"],
+        tags = tags + ["__bindgen", "noclippy"],
         deps = deps + [cc_lib],
         **kwargs
     )
@@ -92,7 +92,7 @@
     if header not in cc_header_list:
         fail("Header {} is not in {}'s transitive headers.".format(ctx.attr.header, cc_lib), "header")
 
-    toolchain = ctx.toolchains[Label("//bindgen:bindgen_toolchain")]
+    toolchain = ctx.toolchains[Label("//bindgen:toolchain_type")]
     bindgen_bin = toolchain.bindgen
     rustfmt_bin = toolchain.rustfmt or rust_toolchain.rustfmt
     clang_bin = toolchain.clang
@@ -187,14 +187,14 @@
             doc = "Flags to pass directly to the bindgen executable. See https://rust-lang.github.io/rust-bindgen/ for details.",
         ),
         "cc_lib": attr.label(
-            doc = "The cc_library that contains the .h file. This is used to find the transitive includes.",
+            doc = "The cc_library that contains the `.h` file. This is used to find the transitive includes.",
             providers = [CcInfo],
         ),
         "clang_flags": attr.string_list(
             doc = "Flags to pass directly to the clang executable.",
         ),
         "header": attr.label(
-            doc = "The .h file to generate bindings for.",
+            doc = "The `.h` file to generate bindings for.",
             allow_single_file = True,
         ),
         "rustfmt": attr.bool(
@@ -214,8 +214,8 @@
     outputs = {"out": "%{name}.rs"},
     fragments = ["cpp"],
     toolchains = [
-        str(Label("//bindgen:bindgen_toolchain")),
-        str(Label("//rust:toolchain")),
+        str(Label("//bindgen:toolchain_type")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -232,7 +232,34 @@
 
 rust_bindgen_toolchain = rule(
     _rust_bindgen_toolchain_impl,
-    doc = "The tools required for the `rust_bindgen` rule.",
+    doc = """\
+The tools required for the `rust_bindgen` rule.
+
+This rule depends on the [`bindgen`](https://crates.io/crates/bindgen) binary crate, and it 
+in turn depends on both a clang binary and the clang library. To obtain these dependencies,
+`rust_bindgen_dependencies` imports bindgen and its dependencies.
+
+```python
+load("@rules_rust//bindgen:bindgen.bzl", "rust_bindgen_toolchain")
+
+rust_bindgen_toolchain(
+    name = "bindgen_toolchain_impl",
+    bindgen = "//my/rust:bindgen",
+    clang = "//my/clang:clang",
+    libclang = "//my/clang:libclang.so",
+    libstdcxx = "//my/cpp:libstdc++",
+)
+
+toolchain(
+    name = "bindgen_toolchain",
+    toolchain = "bindgen_toolchain_impl",
+    toolchain_type = "@rules_rust//bindgen:toolchain_type",
+)
+```
+
+This toolchain will then need to be registered in the current `WORKSPACE`.
+For additional information, see the [Bazel toolchains documentation](https://docs.bazel.build/versions/master/toolchains.html).
+""",
     attrs = {
         "bindgen": attr.label(
             doc = "The label of a `bindgen` executable.",
diff --git a/third_party/rules_rust/bindgen/raze/BUILD.bazel b/third_party/rules_rust/bindgen/raze/BUILD.bazel
deleted file mode 100644
index fd7e1e5..0000000
--- a/third_party/rules_rust/bindgen/raze/BUILD.bazel
+++ /dev/null
@@ -1,48 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "bindgen",
-    actual = "@rules_rust_bindgen__bindgen__0_58_1//:bindgen",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "cargo_bin_bindgen",
-    actual = "@rules_rust_bindgen__bindgen__0_58_1//:cargo_bin_bindgen",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "libloading",
-    actual = "@rules_rust_bindgen__libloading__0_6_3//:libloading",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/bindgen/raze/Cargo.lock b/third_party/rules_rust/bindgen/raze/Cargo.lock
deleted file mode 100644
index 542cee0..0000000
--- a/third_party/rules_rust/bindgen/raze/Cargo.lock
+++ /dev/null
@@ -1,354 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "bindgen"
-version = "0.58.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f8523b410d7187a43085e7e064416ea32ded16bd0a4e6fc025e21616d01258f"
-dependencies = [
- "bitflags",
- "cexpr",
- "clang-sys",
- "clap",
- "env_logger",
- "lazy_static",
- "lazycell",
- "log",
- "peeking_take_while",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash",
- "shlex",
- "which",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-[[package]]
-name = "cexpr"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clang-sys"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c"
-dependencies = [
- "glob",
- "libc",
- "libloading 0.7.0",
-]
-
-[[package]]
-name = "clap"
-version = "2.33.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "fake_rules_rust_bindgen_lib"
-version = "0.0.1"
-dependencies = [
- "bindgen",
- "libloading 0.6.3",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
-[[package]]
-name = "libc"
-version = "0.2.94"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e"
-
-[[package]]
-name = "libloading"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9"
-dependencies = [
- "cfg-if 0.1.10",
- "winapi",
-]
-
-[[package]]
-name = "libloading"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a"
-dependencies = [
- "cfg-if 1.0.0",
- "winapi",
-]
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "memchr"
-version = "2.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc"
-
-[[package]]
-name = "nom"
-version = "5.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
-dependencies = [
- "memchr",
- "version_check",
-]
-
-[[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "regex"
-version = "1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "shlex"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "termcolor"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "unicode-width"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
-
-[[package]]
-name = "which"
-version = "3.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/bindgen/raze/Cargo.toml b/third_party/rules_rust/bindgen/raze/Cargo.toml
deleted file mode 100644
index 2d9129c..0000000
--- a/third_party/rules_rust/bindgen/raze/Cargo.toml
+++ /dev/null
@@ -1,33 +0,0 @@
-[package]
-name = "fake_rules_rust_bindgen_lib"
-version = "0.0.1"
-
-[lib]
-path = "fake_rules_rust_bindgen_lib.rs"
-
-[dependencies]
-bindgen = "0.58.1"
-libloading = "=0.6.3"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//bindgen/raze"
-gen_workspace_prefix = "rules_rust_bindgen"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = false
-
-[package.metadata.raze.crates.bindgen.'0.58.1']
-gen_buildrs = true
-extra_aliased_targets = ["cargo_bin_bindgen"]
-
-[package.metadata.raze.crates.clang-sys.'1.0.0']
-gen_buildrs = true
-
-[package.metadata.raze.crates.libloading.'0.6.3']
-gen_buildrs = true
-
-[package.metadata.raze.crates.log.'0.4.11']
-additional_flags = [
-    "--cfg=atomic_cas",
-]
diff --git a/third_party/rules_rust/bindgen/raze/crates.bzl b/third_party/rules_rust/bindgen/raze/crates.bzl
deleted file mode 100644
index 7cda777..0000000
--- a/third_party/rules_rust/bindgen/raze/crates.bzl
+++ /dev/null
@@ -1,422 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_bindgen_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__aho_corasick__0_7_18",
-        url = "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-        type = "tar.gz",
-        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
-        strip_prefix = "aho-corasick-0.7.18",
-        build_file = Label("//bindgen/raze/remote:BUILD.aho-corasick-0.7.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__ansi_term__0_11_0",
-        url = "https://crates.io/api/v1/crates/ansi_term/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b",
-        strip_prefix = "ansi_term-0.11.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.ansi_term-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__atty__0_2_14",
-        url = "https://crates.io/api/v1/crates/atty/0.2.14/download",
-        type = "tar.gz",
-        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
-        strip_prefix = "atty-0.2.14",
-        build_file = Label("//bindgen/raze/remote:BUILD.atty-0.2.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__bindgen__0_58_1",
-        url = "https://crates.io/api/v1/crates/bindgen/0.58.1/download",
-        type = "tar.gz",
-        sha256 = "0f8523b410d7187a43085e7e064416ea32ded16bd0a4e6fc025e21616d01258f",
-        strip_prefix = "bindgen-0.58.1",
-        build_file = Label("//bindgen/raze/remote:BUILD.bindgen-0.58.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__bitflags__1_2_1",
-        url = "https://crates.io/api/v1/crates/bitflags/1.2.1/download",
-        type = "tar.gz",
-        sha256 = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693",
-        strip_prefix = "bitflags-1.2.1",
-        build_file = Label("//bindgen/raze/remote:BUILD.bitflags-1.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__cexpr__0_4_0",
-        url = "https://crates.io/api/v1/crates/cexpr/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27",
-        strip_prefix = "cexpr-0.4.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.cexpr-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__cfg_if__0_1_10",
-        url = "https://crates.io/api/v1/crates/cfg-if/0.1.10/download",
-        type = "tar.gz",
-        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
-        strip_prefix = "cfg-if-0.1.10",
-        build_file = Label("//bindgen/raze/remote:BUILD.cfg-if-0.1.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__clang_sys__1_2_0",
-        url = "https://crates.io/api/v1/crates/clang-sys/1.2.0/download",
-        type = "tar.gz",
-        sha256 = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c",
-        strip_prefix = "clang-sys-1.2.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.clang-sys-1.2.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__clap__2_33_3",
-        url = "https://crates.io/api/v1/crates/clap/2.33.3/download",
-        type = "tar.gz",
-        sha256 = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002",
-        strip_prefix = "clap-2.33.3",
-        build_file = Label("//bindgen/raze/remote:BUILD.clap-2.33.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__env_logger__0_8_3",
-        url = "https://crates.io/api/v1/crates/env_logger/0.8.3/download",
-        type = "tar.gz",
-        sha256 = "17392a012ea30ef05a610aa97dfb49496e71c9f676b27879922ea5bdf60d9d3f",
-        strip_prefix = "env_logger-0.8.3",
-        build_file = Label("//bindgen/raze/remote:BUILD.env_logger-0.8.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__glob__0_3_0",
-        url = "https://crates.io/api/v1/crates/glob/0.3.0/download",
-        type = "tar.gz",
-        sha256 = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574",
-        strip_prefix = "glob-0.3.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.glob-0.3.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__hermit_abi__0_1_18",
-        url = "https://crates.io/api/v1/crates/hermit-abi/0.1.18/download",
-        type = "tar.gz",
-        sha256 = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c",
-        strip_prefix = "hermit-abi-0.1.18",
-        build_file = Label("//bindgen/raze/remote:BUILD.hermit-abi-0.1.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__humantime__2_1_0",
-        url = "https://crates.io/api/v1/crates/humantime/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
-        strip_prefix = "humantime-2.1.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.humantime-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__lazycell__1_3_0",
-        url = "https://crates.io/api/v1/crates/lazycell/1.3.0/download",
-        type = "tar.gz",
-        sha256 = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55",
-        strip_prefix = "lazycell-1.3.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.lazycell-1.3.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__libc__0_2_94",
-        url = "https://crates.io/api/v1/crates/libc/0.2.94/download",
-        type = "tar.gz",
-        sha256 = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e",
-        strip_prefix = "libc-0.2.94",
-        build_file = Label("//bindgen/raze/remote:BUILD.libc-0.2.94.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__libloading__0_6_3",
-        url = "https://crates.io/api/v1/crates/libloading/0.6.3/download",
-        type = "tar.gz",
-        sha256 = "2443d8f0478b16759158b2f66d525991a05491138bc05814ef52a250148ef4f9",
-        strip_prefix = "libloading-0.6.3",
-        build_file = Label("//bindgen/raze/remote:BUILD.libloading-0.6.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__libloading__0_7_0",
-        url = "https://crates.io/api/v1/crates/libloading/0.7.0/download",
-        type = "tar.gz",
-        sha256 = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a",
-        strip_prefix = "libloading-0.7.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.libloading-0.7.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//bindgen/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__memchr__2_4_0",
-        url = "https://crates.io/api/v1/crates/memchr/2.4.0/download",
-        type = "tar.gz",
-        sha256 = "b16bd47d9e329435e309c58469fe0791c2d0d1ba96ec0954152a5ae2b04387dc",
-        strip_prefix = "memchr-2.4.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.memchr-2.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__nom__5_1_2",
-        url = "https://crates.io/api/v1/crates/nom/5.1.2/download",
-        type = "tar.gz",
-        sha256 = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af",
-        strip_prefix = "nom-5.1.2",
-        build_file = Label("//bindgen/raze/remote:BUILD.nom-5.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__peeking_take_while__0_1_2",
-        url = "https://crates.io/api/v1/crates/peeking_take_while/0.1.2/download",
-        type = "tar.gz",
-        sha256 = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099",
-        strip_prefix = "peeking_take_while-0.1.2",
-        build_file = Label("//bindgen/raze/remote:BUILD.peeking_take_while-0.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__proc_macro2__1_0_26",
-        url = "https://crates.io/api/v1/crates/proc-macro2/1.0.26/download",
-        type = "tar.gz",
-        sha256 = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec",
-        strip_prefix = "proc-macro2-1.0.26",
-        build_file = Label("//bindgen/raze/remote:BUILD.proc-macro2-1.0.26.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__quote__1_0_9",
-        url = "https://crates.io/api/v1/crates/quote/1.0.9/download",
-        type = "tar.gz",
-        sha256 = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7",
-        strip_prefix = "quote-1.0.9",
-        build_file = Label("//bindgen/raze/remote:BUILD.quote-1.0.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__regex__1_5_4",
-        url = "https://crates.io/api/v1/crates/regex/1.5.4/download",
-        type = "tar.gz",
-        sha256 = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461",
-        strip_prefix = "regex-1.5.4",
-        build_file = Label("//bindgen/raze/remote:BUILD.regex-1.5.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__regex_syntax__0_6_25",
-        url = "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-        type = "tar.gz",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("//bindgen/raze/remote:BUILD.regex-syntax-0.6.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__rustc_hash__1_1_0",
-        url = "https://crates.io/api/v1/crates/rustc-hash/1.1.0/download",
-        type = "tar.gz",
-        sha256 = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2",
-        strip_prefix = "rustc-hash-1.1.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.rustc-hash-1.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__shlex__1_0_0",
-        url = "https://crates.io/api/v1/crates/shlex/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d",
-        strip_prefix = "shlex-1.0.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.shlex-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__strsim__0_8_0",
-        url = "https://crates.io/api/v1/crates/strsim/0.8.0/download",
-        type = "tar.gz",
-        sha256 = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a",
-        strip_prefix = "strsim-0.8.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.strsim-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__termcolor__1_1_2",
-        url = "https://crates.io/api/v1/crates/termcolor/1.1.2/download",
-        type = "tar.gz",
-        sha256 = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4",
-        strip_prefix = "termcolor-1.1.2",
-        build_file = Label("//bindgen/raze/remote:BUILD.termcolor-1.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__textwrap__0_11_0",
-        url = "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060",
-        strip_prefix = "textwrap-0.11.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.textwrap-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__unicode_width__0_1_8",
-        url = "https://crates.io/api/v1/crates/unicode-width/0.1.8/download",
-        type = "tar.gz",
-        sha256 = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3",
-        strip_prefix = "unicode-width-0.1.8",
-        build_file = Label("//bindgen/raze/remote:BUILD.unicode-width-0.1.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__unicode_xid__0_2_2",
-        url = "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("//bindgen/raze/remote:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__vec_map__0_8_2",
-        url = "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
-        type = "tar.gz",
-        sha256 = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191",
-        strip_prefix = "vec_map-0.8.2",
-        build_file = Label("//bindgen/raze/remote:BUILD.vec_map-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__version_check__0_9_3",
-        url = "https://crates.io/api/v1/crates/version_check/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe",
-        strip_prefix = "version_check-0.9.3",
-        build_file = Label("//bindgen/raze/remote:BUILD.version_check-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__which__3_1_1",
-        url = "https://crates.io/api/v1/crates/which/3.1.1/download",
-        type = "tar.gz",
-        sha256 = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724",
-        strip_prefix = "which-3.1.1",
-        build_file = Label("//bindgen/raze/remote:BUILD.which-3.1.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__winapi__0_3_9",
-        url = "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-        type = "tar.gz",
-        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
-        strip_prefix = "winapi-0.3.9",
-        build_file = Label("//bindgen/raze/remote:BUILD.winapi-0.3.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__winapi_i686_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
-        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__winapi_util__0_1_5",
-        url = "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-        type = "tar.gz",
-        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
-        strip_prefix = "winapi-util-0.1.5",
-        build_file = Label("//bindgen/raze/remote:BUILD.winapi-util-0.1.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_bindgen__winapi_x86_64_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
-        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
-        build_file = Label("//bindgen/raze/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
-    )
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel
deleted file mode 100644
index f1f73b7..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "aho_corasick",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__memchr__2_4_0//:memchr",
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.ansi_term-0.11.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.ansi_term-0.11.0.bazel
deleted file mode 100644
index 9a688a3..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.ansi_term-0.11.0.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "colours" with type "example" omitted
-
-rust_library(
-    name = "ansi_term",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(target_os = "windows")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.atty-0.2.14.bazel
deleted file mode 100644
index 6ccea85..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.atty-0.2.14.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "atty" with type "example" omitted
-
-rust_library(
-    name = "atty",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_bindgen__libc__0_2_94//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.bindgen-0.58.1.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.bindgen-0.58.1.bazel
deleted file mode 100644
index 38fc5b1..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.bindgen-0.58.1.bazel
+++ /dev/null
@@ -1,163 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "bindgen_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clap",
-        "default",
-        "env_logger",
-        "log",
-        "logging",
-        "runtime",
-        "which",
-        "which-rustfmt",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.58.1",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
-    ],
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_bindgen",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clap",
-        "default",
-        "env_logger",
-        "log",
-        "logging",
-        "runtime",
-        "which",
-        "which-rustfmt",
-    ],
-    crate_root = "src/main.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.58.1",
-    # buildifier: leave-alone
-    deps = [
-        ":bindgen",
-        ":bindgen_build_script",
-        "@rules_rust_bindgen__bitflags__1_2_1//:bitflags",
-        "@rules_rust_bindgen__cexpr__0_4_0//:cexpr",
-        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
-        "@rules_rust_bindgen__clap__2_33_3//:clap",
-        "@rules_rust_bindgen__env_logger__0_8_3//:env_logger",
-        "@rules_rust_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_bindgen__lazycell__1_3_0//:lazycell",
-        "@rules_rust_bindgen__log__0_4_14//:log",
-        "@rules_rust_bindgen__peeking_take_while__0_1_2//:peeking_take_while",
-        "@rules_rust_bindgen__proc_macro2__1_0_26//:proc_macro2",
-        "@rules_rust_bindgen__quote__1_0_9//:quote",
-        "@rules_rust_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_bindgen__rustc_hash__1_1_0//:rustc_hash",
-        "@rules_rust_bindgen__shlex__1_0_0//:shlex",
-        "@rules_rust_bindgen__which__3_1_1//:which",
-    ],
-)
-
-rust_library(
-    name = "bindgen",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clap",
-        "default",
-        "env_logger",
-        "log",
-        "logging",
-        "runtime",
-        "which",
-        "which-rustfmt",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.58.1",
-    # buildifier: leave-alone
-    deps = [
-        ":bindgen_build_script",
-        "@rules_rust_bindgen__bitflags__1_2_1//:bitflags",
-        "@rules_rust_bindgen__cexpr__0_4_0//:cexpr",
-        "@rules_rust_bindgen__clang_sys__1_2_0//:clang_sys",
-        "@rules_rust_bindgen__clap__2_33_3//:clap",
-        "@rules_rust_bindgen__env_logger__0_8_3//:env_logger",
-        "@rules_rust_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_bindgen__lazycell__1_3_0//:lazycell",
-        "@rules_rust_bindgen__log__0_4_14//:log",
-        "@rules_rust_bindgen__peeking_take_while__0_1_2//:peeking_take_while",
-        "@rules_rust_bindgen__proc_macro2__1_0_26//:proc_macro2",
-        "@rules_rust_bindgen__quote__1_0_9//:quote",
-        "@rules_rust_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_bindgen__rustc_hash__1_1_0//:rustc_hash",
-        "@rules_rust_bindgen__shlex__1_0_0//:shlex",
-        "@rules_rust_bindgen__which__3_1_1//:which",
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.bitflags-1.2.1.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.bitflags-1.2.1.bazel
deleted file mode 100644
index ee5df63..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.bitflags-1.2.1.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.cexpr-0.4.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.cexpr-0.4.0.bazel
deleted file mode 100644
index d2f0fb5..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.cexpr-0.4.0.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cexpr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__nom__5_1_2//:nom",
-    ],
-)
-
-# Unsupported target "clang" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-0.1.10.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-0.1.10.bazel
deleted file mode 100644
index 0d5ec5b..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-0.1.10.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.10",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index 9f57c52..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.clang-sys-1.2.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.clang-sys-1.2.0.bazel
deleted file mode 100644
index 2c29ee0..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.clang-sys-1.2.0.bazel
+++ /dev/null
@@ -1,110 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "clang_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clang_3_5",
-        "clang_3_6",
-        "clang_3_7",
-        "clang_3_8",
-        "clang_3_9",
-        "clang_4_0",
-        "clang_5_0",
-        "clang_6_0",
-        "libloading",
-        "runtime",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    links = "clang",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.0",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_bindgen__glob__0_3_0//:glob",
-    ],
-)
-
-rust_library(
-    name = "clang_sys",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clang_3_5",
-        "clang_3_6",
-        "clang_3_7",
-        "clang_3_8",
-        "clang_3_9",
-        "clang_4_0",
-        "clang_5_0",
-        "clang_6_0",
-        "libloading",
-        "runtime",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.0",
-    # buildifier: leave-alone
-    deps = [
-        ":clang_sys_build_script",
-        "@rules_rust_bindgen__glob__0_3_0//:glob",
-        "@rules_rust_bindgen__libc__0_2_94//:libc",
-        "@rules_rust_bindgen__libloading__0_7_0//:libloading",
-    ],
-)
-
-# Unsupported target "lib" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.clap-2.33.3.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.clap-2.33.3.bazel
deleted file mode 100644
index 7a970d7..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.clap-2.33.3.bazel
+++ /dev/null
@@ -1,93 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "clap",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "ansi_term",
-        "atty",
-        "color",
-        "default",
-        "strsim",
-        "suggestions",
-        "vec_map",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.33.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__atty__0_2_14//:atty",
-        "@rules_rust_bindgen__bitflags__1_2_1//:bitflags",
-        "@rules_rust_bindgen__strsim__0_8_0//:strsim",
-        "@rules_rust_bindgen__textwrap__0_11_0//:textwrap",
-        "@rules_rust_bindgen__unicode_width__0_1_8//:unicode_width",
-        "@rules_rust_bindgen__vec_map__0_8_2//:vec_map",
-    ] + selects.with_or({
-        # cfg(not(windows))
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-unknown-unknown",
-            "@rules_rust//rust/platform:wasm32-wasi",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_bindgen__ansi_term__0_11_0//:ansi_term",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.env_logger-0.8.3.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.env_logger-0.8.3.bazel
deleted file mode 100644
index 6cdc461..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.env_logger-0.8.3.bazel
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "env_logger",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "atty",
-        "default",
-        "humantime",
-        "regex",
-        "termcolor",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__atty__0_2_14//:atty",
-        "@rules_rust_bindgen__humantime__2_1_0//:humantime",
-        "@rules_rust_bindgen__log__0_4_14//:log",
-        "@rules_rust_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_bindgen__termcolor__1_1_2//:termcolor",
-    ],
-)
-
-# Unsupported target "init-twice-retains-filter" with type "test" omitted
-
-# Unsupported target "log-in-log" with type "test" omitted
-
-# Unsupported target "log_tls_dtors" with type "test" omitted
-
-# Unsupported target "regexp_filter" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.glob-0.3.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.glob-0.3.0.bazel
deleted file mode 100644
index 93a10df..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.glob-0.3.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "glob",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "glob-std" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.hermit-abi-0.1.18.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.hermit-abi-0.1.18.bazel
deleted file mode 100644
index 211d229..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.hermit-abi-0.1.18.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "hermit_abi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__libc__0_2_94//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.humantime-2.1.0.bazel
deleted file mode 100644
index de730f2..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.humantime-2.1.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "datetime_format" with type "bench" omitted
-
-# Unsupported target "datetime_parse" with type "bench" omitted
-
-rust_library(
-    name = "humantime",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index a90e095..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.lazycell-1.3.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.lazycell-1.3.0.bazel
deleted file mode 100644
index 5971cb4..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.lazycell-1.3.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazycell",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.libc-0.2.94.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.libc-0.2.94.bazel
deleted file mode 100644
index 2ca1b9e..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.libc-0.2.94.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.94",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.6.3.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.6.3.bazel
deleted file mode 100644
index 47b6906..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.6.3.bazel
+++ /dev/null
@@ -1,157 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # ISC from expression "ISC"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libloading_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.3",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "libloading",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.3",
-    # buildifier: leave-alone
-    deps = [
-        ":libloading_build_script",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_bindgen__cfg_if__0_1_10//:cfg_if",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "constants" with type "test" omitted
-
-# Unsupported target "functions" with type "test" omitted
-
-# Unsupported target "library_filename" with type "test" omitted
-
-# Unsupported target "markers" with type "test" omitted
-
-# Unsupported target "windows" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.7.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.7.0.bazel
deleted file mode 100644
index 5612156..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.libloading-0.7.0.bazel
+++ /dev/null
@@ -1,97 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # ISC from expression "ISC"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "libloading",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.0",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_bindgen__cfg_if__1_0_0//:cfg_if",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "constants" with type "test" omitted
-
-# Unsupported target "functions" with type "test" omitted
-
-# Unsupported target "library_filename" with type "test" omitted
-
-# Unsupported target "markers" with type "test" omitted
-
-# Unsupported target "windows" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.log-0.4.14.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index fc3a7e2..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "value" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=atomic_cas",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.memchr-2.4.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.memchr-2.4.0.bazel
deleted file mode 100644
index bf5b58d..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.memchr-2.4.0.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "memchr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.nom-5.1.2.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.nom-5.1.2.bazel
deleted file mode 100644
index dbcdd50..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.nom-5.1.2.bazel
+++ /dev/null
@@ -1,112 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "arithmetic" with type "bench" omitted
-
-# Unsupported target "http" with type "bench" omitted
-
-# Unsupported target "ini" with type "bench" omitted
-
-# Unsupported target "ini_complete" with type "bench" omitted
-
-# Unsupported target "ini_str" with type "bench" omitted
-
-# Unsupported target "json" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-# Unsupported target "json" with type "example" omitted
-
-# Unsupported target "s_expression" with type "example" omitted
-
-# Unsupported target "string" with type "example" omitted
-
-rust_library(
-    name = "nom",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "5.1.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__memchr__2_4_0//:memchr",
-    ],
-)
-
-# Unsupported target "arithmetic" with type "test" omitted
-
-# Unsupported target "arithmetic_ast" with type "test" omitted
-
-# Unsupported target "blockbuf-arithmetic" with type "test" omitted
-
-# Unsupported target "css" with type "test" omitted
-
-# Unsupported target "custom_errors" with type "test" omitted
-
-# Unsupported target "escaped" with type "test" omitted
-
-# Unsupported target "float" with type "test" omitted
-
-# Unsupported target "inference" with type "test" omitted
-
-# Unsupported target "ini" with type "test" omitted
-
-# Unsupported target "ini_str" with type "test" omitted
-
-# Unsupported target "issues" with type "test" omitted
-
-# Unsupported target "json" with type "test" omitted
-
-# Unsupported target "mp4" with type "test" omitted
-
-# Unsupported target "multiline" with type "test" omitted
-
-# Unsupported target "named_args" with type "test" omitted
-
-# Unsupported target "overflow" with type "test" omitted
-
-# Unsupported target "reborrow_fold" with type "test" omitted
-
-# Unsupported target "test1" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.peeking_take_while-0.1.2.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.peeking_take_while-0.1.2.bazel
deleted file mode 100644
index 78249fd..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.peeking_take_while-0.1.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "peeking_take_while",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.proc-macro2-1.0.26.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.proc-macro2-1.0.26.bazel
deleted file mode 100644
index d0858e0..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.proc-macro2-1.0.26.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.26",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "features" with type "test" omitted
-
-# Unsupported target "marker" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.quote-1.0.9.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.quote-1.0.9.bazel
deleted file mode 100644
index a1b8dc2..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.quote-1.0.9.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "quote",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.9",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__proc_macro2__1_0_26//:proc_macro2",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-1.5.4.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-1.5.4.bazel
deleted file mode 100644
index 4eddae8..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-1.5.4.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "shootout-regex-dna" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-bytes" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-cheat" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-replace" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single-cheat" with type "example" omitted
-
-rust_library(
-    name = "regex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "aho-corasick",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__aho_corasick__0_7_18//:aho_corasick",
-        "@rules_rust_bindgen__memchr__2_4_0//:memchr",
-        "@rules_rust_bindgen__regex_syntax__0_6_25//:regex_syntax",
-    ],
-)
-
-# Unsupported target "backtrack" with type "test" omitted
-
-# Unsupported target "backtrack-bytes" with type "test" omitted
-
-# Unsupported target "backtrack-utf8bytes" with type "test" omitted
-
-# Unsupported target "crates-regex" with type "test" omitted
-
-# Unsupported target "default" with type "test" omitted
-
-# Unsupported target "default-bytes" with type "test" omitted
-
-# Unsupported target "nfa" with type "test" omitted
-
-# Unsupported target "nfa-bytes" with type "test" omitted
-
-# Unsupported target "nfa-utf8bytes" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index b185ef3..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.25",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.rustc-hash-1.1.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.rustc-hash-1.1.0.bazel
deleted file mode 100644
index e751942..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.rustc-hash-1.1.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rustc_hash",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.shlex-1.0.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.shlex-1.0.0.bazel
deleted file mode 100644
index 3b11348..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.shlex-1.0.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "shlex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.strsim-0.8.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.strsim-0.8.0.bazel
deleted file mode 100644
index a1becf3..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.strsim-0.8.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-rust_library(
-    name = "strsim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "lib" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel
deleted file mode 100644
index ff23f3f..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "termcolor",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi_util__0_1_5//:winapi_util",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.textwrap-0.11.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.textwrap-0.11.0.bazel
deleted file mode 100644
index 541cff5..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.textwrap-0.11.0.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "linear" with type "bench" omitted
-
-# Unsupported target "layout" with type "example" omitted
-
-# Unsupported target "termwidth" with type "example" omitted
-
-rust_library(
-    name = "textwrap",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__unicode_width__0_1_8//:unicode_width",
-    ],
-)
-
-# Unsupported target "version-numbers" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-width-0.1.8.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-width-0.1.8.bazel
deleted file mode 100644
index ee3ab94..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-width-0.1.8.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unicode_width",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index bd9e2a7..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "xid" with type "bench" omitted
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "exhaustive_tests" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.vec_map-0.8.2.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.vec_map-0.8.2.bazel
deleted file mode 100644
index 031dc5e..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.vec_map-0.8.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "vec_map",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.version_check-0.9.3.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.version_check-0.9.3.bazel
deleted file mode 100644
index 74a457d..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.version_check-0.9.3.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "version_check",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.which-3.1.1.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.which-3.1.1.bazel
deleted file mode 100644
index 15a73c6..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.which-3.1.1.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "which",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "3.1.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_bindgen__libc__0_2_94//:libc",
-    ],
-)
-
-# Unsupported target "basic" with type "test" omitted
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-0.3.9.bazel
deleted file mode 100644
index 6fa8b8c..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-0.3.9.bazel
+++ /dev/null
@@ -1,67 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "libloaderapi",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "std",
-        "winbase",
-        "wincon",
-        "winerror",
-        "winnt",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 7de7c44..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi_i686_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel
deleted file mode 100644
index 00689f0..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "winapi_util",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.5",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 747aabe..0000000
--- a/third_party/rules_rust/bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi_x86_64_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/bindgen/repositories.bzl b/third_party/rules_rust/bindgen/repositories.bzl
index f8614ba..3e09d3d 100644
--- a/third_party/rules_rust/bindgen/repositories.bzl
+++ b/third_party/rules_rust/bindgen/repositories.bzl
@@ -12,21 +12,39 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# buildifier: disable=module-docstring
+"""Dependencies for the Rust `bindgen` rules"""
+
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
-load("//bindgen/raze:crates.bzl", "rules_rust_bindgen_fetch_remote_crates")
+load("//bindgen/3rdparty/crates:defs.bzl", "crate_repositories")
 
 # buildifier: disable=unnamed-macro
-def rust_bindgen_repositories():
+def rust_bindgen_dependencies():
     """Declare dependencies needed for bindgen."""
 
     # nb. The bindgen rule itself should work on any platform.
     _bindgen_clang_repositories()
 
-    rules_rust_bindgen_fetch_remote_crates()
+    crate_repositories()
 
-    native.register_toolchains(str(Label("//bindgen:default_bindgen_toolchain")))
+# buildifier: disable=unnamed-macro
+def rust_bindgen_register_toolchains(register_toolchains = True):
+    """Registers the default toolchains for the `rules_rust` [bindgen][bg] rules.
+
+    [bg]: https://rust-lang.github.io/rust-bindgen/
+
+    Args:
+        register_toolchains (bool, optional): Whether or not to register toolchains.
+    """
+    if register_toolchains:
+        native.register_toolchains(str(Label("//bindgen:default_bindgen_toolchain")))
+
+# buildifier: disable=unnamed-macro
+def rust_bindgen_repositories():
+    """**Deprecated**: Instead use [rust_bindgen_dependencies](#rust_bindgen_dependencies) and [rust_bindgen_register_toolchains](#rust_bindgen_register_toolchains)"""
+
+    rust_bindgen_dependencies()
+    rust_bindgen_register_toolchains()
 
 _COMMON_WORKSPACE = """\
 workspace(name = "{}")
diff --git a/third_party/rules_rust/cargo/BUILD.bazel b/third_party/rules_rust/cargo/BUILD.bazel
index 8772c31..6c21ee1 100644
--- a/third_party/rules_rust/cargo/BUILD.bazel
+++ b/third_party/rules_rust/cargo/BUILD.bazel
@@ -7,9 +7,3 @@
     srcs = glob(["**/*.bzl"]),
     deps = ["//cargo/private:bzl_lib"],
 )
-
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//cargo:bzl_lib` target instead",
-)
diff --git a/third_party/rules_rust/cargo/bootstrap/BUILD.bazel b/third_party/rules_rust/cargo/bootstrap/BUILD.bazel
index a607f60..4d804cc 100644
--- a/third_party/rules_rust/cargo/bootstrap/BUILD.bazel
+++ b/third_party/rules_rust/cargo/bootstrap/BUILD.bazel
@@ -14,6 +14,7 @@
     srcs = [
         "bootstrap_installer.rs",
     ],
+    edition = "2018",
     rustc_env = {
         "RULES_RUST_CARGO_BOOTSTRAP_BINARY": "$(rootpath bootstrap_installer.rs)",
     },
diff --git a/third_party/rules_rust/cargo/cargo_bootstrap.bzl b/third_party/rules_rust/cargo/cargo_bootstrap.bzl
index bbe35c0..509ea47 100644
--- a/third_party/rules_rust/cargo/cargo_bootstrap.bzl
+++ b/third_party/rules_rust/cargo/cargo_bootstrap.bzl
@@ -1,7 +1,8 @@
 """The `cargo_bootstrap` rule is used for bootstrapping cargo binaries in a repository rule."""
 
-load("//cargo/private:cargo_utils.bzl", "get_host_triple", "get_rust_tools")
+load("//cargo/private:cargo_utils.bzl", "get_rust_tools")
 load("//rust:defs.bzl", "rust_common")
+load("//rust/platform:triple.bzl", "get_host_triple")
 
 _CARGO_BUILD_MODES = [
     "release",
@@ -203,7 +204,7 @@
 
     # In addition to platform specific environment variables, a common set (indicated by `*`) will always
     # be gathered.
-    environment = dict(_collect_environ(repository_ctx, "*").items() + _collect_environ(repository_ctx, host_triple.triple).items())
+    environment = dict(_collect_environ(repository_ctx, "*").items() + _collect_environ(repository_ctx, host_triple.str).items())
 
     built_binary = cargo_bootstrap(
         repository_ctx = repository_ctx,
@@ -272,7 +273,7 @@
                 "`{triple}` (eg. 'x86_64-unknown-linux-gnu'), `{arch}` (eg. 'aarch64'), `{vendor}` (eg. 'unknown'), " +
                 "`{system}` (eg. 'darwin'), and `{tool}` (eg. 'rustc.exe') will be replaced in the string if present."
             ),
-            default = "@rust_{system}_{arch}//:bin/{tool}",
+            default = "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}",
         ),
         "rust_toolchain_repository_template": attr.string(
             doc = "**Deprecated**: Please use `rust_toolchain_cargo_template` and `rust_toolchain_rustc_template`",
@@ -283,7 +284,7 @@
                 "`{triple}` (eg. 'x86_64-unknown-linux-gnu'), `{arch}` (eg. 'aarch64'), `{vendor}` (eg. 'unknown'), " +
                 "`{system}` (eg. 'darwin'), and `{tool}` (eg. 'rustc.exe') will be replaced in the string if present."
             ),
-            default = "@rust_{system}_{arch}//:bin/{tool}",
+            default = "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}",
         ),
         "srcs": attr.label_list(
             doc = "Souce files of the crate to build. Passing source files here can be used to trigger rebuilds when changes are made",
diff --git a/third_party/rules_rust/cargo/cargo_build_script.bzl b/third_party/rules_rust/cargo/cargo_build_script.bzl
index 69450a2..87ee88e 100644
--- a/third_party/rules_rust/cargo/cargo_build_script.bzl
+++ b/third_party/rules_rust/cargo/cargo_build_script.bzl
@@ -1,15 +1,19 @@
 # buildifier: disable=module-docstring
-load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "C_COMPILE_ACTION_NAME")
+load("@bazel_skylib//lib:paths.bzl", "paths")
+load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "CPP_COMPILE_ACTION_NAME", "C_COMPILE_ACTION_NAME")
 load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "find_cpp_toolchain")
 load("//rust:defs.bzl", "rust_binary", "rust_common")
 
 # buildifier: disable=bzl-visibility
+load("//rust/private:providers.bzl", _DepInfo = "DepInfo")
+
+# buildifier: disable=bzl-visibility
 load("//rust/private:rustc.bzl", "BuildInfo", "get_compilation_mode_opts", "get_linker_and_args")
 
 # buildifier: disable=bzl-visibility
 load("//rust/private:utils.bzl", "dedent", "expand_dict_value_locations", "find_cc_toolchain", "find_toolchain", "name_to_crate_name")
 
-def get_cc_compile_env(cc_toolchain, feature_configuration):
+def get_cc_compile_args_and_env(cc_toolchain, feature_configuration):
     """Gather cc environment variables from the given `cc_toolchain`
 
     Args:
@@ -17,17 +21,49 @@
         feature_configuration (FeatureConfiguration): Class used to construct command lines from CROSSTOOL features.
 
     Returns:
-        dict: Returns environment variables to be set for given action.
+        tuple: A tuple of the following items:
+            - (sequence): A flattened C command line flags for given action.
+            - (sequence): A flattened CXX command line flags for given action.
+            - (dict): C environment variables to be set for given action.
     """
     compile_variables = cc_common.create_compile_variables(
         feature_configuration = feature_configuration,
         cc_toolchain = cc_toolchain,
     )
-    return cc_common.get_environment_variables(
+    cc_c_args = cc_common.get_memory_inefficient_command_line(
         feature_configuration = feature_configuration,
         action_name = C_COMPILE_ACTION_NAME,
         variables = compile_variables,
     )
+    cc_cxx_args = cc_common.get_memory_inefficient_command_line(
+        feature_configuration = feature_configuration,
+        action_name = CPP_COMPILE_ACTION_NAME,
+        variables = compile_variables,
+    )
+    cc_env = cc_common.get_environment_variables(
+        feature_configuration = feature_configuration,
+        action_name = C_COMPILE_ACTION_NAME,
+        variables = compile_variables,
+    )
+    return cc_c_args, cc_cxx_args, cc_env
+
+def _pwd_flags(args):
+    """Prefix execroot-relative paths of known arguments with ${pwd}.
+
+    Args:
+        args (list): List of tool arguments.
+
+    Returns:
+        list: The modified argument list.
+    """
+    res = []
+    for arg in args:
+        s, opt, path = arg.partition("--sysroot=")
+        if s == "" and not paths.is_absolute(path):
+            res.append("{}${{pwd}}/{}".format(opt, path))
+        else:
+            res.append(arg)
+    return res
 
 def _build_script_impl(ctx):
     """The implementation for the `_build_script_run` rule.
@@ -69,6 +105,7 @@
         "CARGO_MANIFEST_DIR": manifest_dir,
         "CARGO_PKG_NAME": pkg_name,
         "HOST": toolchain.exec_triple,
+        "NUM_JOBS": "1",
         "OPT_LEVEL": compilation_mode_opt_level,
         "RUSTC": toolchain.rustc.path,
         "TARGET": toolchain.target_flag_value,
@@ -96,10 +133,10 @@
     linker, link_args, linker_env = get_linker_and_args(ctx, ctx.attr, cc_toolchain, feature_configuration, None)
     env.update(**linker_env)
     env["LD"] = linker
-    env["LDFLAGS"] = " ".join(link_args)
+    env["LDFLAGS"] = " ".join(_pwd_flags(link_args))
 
     # MSVC requires INCLUDE to be set
-    cc_env = get_cc_compile_env(cc_toolchain, feature_configuration)
+    cc_c_args, cc_cxx_args, cc_env = get_cc_compile_args_and_env(cc_toolchain, feature_configuration)
     include = cc_env.get("INCLUDE")
     if include:
         env["INCLUDE"] = include
@@ -114,8 +151,12 @@
         ar_executable = cc_toolchain.ar_executable
         if ar_executable:
             env["AR"] = ar_executable
-        if cc_toolchain.sysroot:
-            env["SYSROOT"] = cc_toolchain.sysroot
+
+        # Populate CFLAGS and CXXFLAGS that cc-rs relies on when building from source, in particular
+        # to determine the deployment target when building for apple platforms (`macosx-version-min`
+        # for example, itself derived from the `macos_minimum_os` Bazel argument).
+        env["CFLAGS"] = " ".join(_pwd_flags(cc_c_args))
+        env["CXXFLAGS"] = " ".join(_pwd_flags(cc_cxx_args))
 
     # Inform build scripts of rustc flags
     # https://github.com/rust-lang/cargo/issues/9600
@@ -127,6 +168,9 @@
     for f in ctx.attr.crate_features:
         env["CARGO_FEATURE_" + f.upper().replace("-", "_")] = "1"
 
+    # Add environment variables from the Rust toolchain.
+    env.update(toolchain.env)
+
     env.update(expand_dict_value_locations(
         ctx,
         ctx.attr.build_script_env,
@@ -258,7 +302,7 @@
     },
     fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -394,3 +438,61 @@
     if name.endswith("_build_script"):
         return name[:-len("_build_script")]
     return name
+
+def _cargo_dep_env_implementation(ctx):
+    empty_file = ctx.actions.declare_file(ctx.label.name + ".empty_file")
+    empty_dir = ctx.actions.declare_directory(ctx.label.name + ".empty_dir")
+    ctx.actions.write(
+        output = empty_file,
+        content = "",
+    )
+    ctx.actions.run(
+        outputs = [empty_dir],
+        executable = "true",
+    )
+    return [
+        DefaultInfo(files = depset(ctx.files.src)),
+        BuildInfo(
+            dep_env = empty_file,
+            flags = empty_file,
+            link_flags = empty_file,
+            link_search_paths = empty_file,
+            out_dir = empty_dir,
+            rustc_env = empty_file,
+        ),
+        _DepInfo(
+            dep_env = ctx.file.src,
+            direct_crates = depset(),
+            link_search_path_files = depset(),
+            transitive_build_infos = depset(),
+            transitive_crate_outputs = depset(),
+            transitive_crates = depset(),
+            transitive_noncrates = depset(),
+        ),
+    ]
+
+cargo_dep_env = rule(
+    implementation = _cargo_dep_env_implementation,
+    doc = (
+        "A rule for generating variables for dependent `cargo_build_script`s " +
+        "without a build script. This is useful for using Bazel rules instead " +
+        "of a build script, while also generating configuration information " +
+        "for build scripts which depend on this crate."
+    ),
+    attrs = {
+        "src": attr.label(
+            doc = dedent("""\
+                File containing additional environment variables to set for build scripts of direct dependencies.
+
+                This has the same effect as a `cargo_build_script` which prints
+                `cargo:VAR=VALUE` lines, but without requiring a build script.
+
+                This files should  contain a single variable per line, of format
+                `NAME=value`, and newlines may be included in a value by ending a
+                line with a trailing back-slash (`\\\\`).
+            """),
+            allow_single_file = True,
+            mandatory = True,
+        ),
+    },
+)
diff --git a/third_party/rules_rust/cargo/cargo_build_script_runner/BUILD.bazel b/third_party/rules_rust/cargo/cargo_build_script_runner/BUILD.bazel
index 11edd45..81e3256 100644
--- a/third_party/rules_rust/cargo/cargo_build_script_runner/BUILD.bazel
+++ b/third_party/rules_rust/cargo/cargo_build_script_runner/BUILD.bazel
@@ -3,16 +3,19 @@
 rust_library(
     name = "cargo_build_script_output_parser",
     srcs = ["lib.rs"],
+    edition = "2018",
 )
 
 rust_test(
     name = "test",
     crate = ":cargo_build_script_output_parser",
+    edition = "2018",
 )
 
 rust_binary(
     name = "cargo_build_script_runner",
     srcs = ["bin.rs"],
+    edition = "2018",
     visibility = ["//visibility:public"],
     deps = [":cargo_build_script_output_parser"],
 )
@@ -20,5 +23,6 @@
 rust_test(
     name = "bin_test",
     crate = ":cargo_build_script_runner",
+    edition = "2018",
     deps = [":cargo_build_script_runner"],
 )
diff --git a/third_party/rules_rust/cargo/cargo_build_script_runner/bin.rs b/third_party/rules_rust/cargo/cargo_build_script_runner/bin.rs
index 58f0363..9e40fef 100644
--- a/third_party/rules_rust/cargo/cargo_build_script_runner/bin.rs
+++ b/third_party/rules_rust/cargo/cargo_build_script_runner/bin.rs
@@ -72,9 +72,8 @@
                 if line.is_empty() {
                     continue;
                 }
-                let mut key_val = line.splitn(2, '=');
-                match (key_val.next(), key_val.next()) {
-                    (Some(key), Some(value)) => {
+                match line.split_once('=') {
+                    Some((key, value)) => {
                         command.env(key, value.replace("${pwd}", &exec_root.to_string_lossy()));
                     }
                     _ => {
@@ -89,14 +88,9 @@
         }
     }
 
-    for compiler_env_var in &["CC", "CXX"] {
-        if let Some(compiler_path) = env::var_os(compiler_env_var) {
-            let mut compiler_path = exec_root.join(compiler_path).into_os_string();
-            if let Some(sysroot_path) = env::var_os("SYSROOT") {
-                compiler_path.push(" --sysroot=");
-                compiler_path.push(&exec_root.join(sysroot_path));
-            }
-            command.env(compiler_env_var, compiler_path);
+    for tool_env_var in &["CC", "CXX", "LD"] {
+        if let Some(tool_path) = env::var_os(tool_env_var) {
+            command.env(tool_env_var, exec_root.join(tool_path));
         }
     }
 
@@ -111,10 +105,6 @@
         }
     }
 
-    if let Some(ld_path) = env::var_os("LD") {
-        command.env("LD", exec_root.join(ld_path));
-    }
-
     // replace env vars with a ${pwd} prefix with the exec_root
     for (key, value) in env::vars() {
         let exec_root_str = exec_root.to_str().expect("exec_root not in utf8");
@@ -264,10 +254,8 @@
 
     for line in stdout.lines() {
         if line.starts_with("target_") && line.contains('=') {
-            let mut parts = line.splitn(2, '=');
             // UNWRAP: Verified that line contains = and split into exactly 2 parts.
-            let key = parts.next().unwrap();
-            let value = parts.next().unwrap();
+            let (key, value) = line.split_once('=').unwrap();
             if value.starts_with('"') && value.ends_with('"') && value.len() >= 2 {
                 values
                     .entry(key)
diff --git a/third_party/rules_rust/cargo/private/cargo_utils.bzl b/third_party/rules_rust/cargo/private/cargo_utils.bzl
index d519576..ef8eb28 100644
--- a/third_party/rules_rust/cargo/private/cargo_utils.bzl
+++ b/third_party/rules_rust/cargo/private/cargo_utils.bzl
@@ -1,109 +1,7 @@
 """Utility functions for the cargo rules"""
 
-load("//rust/platform:triple.bzl", "triple")
 load("//rust/platform:triple_mappings.bzl", "system_to_binary_ext")
 
-_CPU_ARCH_ERROR_MSG = """\
-Command failed with exit code '{code}': {args}
-----------stdout:
-{stdout}
-----------stderr:
-{stderr}
-"""
-
-def _query_cpu_architecture(repository_ctx, expected_archs, is_windows = False):
-    """Detect the host CPU architecture
-
-    Args:
-        repository_ctx (repository_ctx): The repository rule's context object
-        expected_archs (list): A list of expected architecture strings
-        is_windows (bool, optional): If true, the cpu lookup will use the windows method (`wmic` vs `uname`)
-
-    Returns:
-        str: The host's CPU architecture
-    """
-    if is_windows:
-        arguments = ["wmic", "os", "get", "osarchitecture"]
-    else:
-        arguments = ["uname", "-m"]
-
-    result = repository_ctx.execute(arguments)
-
-    if result.return_code:
-        fail(_CPU_ARCH_ERROR_MSG.format(
-            code = result.return_code,
-            args = arguments,
-            stdout = result.stdout,
-            stderr = result.stderr,
-        ))
-
-    if is_windows:
-        # Example output:
-        # OSArchitecture
-        # 64-bit
-        lines = result.stdout.split("\n")
-        arch = lines[1].strip()
-
-        # Translate 64-bit to a compatible rust platform
-        # https://doc.rust-lang.org/nightly/rustc/platform-support.html
-        if arch == "64-bit":
-            arch = "x86_64"
-    else:
-        arch = result.stdout.strip("\n")
-
-        # Correct the arm architecture for macos
-        if "mac" in repository_ctx.os.name and arch == "arm64":
-            arch = "aarch64"
-
-    if not arch in expected_archs:
-        fail("{} is not a expected cpu architecture {}\n{}".format(
-            arch,
-            expected_archs,
-            result.stdout,
-        ))
-
-    return arch
-
-def get_host_triple(repository_ctx, abi = None):
-    """Query host information for the appropriate triples for the crate_universe resolver
-
-    Args:
-        repository_ctx (repository_ctx): The rule's repository_ctx
-        abi (str): Since there's no consistent way to check for ABI, this info
-            may be explicitly provided
-
-    Returns:
-        struct: A triple struct, see `@rules_rust//rust/platform:triple.bzl`
-    """
-
-    # Detect the host's cpu architecture
-
-    supported_architectures = {
-        "linux": ["aarch64", "x86_64"],
-        "macos": ["aarch64", "x86_64"],
-        "windows": ["x86_64"],
-    }
-
-    if "linux" in repository_ctx.os.name:
-        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["linux"])
-        return triple("{}-unknown-linux-{}".format(
-            cpu,
-            abi or "gnu",
-        ))
-
-    if "mac" in repository_ctx.os.name:
-        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["macos"])
-        return triple("{}-apple-darwin".format(cpu))
-
-    if "win" in repository_ctx.os.name:
-        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["windows"], True)
-        return triple("{}-pc-windows-{}".format(
-            cpu,
-            abi or "msvc",
-        ))
-
-    fail("Unhandled host os: {}", repository_ctx.os.name)
-
 def _resolve_repository_template(
         template,
         abi = None,
@@ -168,7 +66,7 @@
     cargo_label = Label(_resolve_repository_template(
         template = cargo_template,
         version = version,
-        triple = host_triple.triple,
+        triple = host_triple.str,
         arch = host_triple.arch,
         vendor = host_triple.vendor,
         system = host_triple.system,
@@ -179,7 +77,7 @@
     rustc_label = Label(_resolve_repository_template(
         template = rustc_template,
         version = version,
-        triple = host_triple.triple,
+        triple = host_triple.str,
         arch = host_triple.arch,
         vendor = host_triple.vendor,
         system = host_triple.system,
diff --git a/third_party/rules_rust/crate_universe/.gitignore b/third_party/rules_rust/crate_universe/.gitignore
new file mode 100644
index 0000000..d192b14
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/.gitignore
@@ -0,0 +1 @@
+/private/bootstrap/
diff --git a/third_party/rules_rust/crate_universe/3rdparty/BUILD.bazel b/third_party/rules_rust/crate_universe/3rdparty/BUILD.bazel
index 1f0b8ee..bec71cd 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/BUILD.bazel
@@ -1,20 +1,44 @@
-load("//crate_universe:crates.bzl", "crate_deps_target")
+load("//crate_universe/private:crate.bzl", "crate")
+load("//crate_universe/private:crates_vendor.bzl", "crates_vendor")
 
 package(default_visibility = ["//visibility:public"])
 
-crate_deps_target()
+exports_files([
+    "Cargo.Bazel.lock",
+    "cargo-bazel-lock.json",
+])
 
-filegroup(
-    name = "distro",
-    srcs = glob([
-        "*.bzl",
-        "*.bazel",
-    ]) + [
-        "//crate_universe/3rdparty/crates:srcs",
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "libgit2-sys": [crate.annotation(
+            gen_build_script = False,
+            deps = ["@libgit2"],
+        )],
+        "libz-sys": [crate.annotation(
+            gen_build_script = False,
+            deps = ["@zlib"],
+        )],
+    },
+    cargo_lockfile = "@rules_rust//crate_universe/3rdparty:Cargo.Bazel.lock",
+    manifests = [
+        "@rules_rust//crate_universe:Cargo.toml",
+        "@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
+        "@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
     ],
+    mode = "remote",
+    # Short for 'crate universe index'. Keep this short to reduce the risk to
+    # bump into absolute path length issues on Windows. See:
+    # https://github.com/bazelbuild/rules_rust/issues/1120
+    repository_name = "cui",
+    tags = ["manual"],
+    vendor_path = "crates",
 )
 
 filegroup(
     name = "bzl_srcs",
-    srcs = glob(["*.bzl"]),
+    srcs = glob(["*.bzl"]) + [
+        "//crate_universe/3rdparty/crates:crates.bzl",
+        "//crate_universe/3rdparty/crates:defs.bzl",
+    ],
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/BUILD.libgit2.bazel b/third_party/rules_rust/crate_universe/3rdparty/BUILD.libgit2.bazel
index 031ee78..38124c5 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/BUILD.libgit2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/BUILD.libgit2.bazel
@@ -179,18 +179,27 @@
 )
 
 cc_library(
+    name = "include",
+    hdrs = [":configure_features"] + glob(["include/**/*.h"]),
+    strip_include_prefix = "include",
+)
+
+cc_library(
     name = "git2",
-    srcs = glob(
+    srcs = [
+        "src/allocators/failalloc.c",
+        "src/allocators/stdalloc.c",
+        "src/allocators/win32_leakcheck.c",
+        # Use the CollisionDetection SHA1 implementation.
+        "src/hash/sha1/collisiondetect.c",
+        "src/hash/sha1/sha1dc/sha1.c",
+        "src/hash/sha1/sha1dc/ubc_check.c",
+    ] + glob(
         include = [
             "src/*.c",
-            "src/*.h",
-            "src/xdiff/*.h",
             "src/xdiff/*.c",
-            "src/transports/*.h",
             "src/transports/*.c",
-            "src/streams/*.h",
             "src/streams/*.c",
-            "src/hash/*.h",
             "src/hash/*.c",
         ],
         exclude = [
@@ -198,32 +207,33 @@
             "src/unix/**",
         ],
     ) + select({
-        "@platforms//os:windows": glob([
-            "src/win32/**/*.h",
-            "src/win32/**/*.c",
-        ]),
-        "//conditions:default": glob([
-            "src/unix/**/*.h",
-            "src/unix/**/*.c",
-        ]),
-    }) + [
-        "src/allocators/failalloc.c",
+        "@platforms//os:windows": glob(["src/win32/**/*.c"]),
+        "//conditions:default": glob(["src/unix/**/*.c"]),
+    }),
+    hdrs = [
         "src/allocators/failalloc.h",
-        "src/allocators/stdalloc.c",
         "src/allocators/stdalloc.h",
-        "src/allocators/win32_leakcheck.c",
         "src/allocators/win32_leakcheck.h",
         # Use the CollisionDetection SHA1 implementation.
         "src/hash/sha1/collisiondetect.h",
-        "src/hash/sha1/collisiondetect.c",
         "src/hash/sha1/sha1dc/sha1.h",
-        "src/hash/sha1/sha1dc/sha1.c",
         "src/hash/sha1/sha1dc/ubc_check.h",
-        "src/hash/sha1/sha1dc/ubc_check.c",
-    ],
-    hdrs = glob(["include/**/*.h"]) + [
-        ":configure_features",
-    ],
+    ] + glob(
+        include = [
+            "src/*.h",
+            "src/xdiff/*.h",
+            "src/transports/*.h",
+            "src/streams/*.h",
+            "src/hash/*.h",
+        ],
+        exclude = [
+            "src/win32/**",
+            "src/unix/**",
+        ],
+    ) + select({
+        "@platforms//os:windows": glob(["src/win32/**/*.h"]),
+        "//conditions:default": glob(["src/unix/**/*.h"]),
+    }),
     copts = select({
         "@platforms//os:linux": [
             "-fvisibility=hidden",
@@ -256,15 +266,12 @@
         ":windows": ["STRSAFE_NO_DEPRECATE"],
         "//conditions:default": [],
     }),
-    includes = [
-        "include",
-        "src",
-    ],
     linkstatic = True,
-    strip_include_prefix = "include",
+    strip_include_prefix = "src",
     visibility = ["//visibility:public"],
     deps = [
         ":http-parser",
+        ":include",
         ":pcre",
         "@zlib",
     ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/crate_universe/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..c318546
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,1439 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "block-buffer"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+dependencies = [
+ "block-padding",
+ "byte-tools",
+ "byteorder",
+ "generic-array 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
+dependencies = [
+ "generic-array 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
+dependencies = [
+ "byte-tools",
+]
+
+[[package]]
+name = "bstr"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "byte-tools"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "camino"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo-bazel"
+version = "0.4.0"
+dependencies = [
+ "anyhow",
+ "cargo-lock",
+ "cargo-platform",
+ "cargo_metadata",
+ "cargo_toml",
+ "cfg-expr",
+ "clap",
+ "crates-index",
+ "hex",
+ "maplit",
+ "normpath",
+ "pathdiff",
+ "regex",
+ "semver",
+ "serde",
+ "serde_json",
+ "sha2",
+ "spectral",
+ "tempfile",
+ "tera",
+ "textwrap",
+ "toml",
+]
+
+[[package]]
+name = "cargo-lock"
+version = "8.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c4c54d47a4532db3494ef7332c257ab57b02750daae3250d49e01ee55201ce8"
+dependencies = [
+ "semver",
+ "serde",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "cargo-platform"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "cargo_metadata"
+version = "0.14.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
+dependencies = [
+ "camino",
+ "cargo-platform",
+ "semver",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "cargo_toml"
+version = "0.11.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5809dd3e6444651fd1cdd3dbec71eca438c439a0fcc8081674a14da0afe50185"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "toml",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-expr"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db"
+dependencies = [
+ "smallvec",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+dependencies = [
+ "libc",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "chrono-tz"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552"
+dependencies = [
+ "chrono",
+ "chrono-tz-build",
+ "phf",
+]
+
+[[package]]
+name = "chrono-tz-build"
+version = "0.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069"
+dependencies = [
+ "parse-zoneinfo",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "clap"
+version = "3.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "indexmap",
+ "once_cell",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crates-index"
+version = "0.18.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2519c91ad7a6e3250a64fb71162d2db1afe7bcf826a465f84d2052fd69639b7a"
+dependencies = [
+ "git2",
+ "hex",
+ "home",
+ "memchr",
+ "num_cpus",
+ "rustc-hash",
+ "semver",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "smartstring",
+]
+
+[[package]]
+name = "cross_installer"
+version = "0.1.0"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "crypto-common"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0"
+dependencies = [
+ "generic-array 0.14.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "typenum",
+]
+
+[[package]]
+name = "deunicode"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
+
+[[package]]
+name = "digest"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+dependencies = [
+ "generic-array 0.12.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
+dependencies = [
+ "block-buffer 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crypto-common",
+]
+
+[[package]]
+name = "fake-simd"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+
+[[package]]
+name = "fastrand"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "generic-array"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
+dependencies = [
+ "typenum",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "git2"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "globset"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "fnv",
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "globwalk"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
+dependencies = [
+ "bitflags",
+ "ignore",
+ "walkdir",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hex"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "home"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "humansize"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026"
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
+dependencies = [
+ "crossbeam-utils",
+ "globset",
+ "lazy_static",
+ "log",
+ "memchr",
+ "regex",
+ "same-file",
+ "thread_local",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+
+[[package]]
+name = "jobserver"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.13.4+1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "maplit"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "normpath"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04aaf5e9cb0fbf883cc0423159eacdf96a9878022084b35c462c428cab73bcaf"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "num"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
+dependencies = [
+ "num-bigint",
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.1.44"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
+dependencies = [
+ "num-integer",
+ "num-traits",
+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
+dependencies = [
+ "num-traits",
+ "rustc-serialize",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
+dependencies = [
+ "num-bigint",
+ "num-integer",
+ "num-traits",
+ "rustc-serialize",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "opaque-debug"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
+
+[[package]]
+name = "parse-zoneinfo"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pest"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
+dependencies = [
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
+dependencies = [
+ "maplit",
+ "pest",
+ "sha-1",
+]
+
+[[package]]
+name = "phf"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
+dependencies = [
+ "phf_shared",
+ "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+ "uncased",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustc-serialize"
+version = "0.3.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
+
+[[package]]
+name = "ryu"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.138"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.138"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha-1"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
+dependencies = [
+ "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fake-simd",
+ "opaque-debug",
+]
+
+[[package]]
+name = "sha2"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "slug"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
+dependencies = [
+ "deunicode",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+
+[[package]]
+name = "smartstring"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
+dependencies = [
+ "autocfg",
+ "serde",
+ "static_assertions",
+ "version_check",
+]
+
+[[package]]
+name = "smawk"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+
+[[package]]
+name = "spectral"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba"
+dependencies = [
+ "num",
+]
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "tera"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c9783d6ff395ae80cf17ed9a25360e7ba37742a79fa8fddabb073c5c7c8856d"
+dependencies = [
+ "chrono",
+ "chrono-tz",
+ "globwalk",
+ "humansize",
+ "lazy_static",
+ "percent-encoding",
+ "pest",
+ "pest_derive",
+ "rand 0.8.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex",
+ "serde",
+ "serde_json",
+ "slug",
+ "unic-segment",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+dependencies = [
+ "smawk",
+ "unicode-linebreak",
+ "unicode-width",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "toml"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "typenum"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c"
+
+[[package]]
+name = "uncased"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-segment"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23"
+dependencies = [
+ "unic-ucd-segment",
+]
+
+[[package]]
+name = "unic-ucd-segment"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700"
+dependencies = [
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
+name = "unicode-linebreak"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a52dcaab0c48d931f7cc8ef826fa51690a08e1ea55117ef26f89864f532383f"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "urls_generator"
+version = "0.1.0"
+dependencies = [
+ "clap",
+ "hex",
+ "serde_json",
+ "sha2",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "walkdir"
+version = "2.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+dependencies = [
+ "same-file",
+ "winapi",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/bindgen/raze/remote/BUILD.bazel b/third_party/rules_rust/crate_universe/3rdparty/cargo-bazel-lock.json
similarity index 100%
rename from third_party/rules_rust/bindgen/raze/remote/BUILD.bazel
rename to third_party/rules_rust/crate_universe/3rdparty/cargo-bazel-lock.json
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
index 461d2ac..035b4cc 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__memchr-2.4.1//:memchr",
+            "@cui__memchr-2.5.0//:memchr",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.55.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.55.bazel
deleted file mode 100644
index 862e2f4..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.55.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "anyhow",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.55",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__anyhow-1.0.55//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "anyhow_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.55",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "anyhow_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.58.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
new file mode 100644
index 0000000..3642fb5
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "anyhow",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.58",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__anyhow-1.0.58//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "anyhow_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.58",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "anyhow_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.atty-0.2.14.bazel
index da6f0b6..9851947 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.atty-0.2.14.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.atty-0.2.14.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,9 +93,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -104,7 +112,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
         ],
@@ -114,7 +122,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
index bd2fcd9..5f651cb 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bazel
index 4f6b676..b43f43c 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 package(default_visibility = ["//visibility:public"])
@@ -28,139 +29,157 @@
 # Workspace Member Dependencies
 alias(
     name = "anyhow",
-    actual = "@crate_index__anyhow-1.0.55//:anyhow",
+    actual = "@cui__anyhow-1.0.58//:anyhow",
     tags = ["manual"],
 )
 
 alias(
     name = "cargo-lock",
-    actual = "@crate_index__cargo-lock-7.0.1//:cargo_lock",
+    actual = "@cui__cargo-lock-8.0.2//:cargo_lock",
     tags = ["manual"],
 )
 
 alias(
     name = "cargo-platform",
-    actual = "@crate_index__cargo-platform-0.1.2//:cargo_platform",
+    actual = "@cui__cargo-platform-0.1.2//:cargo_platform",
     tags = ["manual"],
 )
 
 alias(
     name = "cargo_metadata",
-    actual = "@crate_index__cargo_metadata-0.14.2//:cargo_metadata",
+    actual = "@cui__cargo_metadata-0.14.2//:cargo_metadata",
     tags = ["manual"],
 )
 
 alias(
     name = "cargo_toml",
-    actual = "@crate_index__cargo_toml-0.11.4//:cargo_toml",
+    actual = "@cui__cargo_toml-0.11.5//:cargo_toml",
     tags = ["manual"],
 )
 
 alias(
     name = "cfg-expr",
-    actual = "@crate_index__cfg-expr-0.10.2//:cfg_expr",
+    actual = "@cui__cfg-expr-0.10.3//:cfg_expr",
     tags = ["manual"],
 )
 
 alias(
     name = "clap",
-    actual = "@crate_index__clap-3.1.5//:clap",
+    actual = "@cui__clap-3.2.8//:clap",
     tags = ["manual"],
 )
 
 alias(
     name = "crates-index",
-    actual = "@crate_index__crates-index-0.18.7//:crates_index",
+    actual = "@cui__crates-index-0.18.8//:crates_index",
     tags = ["manual"],
 )
 
 alias(
     name = "hex",
-    actual = "@crate_index__hex-0.4.3//:hex",
+    actual = "@cui__hex-0.4.3//:hex",
+    tags = ["manual"],
+)
+
+alias(
+    name = "maplit",
+    actual = "@cui__maplit-1.0.2//:maplit",
+    tags = ["manual"],
+)
+
+alias(
+    name = "normpath",
+    actual = "@cui__normpath-0.3.2//:normpath",
     tags = ["manual"],
 )
 
 alias(
     name = "pathdiff",
-    actual = "@crate_index__pathdiff-0.2.1//:pathdiff",
+    actual = "@cui__pathdiff-0.2.1//:pathdiff",
     tags = ["manual"],
 )
 
 alias(
     name = "regex",
-    actual = "@crate_index__regex-1.5.4//:regex",
+    actual = "@cui__regex-1.6.0//:regex",
     tags = ["manual"],
 )
 
 alias(
     name = "semver",
-    actual = "@crate_index__semver-1.0.6//:semver",
+    actual = "@cui__semver-1.0.12//:semver",
     tags = ["manual"],
 )
 
 alias(
     name = "serde",
-    actual = "@crate_index__serde-1.0.136//:serde",
+    actual = "@cui__serde-1.0.138//:serde",
     tags = ["manual"],
 )
 
 alias(
     name = "serde_json",
-    actual = "@crate_index__serde_json-1.0.79//:serde_json",
+    actual = "@cui__serde_json-1.0.82//:serde_json",
     tags = ["manual"],
 )
 
 alias(
     name = "sha2",
-    actual = "@crate_index__sha2-0.10.2//:sha2",
+    actual = "@cui__sha2-0.10.2//:sha2",
     tags = ["manual"],
 )
 
 alias(
     name = "spectral",
-    actual = "@crate_index__spectral-0.6.0//:spectral",
+    actual = "@cui__spectral-0.6.0//:spectral",
     tags = ["manual"],
 )
 
 alias(
     name = "tempfile",
-    actual = "@crate_index__tempfile-3.3.0//:tempfile",
+    actual = "@cui__tempfile-3.3.0//:tempfile",
     tags = ["manual"],
 )
 
 alias(
     name = "tera",
-    actual = "@crate_index__tera-1.15.0//:tera",
+    actual = "@cui__tera-1.16.0//:tera",
     tags = ["manual"],
 )
 
 alias(
     name = "textwrap",
-    actual = "@crate_index__textwrap-0.14.2//:textwrap",
+    actual = "@cui__textwrap-0.15.0//:textwrap",
     tags = ["manual"],
 )
 
 alias(
     name = "toml",
-    actual = "@crate_index__toml-0.5.8//:toml",
+    actual = "@cui__toml-0.5.9//:toml",
     tags = ["manual"],
 )
 
 # Binaries
 alias(
     name = "cargo-lock__cargo-lock",
-    actual = "@crate_index__cargo-lock-7.0.1//:cargo-lock__bin",
+    actual = "@cui__cargo-lock-8.0.2//:cargo-lock__bin",
     tags = ["manual"],
 )
 
 alias(
     name = "cc__gcc-shim",
-    actual = "@crate_index__cc-1.0.73//:gcc-shim__bin",
+    actual = "@cui__cc-1.0.73//:gcc-shim__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@cui__clap-3.2.8//:stdio-fixture__bin",
     tags = ["manual"],
 )
 
 alias(
     name = "phf_generator__gen_hash_test",
-    actual = "@crate_index__phf_generator-0.10.0//:gen_hash_test__bin",
+    actual = "@cui__phf_generator-0.10.0//:gen_hash_test__bin",
     tags = ["manual"],
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
index 6894746..030e572 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.2.bazel
index 5937127..e2b7c5c 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.10.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__generic-array-0.14.5//:generic_array",
+            "@cui__generic-array-0.14.5//:generic_array",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.7.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.7.3.bazel
index 1bb6977..8dbfce8 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.7.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-buffer-0.7.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,10 +85,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__block-padding-0.1.5//:block_padding",
-            "@crate_index__byte-tools-0.3.1//:byte_tools",
-            "@crate_index__byteorder-1.4.3//:byteorder",
-            "@crate_index__generic-array-0.12.4//:generic_array",
+            "@cui__block-padding-0.1.5//:block_padding",
+            "@cui__byte-tools-0.3.1//:byte_tools",
+            "@cui__byteorder-1.4.3//:byteorder",
+            "@cui__generic-array-0.12.4//:generic_array",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-padding-0.1.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-padding-0.1.5.bazel
index 57a82a0..4175a50 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-padding-0.1.5.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.block-padding-0.1.5.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__byte-tools-0.3.1//:byte_tools",
+            "@cui__byte-tools-0.3.1//:byte_tools",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bstr-0.2.17.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bstr-0.2.17.bazel
index 49bc9e9..44ac30a 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bstr-0.2.17.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.bstr-0.2.17.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__memchr-2.4.1//:memchr",
+            "@cui__memchr-2.5.0//:memchr",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byte-tools-0.3.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byte-tools-0.3.1.bazel
index c4f77ba..306f44e 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byte-tools-0.3.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byte-tools-0.3.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byteorder-1.4.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
index d08f7c4..1a6ec19 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.7.bazel
deleted file mode 100644
index 4a616b6..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.7.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "camino",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "serde",
-        "serde1",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__camino-1.0.7//:build_script_build",
-            "@crate_index__serde-1.0.136//:serde",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "camino_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "serde",
-        "serde1",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.7",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "camino_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.9.bazel
new file mode 100644
index 0000000..3548282
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.camino-1.0.9.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "camino",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "serde",
+        "serde1",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__camino-1.0.9//:build_script_build",
+            "@cui__serde-1.0.138//:serde",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "camino_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "serde",
+        "serde1",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "camino_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-7.0.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-7.0.1.bazel
deleted file mode 100644
index df635c5..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-7.0.1.bazel
+++ /dev/null
@@ -1,154 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "cargo_lock",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "7.0.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__semver-1.0.6//:semver",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__toml-0.5.8//:toml",
-            "@crate_index__url-2.2.2//:url",
-        ],
-    }),
-)
-
-rust_binary(
-    name = "cargo-lock__bin",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/bin/cargo-lock/main.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "7.0.1",
-    deps = [
-        ":cargo_lock",
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__semver-1.0.6//:semver",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__toml-0.5.8//:toml",
-            "@crate_index__url-2.2.2//:url",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-8.0.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-8.0.2.bazel
new file mode 100644
index 0000000..55735c5
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-lock-8.0.2.bazel
@@ -0,0 +1,165 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "cargo_lock",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "8.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__semver-1.0.12//:semver",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__toml-0.5.9//:toml",
+            "@cui__url-2.2.2//:url",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "cargo-lock__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/cargo-lock/main.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "8.0.2",
+    deps = [
+        ":cargo_lock",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__semver-1.0.12//:semver",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__toml-0.5.9//:toml",
+            "@cui__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.2.bazel
index 27eded2..d396d25 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo-platform-0.1.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__serde-1.0.136//:serde",
+            "@cui__serde-1.0.138//:serde",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.14.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.14.2.bazel
index 0255882..57b2668 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.14.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_metadata-0.14.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,11 +86,11 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__camino-1.0.7//:camino",
-            "@crate_index__cargo-platform-0.1.2//:cargo_platform",
-            "@crate_index__semver-1.0.6//:semver",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__serde_json-1.0.79//:serde_json",
+            "@cui__camino-1.0.9//:camino",
+            "@cui__cargo-platform-0.1.2//:cargo_platform",
+            "@cui__semver-1.0.12//:semver",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__serde_json-1.0.82//:serde_json",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.4.bazel
deleted file mode 100644
index 3a26aab..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.4.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "cargo_toml",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/cargo_toml.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde_derive-1.0.136//:serde_derive",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.11.4",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__toml-0.5.8//:toml",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.5.bazel
new file mode 100644
index 0000000..16dd657
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cargo_toml-0.11.5.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "cargo_toml",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/cargo_toml.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde_derive-1.0.138//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde-1.0.138//:serde",
+            "@cui__toml-0.5.9//:toml",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cc-1.0.73.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cc-1.0.73.bazel
index 70e0555..53c9fd2 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cc-1.0.73.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cc-1.0.73.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -37,7 +38,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,7 +88,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__jobserver-0.1.24//:jobserver",
+            "@cui__jobserver-0.1.24//:jobserver",
         ],
     }),
 )
@@ -100,7 +106,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -131,10 +145,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -146,7 +157,7 @@
         ":cc",
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__jobserver-0.1.24//:jobserver",
+            "@cui__jobserver-0.1.24//:jobserver",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.2.bazel
deleted file mode 100644
index 7f578b2..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.2.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "cfg_expr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.10.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__smallvec-1.8.0//:smallvec",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.3.bazel
new file mode 100644
index 0000000..a727e47
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-expr-0.10.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_expr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__smallvec-1.9.0//:smallvec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
index e4aab64..ef5b230 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-0.4.19.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-0.4.19.bazel
index a28b567..5fd0d78 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-0.4.19.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-0.4.19.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -88,17 +94,17 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
-            "@crate_index__libc-0.2.119//:libc",
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-traits-0.2.14//:num_traits",
+            "@cui__libc-0.2.126//:libc",
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-traits-0.2.15//:num_traits",
         ],
         "//conditions:default": [
-            "@crate_index__libc-0.2.119//:libc",
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-traits-0.2.14//:num_traits",
+            "@cui__libc-0.2.126//:libc",
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-traits-0.2.15//:num_traits",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.6.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.6.1.bazel
index 9fe3d72..0dd3545 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.6.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-0.6.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -85,9 +91,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__chrono-0.4.19//:chrono",
-            "@crate_index__chrono-tz-0.6.1//:build_script_build",
-            "@crate_index__phf-0.10.1//:phf",
+            "@cui__chrono-0.4.19//:chrono",
+            "@cui__chrono-tz-0.6.1//:build_script_build",
+            "@cui__phf-0.10.1//:phf",
         ],
     }),
 )
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -159,7 +162,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__chrono-tz-build-0.0.2//:chrono_tz_build",
+            "@cui__chrono-tz-build-0.0.2//:chrono_tz_build",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.0.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.0.2.bazel
index ff11da9..e8bd1b3 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.0.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.chrono-tz-build-0.0.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,9 +85,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__parse-zoneinfo-0.3.0//:parse_zoneinfo",
-            "@crate_index__phf-0.10.1//:phf",
-            "@crate_index__phf_codegen-0.10.0//:phf_codegen",
+            "@cui__parse-zoneinfo-0.3.0//:parse_zoneinfo",
+            "@cui__phf-0.10.1//:phf",
+            "@cui__phf_codegen-0.10.0//:phf_codegen",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.1.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.1.5.bazel
deleted file mode 100644
index 288246b..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.1.5.bazel
+++ /dev/null
@@ -1,104 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "clap",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "atty",
-        "clap_derive",
-        "color",
-        "default",
-        "derive",
-        "env",
-        "lazy_static",
-        "std",
-        "strsim",
-        "suggestions",
-        "termcolor",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__clap_derive-3.1.4//:clap_derive",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "3.1.5",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__atty-0.2.14//:atty",
-            "@crate_index__bitflags-1.3.2//:bitflags",
-            "@crate_index__indexmap-1.8.0//:indexmap",
-            "@crate_index__lazy_static-1.4.0//:lazy_static",
-            "@crate_index__os_str_bytes-6.0.0//:os_str_bytes",
-            "@crate_index__strsim-0.10.0//:strsim",
-            "@crate_index__termcolor-1.1.3//:termcolor",
-            "@crate_index__textwrap-0.15.0//:textwrap",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.2.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.2.8.bazel
new file mode 100644
index 0000000..fc08b1f
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap-3.2.8.bazel
@@ -0,0 +1,197 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__atty-0.2.14//:atty",
+            "@cui__bitflags-1.3.2//:bitflags",
+            "@cui__clap_lex-0.2.4//:clap_lex",
+            "@cui__indexmap-1.9.1//:indexmap",
+            "@cui__once_cell-1.13.0//:once_cell",
+            "@cui__strsim-0.10.0//:strsim",
+            "@cui__termcolor-1.1.3//:termcolor",
+            "@cui__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "stdio-fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/bin/stdio-fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.8",
+    deps = [
+        ":clap",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__atty-0.2.14//:atty",
+            "@cui__bitflags-1.3.2//:bitflags",
+            "@cui__clap_lex-0.2.4//:clap_lex",
+            "@cui__indexmap-1.9.1//:indexmap",
+            "@cui__once_cell-1.13.0//:once_cell",
+            "@cui__strsim-0.10.0//:strsim",
+            "@cui__termcolor-1.1.3//:termcolor",
+            "@cui__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.1.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.1.4.bazel
deleted file mode 100644
index be1c87c..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.1.4.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_proc_macro(
-    name = "clap_derive",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "3.1.4",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__heck-0.4.0//:heck",
-            "@crate_index__proc-macro-error-1.0.4//:proc_macro_error",
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
-            "@crate_index__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
new file mode 100644
index 0000000..6f36645
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "clap_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__heck-0.4.0//:heck",
+            "@cui__proc-macro-error-1.0.4//:proc_macro_error",
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
+            "@cui__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
new file mode 100644
index 0000000..de4683d
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap_lex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__os_str_bytes-6.1.0//:os_str_bytes",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.1.bazel
deleted file mode 100644
index c9f420c..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.1.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "cpufeatures",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.1",
-    deps = [
-    ] + select_with_or({
-        # aarch64-apple-darwin
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-        ): [
-            # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
-
-            # Common Deps
-        ],
-        # cfg(all(target_arch = "aarch64", target_os = "linux"))
-        (
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-        ): [
-            # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
-
-            # Common Deps
-        ],
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.2.bazel
new file mode 100644
index 0000000..2696ab3
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.cpufeatures-0.2.2.bazel
@@ -0,0 +1,117 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "cpufeatures",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.2",
+    deps = [
+    ] + select_with_or({
+        # aarch64-apple-darwin
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+        ): [
+            # Target Deps
+            "@cui__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # aarch64-linux-android
+        (
+            "@rules_rust//rust/platform:aarch64-linux-android",
+        ): [
+            # Target Deps
+            "@cui__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(all(target_arch = "aarch64", target_os = "linux"))
+        (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@cui__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.7.bazel
deleted file mode 100644
index 085bbd5..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.7.bazel
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0
-# ])
-
-rust_library(
-    name = "crates_index",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde_derive-1.0.136//:serde_derive",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.18.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__git2-0.14.1//:git2",
-            "@crate_index__hex-0.4.3//:hex",
-            "@crate_index__home-0.5.3//:home",
-            "@crate_index__memchr-2.4.1//:memchr",
-            "@crate_index__num_cpus-1.13.1//:num_cpus",
-            "@crate_index__rustc-hash-1.1.0//:rustc_hash",
-            "@crate_index__semver-1.0.6//:semver",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__serde_json-1.0.79//:serde_json",
-            "@crate_index__smartstring-1.0.0//:smartstring",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.8.bazel
new file mode 100644
index 0000000..0b9ff0c
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crates-index-0.18.8.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0
+# ])
+
+rust_library(
+    name = "crates_index",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde_derive-1.0.138//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.18.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__git2-0.14.4//:git2",
+            "@cui__hex-0.4.3//:hex",
+            "@cui__home-0.5.3//:home",
+            "@cui__memchr-2.5.0//:memchr",
+            "@cui__num_cpus-1.13.1//:num_cpus",
+            "@cui__rustc-hash-1.1.0//:rustc_hash",
+            "@cui__semver-1.0.12//:semver",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__serde_json-1.0.82//:serde_json",
+            "@cui__smartstring-1.0.1//:smartstring",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel
new file mode 100644
index 0000000..e09993a
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel
@@ -0,0 +1,182 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_utils",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__crossbeam-utils-0.8.10//:build_script_build",
+            "@cui__once_cell-1.13.0//:once_cell",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "crossbeam-utils_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.8.10",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "crossbeam-utils_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.7.bazel
deleted file mode 100644
index 228b9ea..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crossbeam-utils-0.8.7.bazel
+++ /dev/null
@@ -1,179 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "crossbeam_utils",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.8.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__crossbeam-utils-0.8.7//:build_script_build",
-            "@crate_index__lazy_static-1.4.0//:lazy_static",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "crossbeam-utils_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.8.7",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "crossbeam-utils_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.3.bazel
deleted file mode 100644
index 269f2d8..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.3.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "crypto_common",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.3",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__generic-array-0.14.5//:generic_array",
-            "@crate_index__typenum-1.15.0//:typenum",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.4.bazel
new file mode 100644
index 0000000..7456b4a
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.crypto-common-0.1.4.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crypto_common",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__generic-array-0.14.5//:generic_array",
+            "@cui__typenum-1.15.0//:typenum",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
index dbea22a..8477726 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.deunicode-0.4.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.10.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.10.3.bazel
index 0566635..1569254 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.10.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.10.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,8 +90,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__block-buffer-0.10.2//:block_buffer",
-            "@crate_index__crypto-common-0.1.3//:crypto_common",
+            "@cui__block-buffer-0.10.2//:block_buffer",
+            "@cui__crypto-common-0.1.4//:crypto_common",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.8.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.8.1.bazel
index ffcb916..2556cd7 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.8.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.digest-0.8.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__generic-array-0.12.4//:generic_array",
+            "@cui__generic-array-0.12.4//:generic_array",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fake-simd-0.1.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fake-simd-0.1.2.bazel
index b5f46a2..db2974f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fake-simd-0.1.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fake-simd-0.1.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fastrand-1.7.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fastrand-1.7.0.bazel
index 4653164..5a262de 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fastrand-1.7.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fastrand-1.7.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:wasm32-wasi",
         ): [
             # Target Deps
-            "@crate_index__instant-0.1.12//:instant",
+            "@cui__instant-0.1.12//:instant",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
index 9b3c6e3..2e0c82a 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fnv-1.0.7.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
index 55ca7b5..d1dbe7c 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,8 +85,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__matches-0.1.9//:matches",
-            "@crate_index__percent-encoding-2.1.0//:percent_encoding",
+            "@cui__matches-0.1.9//:matches",
+            "@cui__percent-encoding-2.1.0//:percent_encoding",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
index 13c5d65..bd0e2d8 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.fuchsia-cprng-0.1.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.12.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.12.4.bazel
index 34536b7..cf8157a 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.12.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.12.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__typenum-1.15.0//:typenum",
+            "@cui__typenum-1.15.0//:typenum",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.5.bazel
index 9d7fc09..fad3420 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.5.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.generic-array-0.14.5.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,8 +90,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__generic-array-0.14.5//:build_script_build",
-            "@crate_index__typenum-1.15.0//:typenum",
+            "@cui__generic-array-0.14.5//:build_script_build",
+            "@cui__typenum-1.15.0//:typenum",
         ],
     }),
 )
@@ -137,10 +143,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -156,7 +159,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__version_check-0.9.4//:version_check",
+            "@cui__version_check-0.9.4//:version_check",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.5.bazel
deleted file mode 100644
index 0c73b2d..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.5.bazel
+++ /dev/null
@@ -1,122 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "getrandom",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.5",
-    deps = [
-    ] + select_with_or({
-        # cfg(target_os = "wasi")
-        (
-            "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            # Target Deps
-            "@crate_index__wasi-0.10.2-wasi-snapshot-preview1//:wasi",
-
-            # Common Deps
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-        ],
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-        ): [
-            # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
-
-            # Common Deps
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-        ],
-        "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
new file mode 100644
index 0000000..18af579
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
@@ -0,0 +1,130 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "getrandom",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.7",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "wasi")
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@cui__wasi-0.11.0-wasi-snapshot-preview1//:wasi",
+
+            # Common Deps
+            "@cui__cfg-if-1.0.0//:cfg_if",
+        ],
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@cui__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@cui__cfg-if-1.0.0//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@cui__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.1.bazel
deleted file mode 100644
index 1a3d468..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.1.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "git2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.14.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__bitflags-1.3.2//:bitflags",
-            "@crate_index__libc-0.2.119//:libc",
-            "@crate_index__libgit2-sys-0.13.1-1.4.2//:libgit2_sys",
-            "@crate_index__log-0.4.14//:log",
-            "@crate_index__url-2.2.2//:url",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.4.bazel
new file mode 100644
index 0000000..785c303
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.git2-0.14.4.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "git2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.14.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__bitflags-1.3.2//:bitflags",
+            "@cui__libc-0.2.126//:libc",
+            "@cui__libgit2-sys-0.13.4-1.4.2//:libgit2_sys",
+            "@cui__log-0.4.17//:log",
+            "@cui__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.8.bazel
deleted file mode 100644
index e38b033..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.8.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "globset",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__aho-corasick-0.7.18//:aho_corasick",
-            "@crate_index__bstr-0.2.17//:bstr",
-            "@crate_index__fnv-1.0.7//:fnv",
-            "@crate_index__log-0.4.14//:log",
-            "@crate_index__regex-1.5.4//:regex",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.9.bazel
new file mode 100644
index 0000000..41b7dc8
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globset-0.4.9.bazel
@@ -0,0 +1,97 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "globset",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "log",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__aho-corasick-0.7.18//:aho_corasick",
+            "@cui__bstr-0.2.17//:bstr",
+            "@cui__fnv-1.0.7//:fnv",
+            "@cui__log-0.4.17//:log",
+            "@cui__regex-1.6.0//:regex",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
index f66d00a..b4ad397 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.globwalk-0.8.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,9 +85,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__bitflags-1.3.2//:bitflags",
-            "@crate_index__ignore-0.4.18//:ignore",
-            "@crate_index__walkdir-2.3.2//:walkdir",
+            "@cui__bitflags-1.3.2//:bitflags",
+            "@cui__ignore-0.4.18//:ignore",
+            "@cui__walkdir-2.3.2//:walkdir",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.11.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.11.2.bazel
deleted file mode 100644
index 54a071b..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.11.2.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "hashbrown",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "raw",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.11.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.12.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.12.1.bazel
new file mode 100644
index 0000000..5aee01f
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hashbrown-0.12.1.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.heck-0.4.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.heck-0.4.0.bazel
index f8a2a8e..cf20c66 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.heck-0.4.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.heck-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
index 87a0e63..3382110 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
index 532d6eb..d9e08c2 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.hex-0.4.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,7 +89,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__serde-1.0.136//:serde",
+            "@cui__serde-1.0.138//:serde",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.home-0.5.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.home-0.5.3.bazel
index d500a98..8d15a57 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.home-0.5.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.home-0.5.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.humansize-1.1.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.humansize-1.1.1.bazel
index 48be3d7..060b964 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.humansize-1.1.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.humansize-1.1.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.idna-0.2.3.bazel
index d414d18..6e1f2fd 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.idna-0.2.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.idna-0.2.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,9 +85,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__matches-0.1.9//:matches",
-            "@crate_index__unicode-bidi-0.3.7//:unicode_bidi",
-            "@crate_index__unicode-normalization-0.1.19//:unicode_normalization",
+            "@cui__matches-0.1.9//:matches",
+            "@cui__unicode-bidi-0.3.8//:unicode_bidi",
+            "@cui__unicode-normalization-0.1.21//:unicode_normalization",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
index 3d8cc4b..ddb28be 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ignore-0.4.18.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,29 +90,29 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-util-0.1.5//:winapi_util",
+            "@cui__winapi-util-0.1.5//:winapi_util",
 
             # Common Deps
-            "@crate_index__crossbeam-utils-0.8.7//:crossbeam_utils",
-            "@crate_index__globset-0.4.8//:globset",
-            "@crate_index__lazy_static-1.4.0//:lazy_static",
-            "@crate_index__log-0.4.14//:log",
-            "@crate_index__memchr-2.4.1//:memchr",
-            "@crate_index__regex-1.5.4//:regex",
-            "@crate_index__same-file-1.0.6//:same_file",
-            "@crate_index__thread_local-1.1.4//:thread_local",
-            "@crate_index__walkdir-2.3.2//:walkdir",
+            "@cui__crossbeam-utils-0.8.10//:crossbeam_utils",
+            "@cui__globset-0.4.9//:globset",
+            "@cui__lazy_static-1.4.0//:lazy_static",
+            "@cui__log-0.4.17//:log",
+            "@cui__memchr-2.5.0//:memchr",
+            "@cui__regex-1.6.0//:regex",
+            "@cui__same-file-1.0.6//:same_file",
+            "@cui__thread_local-1.1.4//:thread_local",
+            "@cui__walkdir-2.3.2//:walkdir",
         ],
         "//conditions:default": [
-            "@crate_index__crossbeam-utils-0.8.7//:crossbeam_utils",
-            "@crate_index__globset-0.4.8//:globset",
-            "@crate_index__lazy_static-1.4.0//:lazy_static",
-            "@crate_index__log-0.4.14//:log",
-            "@crate_index__memchr-2.4.1//:memchr",
-            "@crate_index__regex-1.5.4//:regex",
-            "@crate_index__same-file-1.0.6//:same_file",
-            "@crate_index__thread_local-1.1.4//:thread_local",
-            "@crate_index__walkdir-2.3.2//:walkdir",
+            "@cui__crossbeam-utils-0.8.10//:crossbeam_utils",
+            "@cui__globset-0.4.9//:globset",
+            "@cui__lazy_static-1.4.0//:lazy_static",
+            "@cui__log-0.4.17//:log",
+            "@cui__memchr-2.5.0//:memchr",
+            "@cui__regex-1.6.0//:regex",
+            "@cui__same-file-1.0.6//:same_file",
+            "@cui__thread_local-1.1.4//:thread_local",
+            "@cui__walkdir-2.3.2//:walkdir",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.8.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.8.0.bazel
deleted file mode 100644
index 18e7ed7..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.8.0.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "indexmap",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__hashbrown-0.11.2//:hashbrown",
-            "@crate_index__indexmap-1.8.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "indexmap_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.8.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__autocfg-1.1.0//:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "indexmap_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.9.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..90c74c1
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__hashbrown-0.12.1//:hashbrown",
+            "@cui__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.instant-0.1.12.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.instant-0.1.12.bazel
index 97683a6..361368d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.instant-0.1.12.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.instant-0.1.12.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
+            "@cui__cfg-if-1.0.0//:cfg_if",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.1.bazel
deleted file mode 100644
index 69bfcf9..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.1.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "itoa",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.2.bazel
new file mode 100644
index 0000000..db7dfe1
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.itoa-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.jobserver-0.1.24.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.jobserver-0.1.24.bazel
index 6e08f26..7944dc3 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.jobserver-0.1.24.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.jobserver-0.1.24.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -99,7 +107,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
index aabde66..1be9144 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.119.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.119.bazel
deleted file mode 100644
index 57c96d1..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.119.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.119",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__libc-0.2.119//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "libc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.119",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "libc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..22b2593
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.1+1.4.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.1+1.4.2.bazel
deleted file mode 100644
index 1f86220..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.1+1.4.2.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "libgit2_sys",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.13.1+1.4.2",
-    deps = [
-        "@libgit2",
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__libc-0.2.119//:libc",
-            "@crate_index__libz-sys-1.1.3//:libz_sys",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel
new file mode 100644
index 0000000..0d3e505
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libgit2_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.13.4+1.4.2",
+    deps = [
+        "@libgit2",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__libc-0.2.126//:libc",
+            "@cui__libz-sys-1.1.8//:libz_sys",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.3.bazel
deleted file mode 100644
index 725a428..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.3.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libz_sys",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "libc",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.1.3",
-    deps = [
-        "@zlib",
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__libc-0.2.119//:libc",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
new file mode 100644
index 0000000..57e84a7
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libz_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "libc",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.8",
+    deps = [
+        "@zlib",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.14.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.14.bazel
deleted file mode 100644
index 6471f8d..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,172 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__log-0.4.14//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "log_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "log_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..94321d8
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
index c7e2e04..7ec2d3b 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.maplit-1.0.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.matches-0.1.9.bazel
index b2ec92b..eb0371f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.matches-0.1.9.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.matches-0.1.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index ae3c518..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "memchr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "2.4.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__memchr-2.4.1//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "memchr_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "memchr_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..1c9eed3
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.normpath-0.3.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.normpath-0.3.2.bazel
new file mode 100644
index 0000000..475620f
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.normpath-0.3.2.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "normpath",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.2",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@cui__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
index e64c7e9..e020ca2 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-0.1.42.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,12 +93,12 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__num-bigint-0.1.44//:num_bigint",
-            "@crate_index__num-complex-0.1.43//:num_complex",
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-iter-0.1.42//:num_iter",
-            "@crate_index__num-rational-0.1.42//:num_rational",
-            "@crate_index__num-traits-0.2.14//:num_traits",
+            "@cui__num-bigint-0.1.44//:num_bigint",
+            "@cui__num-complex-0.1.43//:num_complex",
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-iter-0.1.43//:num_iter",
+            "@cui__num-rational-0.1.42//:num_rational",
+            "@cui__num-traits-0.2.15//:num_traits",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
index 861ff69..9223b17 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-bigint-0.1.44.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,10 +88,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-traits-0.2.14//:num_traits",
-            "@crate_index__rand-0.4.6//:rand",
-            "@crate_index__rustc-serialize-0.3.24//:rustc_serialize",
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-traits-0.2.15//:num_traits",
+            "@cui__rand-0.4.6//:rand",
+            "@cui__rustc-serialize-0.3.24//:rustc_serialize",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
index 07ee208..b72b2c8 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-complex-0.1.43.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,8 +87,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__num-traits-0.2.14//:num_traits",
-            "@crate_index__rustc-serialize-0.3.24//:rustc_serialize",
+            "@cui__num-traits-0.2.15//:num_traits",
+            "@cui__rustc-serialize-0.3.24//:rustc_serialize",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.44.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.44.bazel
deleted file mode 100644
index b8e125d..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.44.bazel
+++ /dev/null
@@ -1,177 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "num_integer",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.44",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__num-integer-0.1.44//:build_script_build",
-            "@crate_index__num-traits-0.2.14//:num_traits",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "num-integer_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.1.44",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__autocfg-1.1.0//:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "num-integer_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
new file mode 100644
index 0000000..e53fb5c
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
@@ -0,0 +1,180 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_integer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.45",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__num-integer-0.1.45//:build_script_build",
+            "@cui__num-traits-0.2.15//:num_traits",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "num-integer_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.45",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "num-integer_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.42.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.42.bazel
deleted file mode 100644
index 926481a..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.42.bazel
+++ /dev/null
@@ -1,178 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "num_iter",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.42",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-iter-0.1.42//:build_script_build",
-            "@crate_index__num-traits-0.2.14//:num_traits",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "num-iter_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.1.42",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__autocfg-1.1.0//:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "num-iter_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel
new file mode 100644
index 0000000..df4d761
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-iter-0.1.43.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_iter",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.43",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-iter-0.1.43//:build_script_build",
+            "@cui__num-traits-0.2.15//:num_traits",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "num-iter_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.43",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "num-iter_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
index 1b3ca21..bec1a87 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-rational-0.1.42.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,10 +89,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__num-bigint-0.1.44//:num_bigint",
-            "@crate_index__num-integer-0.1.44//:num_integer",
-            "@crate_index__num-traits-0.2.14//:num_traits",
-            "@crate_index__rustc-serialize-0.3.24//:rustc_serialize",
+            "@cui__num-bigint-0.1.44//:num_bigint",
+            "@cui__num-integer-0.1.45//:num_integer",
+            "@cui__num-traits-0.2.15//:num_traits",
+            "@cui__rustc-serialize-0.3.24//:rustc_serialize",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.14.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.14.bazel
deleted file mode 100644
index 0b5ebe1..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.14.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "num_traits",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__num-traits-0.2.14//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "num-traits_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__autocfg-1.1.0//:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "num-traits_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
new file mode 100644
index 0000000..f961129
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_traits",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__num-traits-0.2.15//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "num-traits_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.15",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "num-traits_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
index 9cb3763..973e09d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,15 +93,18 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
             "@rules_rust//rust/platform:i686-unknown-freebsd",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
             "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
@@ -106,7 +115,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..ba25fcb
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.9.0.bazel
deleted file mode 100644
index f2a936a..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.once_cell-1.9.0.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.9.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.opaque-debug-0.2.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.opaque-debug-0.2.3.bazel
index f327831..28f1882 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.opaque-debug-0.2.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.opaque-debug-0.2.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.0.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.0.0.bazel
deleted file mode 100644
index 10bd190..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.0.0.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "os_str_bytes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "memchr",
-        "raw_os_str",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "6.0.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__memchr-2.4.1//:memchr",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.1.0.bazel
new file mode 100644
index 0000000..30c2480
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.os_str_bytes-6.1.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "os_str_bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw_os_str",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "6.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
index f825ee1..28d1a6d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.parse-zoneinfo-0.3.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__regex-1.5.4//:regex",
+            "@cui__regex-1.6.0//:regex",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
index 4aade08..ea733a7 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pathdiff-0.2.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
index 1ad467a..cf94bab 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest-2.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest-2.1.3.bazel
index 47afac4..e1e7bec 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest-2.1.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest-2.1.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__ucd-trie-0.1.3//:ucd_trie",
+            "@cui__ucd-trie-0.1.4//:ucd_trie",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_derive-2.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_derive-2.1.0.bazel
index 53c8c15..f74764b 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_derive-2.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_derive-2.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,8 +85,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__pest-2.1.3//:pest",
-            "@crate_index__pest_generator-2.1.3//:pest_generator",
+            "@cui__pest-2.1.3//:pest",
+            "@cui__pest_generator-2.1.3//:pest_generator",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_generator-2.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_generator-2.1.3.bazel
index 1370e95..cb11080 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_generator-2.1.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_generator-2.1.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,11 +85,11 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__pest-2.1.3//:pest",
-            "@crate_index__pest_meta-2.1.3//:pest_meta",
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
-            "@crate_index__syn-1.0.86//:syn",
+            "@cui__pest-2.1.3//:pest",
+            "@cui__pest_meta-2.1.3//:pest_meta",
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
+            "@cui__syn-1.0.98//:syn",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_meta-2.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_meta-2.1.3.bazel
index 81b94ca..7a901d5 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_meta-2.1.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pest_meta-2.1.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,8 +85,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__maplit-1.0.2//:maplit",
-            "@crate_index__pest-2.1.3//:pest",
+            "@cui__maplit-1.0.2//:maplit",
+            "@cui__pest-2.1.3//:pest",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf-0.10.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf-0.10.1.bazel
index 567ec45..0f14e41 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf-0.10.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf-0.10.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__phf_shared-0.10.0//:phf_shared",
+            "@cui__phf_shared-0.10.0//:phf_shared",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.10.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.10.0.bazel
index 7d8a09f..e4136a6 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.10.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_codegen-0.10.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,8 +85,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__phf_generator-0.10.0//:phf_generator",
-            "@crate_index__phf_shared-0.10.0//:phf_shared",
+            "@cui__phf_generator-0.10.0//:phf_generator",
+            "@cui__phf_shared-0.10.0//:phf_shared",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_generator-0.10.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_generator-0.10.0.bazel
index 2399789..67a8069 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_generator-0.10.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_generator-0.10.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -37,7 +38,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,8 +86,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__phf_shared-0.10.0//:phf_shared",
-            "@crate_index__rand-0.8.5//:rand",
+            "@cui__phf_shared-0.10.0//:phf_shared",
+            "@cui__rand-0.8.5//:rand",
         ],
     }),
 )
@@ -99,7 +105,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -128,10 +142,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -143,8 +154,8 @@
         ":phf_generator",
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__phf_shared-0.10.0//:phf_shared",
-            "@crate_index__rand-0.8.5//:rand",
+            "@cui__phf_shared-0.10.0//:phf_shared",
+            "@cui__rand-0.8.5//:rand",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_shared-0.10.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_shared-0.10.0.bazel
index ff6ae0c..f96e406 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_shared-0.10.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.phf_shared-0.10.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,8 +88,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__siphasher-0.3.9//:siphasher",
-            "@crate_index__uncased-0.9.6//:uncased",
+            "@cui__siphasher-0.3.10//:siphasher",
+            "@cui__uncased-0.9.7//:uncased",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.24.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.24.bazel
deleted file mode 100644
index d0f2e51..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.24.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "pkg_config",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.24",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
new file mode 100644
index 0000000..9c9a457
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "pkg_config",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.25",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel
index f93bf68..45e384d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
index 234edf1..fe71aad 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -58,7 +67,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__proc-macro-error-attr-1.0.4//:proc_macro_error_attr",
+            "@cui__proc-macro-error-attr-1.0.4//:proc_macro_error_attr",
         ],
     }),
     rustc_env = {
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,10 +93,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__proc-macro-error-1.0.4//:build_script_build",
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
-            "@crate_index__syn-1.0.86//:syn",
+            "@cui__proc-macro-error-1.0.4//:build_script_build",
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
+            "@cui__syn-1.0.98//:syn",
         ],
     }),
 )
@@ -144,10 +150,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -163,7 +166,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__version_check-0.9.4//:version_check",
+            "@cui__version_check-0.9.4//:version_check",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
index 5753e76..8b140f9 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,9 +89,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__proc-macro-error-attr-1.0.4//:build_script_build",
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
+            "@cui__proc-macro-error-attr-1.0.4//:build_script_build",
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
         ],
     }),
 )
@@ -136,10 +142,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -155,7 +158,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__version_check-0.9.4//:version_check",
+            "@cui__version_check-0.9.4//:version_check",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.36.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.36.bazel
deleted file mode 100644
index 7b9e4c2..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.36.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.36",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__proc-macro2-1.0.36//:build_script_build",
-            "@crate_index__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "proc-macro2_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.36",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "proc-macro2_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..8e580b9
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__proc-macro2-1.0.40//:build_script_build",
+            "@cui__unicode-ident-1.0.1//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.15.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.15.bazel
deleted file mode 100644
index da83b59..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.15.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "quote",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.15",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..4321de1
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
index fd20593..3e26c81 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.4.6.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -95,9 +101,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -112,7 +120,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
         ],
@@ -122,7 +130,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
index 33dfcf8..025a95e 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand-0.8.5.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,9 +96,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -107,15 +115,15 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
-            "@crate_index__rand_chacha-0.3.1//:rand_chacha",
-            "@crate_index__rand_core-0.6.3//:rand_core",
+            "@cui__rand_chacha-0.3.1//:rand_chacha",
+            "@cui__rand_core-0.6.3//:rand_core",
         ],
         "//conditions:default": [
-            "@crate_index__rand_chacha-0.3.1//:rand_chacha",
-            "@crate_index__rand_core-0.6.3//:rand_core",
+            "@cui__rand_chacha-0.3.1//:rand_chacha",
+            "@cui__rand_core-0.6.3//:rand_core",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
index b6eab72..a20eb88 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,8 +86,8 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__ppv-lite86-0.2.16//:ppv_lite86",
-            "@crate_index__rand_core-0.6.3//:rand_core",
+            "@cui__ppv-lite86-0.2.16//:ppv_lite86",
+            "@cui__rand_core-0.6.3//:rand_core",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
index 3be752f..106d275 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.3.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__rand_core-0.4.2//:rand_core",
+            "@cui__rand_core-0.4.2//:rand_core",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
index d835c72..c36b208 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.4.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
index ac7f43b..57e370a 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,7 +88,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__getrandom-0.2.5//:getrandom",
+            "@cui__getrandom-0.2.7//:getrandom",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
index 16c3ff5..d0d89b6 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rdrand-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__rand_core-0.3.1//:rand_core",
+            "@cui__rand_core-0.3.1//:rand_core",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.11.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.11.bazel
deleted file mode 100644
index d06e9f0..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.11.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "syscall",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__bitflags-1.3.2//:bitflags",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel
new file mode 100644
index 0000000..72b1491
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__bitflags-1.3.2//:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.5.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.5.4.bazel
deleted file mode 100644
index da772c0..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.5.4.bazel
+++ /dev/null
@@ -1,104 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "regex",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "aho-corasick",
-        "default",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.5.4",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__aho-corasick-0.7.18//:aho_corasick",
-            "@crate_index__memchr-2.4.1//:memchr",
-            "@crate_index__regex-syntax-0.6.25//:regex_syntax",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.6.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..2a9f27b
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,110 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__aho-corasick-0.7.18//:aho_corasick",
+            "@cui__memchr-2.5.0//:memchr",
+            "@cui__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.25.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index 8cd2b0b..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,93 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.6.25",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..782b500
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel
index 11007c8..b796c3a 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
index def8f77..f62c6e7 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-hash-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.24.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.24.bazel
index 1f90255..69f9e71 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.24.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.rustc-serialize-0.3.24.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.10.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.10.bazel
new file mode 100644
index 0000000..36553ca
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.9.bazel
deleted file mode 100644
index c2a9c81..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ryu-1.0.9.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR BSL-1.0
-# ])
-
-rust_library(
-    name = "ryu",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
index 0b5a6fd..8fb94e6 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.same-file-1.0.6.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-util-0.1.5//:winapi_util",
+            "@cui__winapi-util-0.1.5//:winapi_util",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.12.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.12.bazel
new file mode 100644
index 0000000..b2af89b
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.12.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "semver",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "serde",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__semver-1.0.12//:build_script_build",
+            "@cui__serde-1.0.138//:serde",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "semver_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "serde",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.12",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "semver_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.6.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.6.bazel
deleted file mode 100644
index eb424d7..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.semver-1.0.6.bazel
+++ /dev/null
@@ -1,178 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "semver",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "serde",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__semver-1.0.6//:build_script_build",
-            "@crate_index__serde-1.0.136//:serde",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "semver_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "serde",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.6",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "semver_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.136.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.136.bazel
deleted file mode 100644
index 9000cb6..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.136.bazel
+++ /dev/null
@@ -1,182 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "derive",
-        "rc",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde_derive-1.0.136//:serde_derive",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.136",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde-1.0.136//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "derive",
-        "rc",
-        "serde_derive",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.136",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.138.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.138.bazel
new file mode 100644
index 0000000..c159d84
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde-1.0.138.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "rc",
+        "serde_derive",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde_derive-1.0.138//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.138",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde-1.0.138//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "rc",
+        "serde_derive",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.138",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.136.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.136.bazel
deleted file mode 100644
index 86a3203..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.136.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_proc_macro(
-    name = "serde_derive",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.136",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
-            "@crate_index__serde_derive-1.0.136//:build_script_build",
-            "@crate_index__syn-1.0.86//:syn",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_derive_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.136",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_derive_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.138.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.138.bazel
new file mode 100644
index 0000000..7a3cd83
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_derive-1.0.138.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "serde_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.138",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
+            "@cui__serde_derive-1.0.138//:build_script_build",
+            "@cui__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_derive_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.138",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_derive_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.79.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.79.bazel
deleted file mode 100644
index 28b6043..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.79.bazel
+++ /dev/null
@@ -1,180 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-        "unbounded_depth",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.79",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__itoa-1.0.1//:itoa",
-            "@crate_index__ryu-1.0.9//:ryu",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__serde_json-1.0.79//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_json_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-        "unbounded_depth",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.79",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_json_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.82.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
new file mode 100644
index 0000000..9c6f88c
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "unbounded_depth",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__itoa-1.0.2//:itoa",
+            "@cui__ryu-1.0.10//:ryu",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__serde_json-1.0.82//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "unbounded_depth",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha-1-0.8.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha-1-0.8.2.bazel
index 788e2f3..50293fa 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha-1-0.8.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha-1-0.8.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,10 +85,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__block-buffer-0.7.3//:block_buffer",
-            "@crate_index__digest-0.8.1//:digest",
-            "@crate_index__fake-simd-0.1.2//:fake_simd",
-            "@crate_index__opaque-debug-0.2.3//:opaque_debug",
+            "@cui__block-buffer-0.7.3//:block_buffer",
+            "@cui__digest-0.8.1//:digest",
+            "@cui__fake-simd-0.1.2//:fake_simd",
+            "@cui__opaque-debug-0.2.3//:opaque_debug",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha2-0.10.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha2-0.10.2.bazel
index 3d9fec2..9a2c054 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha2-0.10.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.sha2-0.10.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,6 +90,7 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
@@ -99,15 +106,15 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__cpufeatures-0.2.1//:cpufeatures",
+            "@cui__cpufeatures-0.2.2//:cpufeatures",
 
             # Common Deps
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__digest-0.10.3//:digest",
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__digest-0.10.3//:digest",
         ],
         "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__digest-0.10.3//:digest",
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__digest-0.10.3//:digest",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel
new file mode 100644
index 0000000..a691647
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.10.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "siphasher",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.9.bazel
deleted file mode 100644
index 01801aa..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.siphasher-0.3.9.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "siphasher",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
index 0348887..7f0a884 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.slug-0.1.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__deunicode-0.4.3//:deunicode",
+            "@cui__deunicode-0.4.3//:deunicode",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.8.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.8.0.bazel
deleted file mode 100644
index a9ae389..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.8.0.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.9.0.bazel
new file mode 100644
index 0000000..3c1226e
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smallvec-1.9.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.0.bazel
deleted file mode 100644
index 4331be2..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.0.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MPL-2.0+
-# ])
-
-rust_library(
-    name = "smartstring",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "serde",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2021",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__static_assertions-1.1.0//:static_assertions",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.1.bazel
new file mode 100644
index 0000000..16ee3a4
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smartstring-1.0.1.bazel
@@ -0,0 +1,184 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MPL-2.0+
+# ])
+
+rust_library(
+    name = "smartstring",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "serde",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde-1.0.138//:serde",
+            "@cui__smartstring-1.0.1//:build_script_build",
+            "@cui__static_assertions-1.1.0//:static_assertions",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "smartstring_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "serde",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__autocfg-1.1.0//:autocfg",
+            "@cui__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "smartstring_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
index ba4de44..63266d5 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.smawk-0.3.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
index 61ad65b..2757f65 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.spectral-0.6.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__num-0.1.42//:num",
+            "@cui__num-0.1.42//:num",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.static_assertions-1.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.static_assertions-1.1.0.bazel
index 4e9f035..1eb631b 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.static_assertions-1.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.static_assertions-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
index d44fe18..7220e6e 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.86.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.86.bazel
deleted file mode 100644
index fba5009..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.86.bazel
+++ /dev/null
@@ -1,190 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "syn",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.86",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__proc-macro2-1.0.36//:proc_macro2",
-            "@crate_index__quote-1.0.15//:quote",
-            "@crate_index__syn-1.0.86//:build_script_build",
-            "@crate_index__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "syn_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.86",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "syn_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..d25adc2
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,193 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__proc-macro2-1.0.40//:proc_macro2",
+            "@cui__quote-1.0.20//:quote",
+            "@cui__syn-1.0.98//:build_script_build",
+            "@cui__unicode-ident-1.0.1//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tempfile-3.3.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tempfile-3.3.0.bazel
index 67ea9ad..14b30c2 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tempfile-3.3.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tempfile-3.3.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -100,17 +108,17 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crate_index__libc-0.2.119//:libc",
+            "@cui__libc-0.2.126//:libc",
 
             # Common Deps
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__fastrand-1.7.0//:fastrand",
-            "@crate_index__remove_dir_all-0.5.3//:remove_dir_all",
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__fastrand-1.7.0//:fastrand",
+            "@cui__remove_dir_all-0.5.3//:remove_dir_all",
         ],
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(windows)
         (
@@ -118,17 +126,17 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__fastrand-1.7.0//:fastrand",
-            "@crate_index__remove_dir_all-0.5.3//:remove_dir_all",
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__fastrand-1.7.0//:fastrand",
+            "@cui__remove_dir_all-0.5.3//:remove_dir_all",
         ],
         "//conditions:default": [
-            "@crate_index__cfg-if-1.0.0//:cfg_if",
-            "@crate_index__fastrand-1.7.0//:fastrand",
-            "@crate_index__remove_dir_all-0.5.3//:remove_dir_all",
+            "@cui__cfg-if-1.0.0//:cfg_if",
+            "@cui__fastrand-1.7.0//:fastrand",
+            "@cui__remove_dir_all-0.5.3//:remove_dir_all",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.15.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.15.0.bazel
deleted file mode 100644
index 644e4bd..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.15.0.bazel
+++ /dev/null
@@ -1,106 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tera",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "builtins",
-        "chrono",
-        "chrono-tz",
-        "default",
-        "humansize",
-        "percent-encoding",
-        "rand",
-        "slug",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__pest_derive-2.1.0//:pest_derive",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.15.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__chrono-0.4.19//:chrono",
-            "@crate_index__chrono-tz-0.6.1//:chrono_tz",
-            "@crate_index__globwalk-0.8.1//:globwalk",
-            "@crate_index__humansize-1.1.1//:humansize",
-            "@crate_index__lazy_static-1.4.0//:lazy_static",
-            "@crate_index__percent-encoding-2.1.0//:percent_encoding",
-            "@crate_index__pest-2.1.3//:pest",
-            "@crate_index__rand-0.8.5//:rand",
-            "@crate_index__regex-1.5.4//:regex",
-            "@crate_index__serde-1.0.136//:serde",
-            "@crate_index__serde_json-1.0.79//:serde_json",
-            "@crate_index__slug-0.1.4//:slug",
-            "@crate_index__unic-segment-0.9.0//:unic_segment",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.16.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.16.0.bazel
new file mode 100644
index 0000000..0e70ef1
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tera-1.16.0.bazel
@@ -0,0 +1,113 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tera",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "builtins",
+        "chrono",
+        "chrono-tz",
+        "default",
+        "humansize",
+        "percent-encoding",
+        "rand",
+        "slug",
+        "urlencode",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__pest_derive-2.1.0//:pest_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.16.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__chrono-0.4.19//:chrono",
+            "@cui__chrono-tz-0.6.1//:chrono_tz",
+            "@cui__globwalk-0.8.1//:globwalk",
+            "@cui__humansize-1.1.1//:humansize",
+            "@cui__lazy_static-1.4.0//:lazy_static",
+            "@cui__percent-encoding-2.1.0//:percent_encoding",
+            "@cui__pest-2.1.3//:pest",
+            "@cui__rand-0.8.5//:rand",
+            "@cui__regex-1.6.0//:regex",
+            "@cui__serde-1.0.138//:serde",
+            "@cui__serde_json-1.0.82//:serde_json",
+            "@cui__slug-0.1.4//:slug",
+            "@cui__unic-segment-0.9.0//:unic_segment",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.termcolor-1.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
index 49d7bb0..a29482d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-util-0.1.5//:winapi_util",
+            "@cui__winapi-util-0.1.5//:winapi_util",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.14.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.14.2.bazel
deleted file mode 100644
index ec7ccef..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.14.2.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "textwrap",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "smawk",
-        "unicode-linebreak",
-        "unicode-width",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.14.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__smawk-0.3.1//:smawk",
-            "@crate_index__unicode-linebreak-0.1.2//:unicode_linebreak",
-            "@crate_index__unicode-width-0.1.9//:unicode_width",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.15.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
index 6636e2c..f42ad6c 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,11 +37,23 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
     crate_features = [
+        "default",
+        "smawk",
+        "unicode-linebreak",
+        "unicode-width",
     ],
     crate_root = "src/lib.rs",
     data = select_with_or({
@@ -65,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,6 +89,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
+            "@cui__smawk-0.3.1//:smawk",
+            "@cui__unicode-linebreak-0.1.2//:unicode_linebreak",
+            "@cui__unicode-width-0.1.9//:unicode_width",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
index ead5237..8204cff 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.thread_local-1.1.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__once_cell-1.9.0//:once_cell",
+            "@cui__once_cell-1.13.0//:once_cell",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.5.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.5.1.bazel
deleted file mode 100644
index b366234..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.5.1.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Zlib OR Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "tinyvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "tinyvec_macros",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.5.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__tinyvec_macros-0.1.0//:tinyvec_macros",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
new file mode 100644
index 0000000..4d1d8f7
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Zlib OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "tinyvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "tinyvec_macros",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__tinyvec_macros-0.1.0//:tinyvec_macros",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
index f29536b..f6c9ba5 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.8.bazel
deleted file mode 100644
index 3aeedb8..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.8.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "toml",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.5.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__serde-1.0.136//:serde",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.9.bazel
new file mode 100644
index 0000000..daa8ed0
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.toml-0.5.9.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "toml",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__serde-1.0.138//:serde",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.typenum-1.15.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.typenum-1.15.0.bazel
index bc9505b..8a13a13 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.typenum-1.15.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.typenum-1.15.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,7 +89,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__typenum-1.15.0//:build_script_main",
+            "@cui__typenum-1.15.0//:build_script_main",
         ],
     }),
 )
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.3.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.3.bazel
deleted file mode 100644
index 1fee76a..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.3.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "ucd_trie",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.3",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.4.bazel
new file mode 100644
index 0000000..4fd64ca
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.ucd-trie-0.1.4.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "ucd_trie",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.6.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.6.bazel
deleted file mode 100644
index 034645e..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.6.bazel
+++ /dev/null
@@ -1,172 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "uncased",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.9.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__uncased-0.9.6//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "uncased_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.9.6",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__version_check-0.9.4//:version_check",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "uncased_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.7.bazel
new file mode 100644
index 0000000..9b7d74c
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.uncased-0.9.7.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "uncased",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__uncased-0.9.7//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "uncased_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.9.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "uncased_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
index 4a1ed99..c48c6ed 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-property-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__unic-char-range-0.9.0//:unic_char_range",
+            "@cui__unic-char-range-0.9.0//:unic_char_range",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
index 446a684..d1fb93f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-char-range-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
index 4827fb0..fa2dcf8 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-common-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
index c57a794..aecb05d 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-segment-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__unic-ucd-segment-0.9.0//:unic_ucd_segment",
+            "@cui__unic-ucd-segment-0.9.0//:unic_ucd_segment",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
index dbd70c5..11f8e84 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-segment-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,9 +85,9 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__unic-char-property-0.9.0//:unic_char_property",
-            "@crate_index__unic-char-range-0.9.0//:unic_char_range",
-            "@crate_index__unic-ucd-version-0.9.0//:unic_ucd_version",
+            "@cui__unic-char-property-0.9.0//:unic_char_property",
+            "@cui__unic-char-range-0.9.0//:unic_char_range",
+            "@cui__unic-ucd-version-0.9.0//:unic_ucd_version",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
index 12233f8..b091f81 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unic-ucd-version-0.9.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__unic-common-0.9.0//:unic_common",
+            "@cui__unic-common-0.9.0//:unic_common",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.7.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.7.bazel
deleted file mode 100644
index b412f9a..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.7.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT / Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_bidi",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
new file mode 100644
index 0000000..51deaaf
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_bidi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "hardcoded-data",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
new file mode 100644
index 0000000..c57d4b6
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.2.bazel
index fea1adb..1d99c14 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-linebreak-0.1.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,7 +89,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__unicode-linebreak-0.1.2//:build_script_build",
+            "@cui__unicode-linebreak-0.1.2//:build_script_build",
         ],
     }),
 )
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -153,7 +156,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__regex-1.5.4//:regex",
+            "@cui__regex-1.6.0//:regex",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.19.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.19.bazel
deleted file mode 100644
index 805ffa9..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.19.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_normalization",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.19",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crate_index__tinyvec-1.5.1//:tinyvec",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
new file mode 100644
index 0000000..edcfbe9
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_normalization",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.21",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@cui__tinyvec-1.6.0//:tinyvec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel
index 6b610b7..78d38f3 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-width-0.1.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 30562c1..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.url-2.2.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.url-2.2.2.bazel
index e2b0903..48dc99e 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.url-2.2.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.url-2.2.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,10 +85,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__form_urlencoded-1.0.1//:form_urlencoded",
-            "@crate_index__idna-0.2.3//:idna",
-            "@crate_index__matches-0.1.9//:matches",
-            "@crate_index__percent-encoding-2.1.0//:percent_encoding",
+            "@cui__form_urlencoded-1.0.1//:form_urlencoded",
+            "@cui__idna-0.2.3//:idna",
+            "@cui__matches-0.1.9//:matches",
+            "@cui__percent-encoding-2.1.0//:percent_encoding",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
index 45dc115..82d489f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
index 2c446b0..da5c3e4 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.version_check-0.9.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.2.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.2.bazel
index 323795e..6a7f23f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.2.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.walkdir-2.3.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,14 +90,14 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
-            "@crate_index__winapi-util-0.1.5//:winapi_util",
+            "@cui__winapi-0.3.9//:winapi",
+            "@cui__winapi-util-0.1.5//:winapi_util",
 
             # Common Deps
-            "@crate_index__same-file-1.0.6//:same_file",
+            "@cui__same-file-1.0.6//:same_file",
         ],
         "//conditions:default": [
-            "@crate_index__same-file-1.0.6//:same_file",
+            "@cui__same-file-1.0.6//:same_file",
         ],
     }),
 )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
deleted file mode 100644
index aedee28..0000000
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "wasi",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.10.2+wasi-snapshot-preview1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
new file mode 100644
index 0000000..4a1360c
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //crate_universe/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "wasi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.0+wasi-snapshot-preview1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
index 32b584b..8d88928 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -85,10 +94,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -109,7 +115,7 @@
         # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
         #
         "//conditions:default": [
-            "@crate_index__winapi-0.3.9//:build_script_build",
+            "@cui__winapi-0.3.9//:build_script_build",
         ],
     }),
 )
@@ -176,10 +182,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
index 0935a2c..4815eb7 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,7 +89,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+            "@cui__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
         ],
     }),
 )
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
index 44dd9b5..5da2e4f 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -84,7 +90,7 @@
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
         ): [
             # Target Deps
-            "@crate_index__winapi-0.3.9//:winapi",
+            "@cui__winapi-0.3.9//:winapi",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
index 13b50ee..4cc26b9 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,7 +89,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crate_index__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+            "@cui__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
         ],
     }),
 )
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/crates.bzl b/third_party/rules_rust/crate_universe/3rdparty/crates/crates.bzl
index d02aa63..9821456 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/crates.bzl
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/crates.bzl
@@ -17,7 +17,7 @@
 def crate_repositories():
     maybe(
         crates_vendor_remote_repository,
-        name = "crate_index",
+        name = "cui",
         build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.bazel"),
         defs_module = Label("@rules_rust//crate_universe/3rdparty/crates:defs.bzl"),
     )
diff --git a/third_party/rules_rust/crate_universe/3rdparty/crates/defs.bzl b/third_party/rules_rust/crate_universe/3rdparty/crates/defs.bzl
index 4026391..f2cc565 100644
--- a/third_party/rules_rust/crate_universe/3rdparty/crates/defs.bzl
+++ b/third_party/rules_rust/crate_universe/3rdparty/crates/defs.bzl
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //crate_universe/3rdparty:crates_vendor
 ###############################################################################
 """
 # `crates_repository` API
@@ -194,7 +195,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
@@ -287,38 +291,39 @@
 _NORMAL_DEPENDENCIES = {
     "crate_universe": {
         _COMMON_CONDITION: {
-            "anyhow": "@crate_index__anyhow-1.0.55//:anyhow",
-            "cargo-lock": "@crate_index__cargo-lock-7.0.1//:cargo_lock",
-            "cargo-platform": "@crate_index__cargo-platform-0.1.2//:cargo_platform",
-            "cargo_metadata": "@crate_index__cargo_metadata-0.14.2//:cargo_metadata",
-            "cargo_toml": "@crate_index__cargo_toml-0.11.4//:cargo_toml",
-            "cfg-expr": "@crate_index__cfg-expr-0.10.2//:cfg_expr",
-            "clap": "@crate_index__clap-3.1.5//:clap",
-            "crates-index": "@crate_index__crates-index-0.18.7//:crates_index",
-            "hex": "@crate_index__hex-0.4.3//:hex",
-            "pathdiff": "@crate_index__pathdiff-0.2.1//:pathdiff",
-            "regex": "@crate_index__regex-1.5.4//:regex",
-            "semver": "@crate_index__semver-1.0.6//:semver",
-            "serde": "@crate_index__serde-1.0.136//:serde",
-            "serde_json": "@crate_index__serde_json-1.0.79//:serde_json",
-            "sha2": "@crate_index__sha2-0.10.2//:sha2",
-            "tempfile": "@crate_index__tempfile-3.3.0//:tempfile",
-            "tera": "@crate_index__tera-1.15.0//:tera",
-            "textwrap": "@crate_index__textwrap-0.14.2//:textwrap",
-            "toml": "@crate_index__toml-0.5.8//:toml",
+            "anyhow": "@cui__anyhow-1.0.58//:anyhow",
+            "cargo-lock": "@cui__cargo-lock-8.0.2//:cargo_lock",
+            "cargo-platform": "@cui__cargo-platform-0.1.2//:cargo_platform",
+            "cargo_metadata": "@cui__cargo_metadata-0.14.2//:cargo_metadata",
+            "cargo_toml": "@cui__cargo_toml-0.11.5//:cargo_toml",
+            "cfg-expr": "@cui__cfg-expr-0.10.3//:cfg_expr",
+            "clap": "@cui__clap-3.2.8//:clap",
+            "crates-index": "@cui__crates-index-0.18.8//:crates_index",
+            "hex": "@cui__hex-0.4.3//:hex",
+            "normpath": "@cui__normpath-0.3.2//:normpath",
+            "pathdiff": "@cui__pathdiff-0.2.1//:pathdiff",
+            "regex": "@cui__regex-1.6.0//:regex",
+            "semver": "@cui__semver-1.0.12//:semver",
+            "serde": "@cui__serde-1.0.138//:serde",
+            "serde_json": "@cui__serde_json-1.0.82//:serde_json",
+            "sha2": "@cui__sha2-0.10.2//:sha2",
+            "tempfile": "@cui__tempfile-3.3.0//:tempfile",
+            "tera": "@cui__tera-1.16.0//:tera",
+            "textwrap": "@cui__textwrap-0.15.0//:textwrap",
+            "toml": "@cui__toml-0.5.9//:toml",
         },
     },
     "crate_universe/tools/cross_installer": {
         _COMMON_CONDITION: {
-            "clap": "@crate_index__clap-3.1.5//:clap",
+            "clap": "@cui__clap-3.2.8//:clap",
         },
     },
     "crate_universe/tools/urls_generator": {
         _COMMON_CONDITION: {
-            "clap": "@crate_index__clap-3.1.5//:clap",
-            "hex": "@crate_index__hex-0.4.3//:hex",
-            "serde_json": "@crate_index__serde_json-1.0.79//:serde_json",
-            "sha2": "@crate_index__sha2-0.10.2//:sha2",
+            "clap": "@cui__clap-3.2.8//:clap",
+            "hex": "@cui__hex-0.4.3//:hex",
+            "serde_json": "@cui__serde_json-1.0.82//:serde_json",
+            "sha2": "@cui__sha2-0.10.2//:sha2",
         },
     },
 }
@@ -341,7 +346,8 @@
 _NORMAL_DEV_DEPENDENCIES = {
     "crate_universe": {
         _COMMON_CONDITION: {
-            "spectral": "@crate_index__spectral-0.6.0//:spectral",
+            "maplit": "@cui__maplit-1.0.2//:maplit",
+            "spectral": "@cui__spectral-0.6.0//:spectral",
         },
     },
     "crate_universe/tools/cross_installer": {
@@ -437,18 +443,19 @@
 
 _CONDITIONS = {
     "aarch64-apple-darwin": ["aarch64-apple-darwin"],
+    "aarch64-linux-android": ["aarch64-linux-android"],
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
     "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": ["aarch64-unknown-linux-gnu"],
-    "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "i686-apple-darwin", "i686-linux-android", "i686-pc-windows-msvc", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-pc-windows-msvc", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
-    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
-    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "i686-apple-darwin", "i686-linux-android", "i686-pc-windows-msvc", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-pc-windows-msvc", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_arch = \"wasm32\")": ["wasm32-unknown-unknown", "wasm32-wasi"],
     "cfg(target_env = \"sgx\")": [],
     "cfg(target_os = \"fuchsia\")": [],
     "cfg(target_os = \"hermit\")": [],
     "cfg(target_os = \"redox\")": [],
     "cfg(target_os = \"wasi\")": ["wasm32-wasi"],
-    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "i686-pc-windows-gnu": [],
     "x86_64-pc-windows-gnu": [],
@@ -460,7 +467,7 @@
     """A macro for defining repositories for all generated crates"""
     maybe(
         http_archive,
-        name = "crate_index__aho-corasick-0.7.18",
+        name = "cui__aho-corasick-0.7.18",
         sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.18/download"],
@@ -470,17 +477,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__anyhow-1.0.55",
-        sha256 = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd",
+        name = "cui__anyhow-1.0.58",
+        sha256 = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.55/download"],
-        strip_prefix = "anyhow-1.0.55",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anyhow-1.0.55.bazel"),
+        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.58/download"],
+        strip_prefix = "anyhow-1.0.58",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.anyhow-1.0.58.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__atty-0.2.14",
+        name = "cui__atty-0.2.14",
         sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
@@ -490,7 +497,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__autocfg-1.1.0",
+        name = "cui__autocfg-1.1.0",
         sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
@@ -500,7 +507,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__bitflags-1.3.2",
+        name = "cui__bitflags-1.3.2",
         sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
@@ -510,7 +517,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__block-buffer-0.10.2",
+        name = "cui__block-buffer-0.10.2",
         sha256 = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/block-buffer/0.10.2/download"],
@@ -520,7 +527,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__block-buffer-0.7.3",
+        name = "cui__block-buffer-0.7.3",
         sha256 = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/block-buffer/0.7.3/download"],
@@ -530,7 +537,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__block-padding-0.1.5",
+        name = "cui__block-padding-0.1.5",
         sha256 = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/block-padding/0.1.5/download"],
@@ -540,7 +547,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__bstr-0.2.17",
+        name = "cui__bstr-0.2.17",
         sha256 = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/bstr/0.2.17/download"],
@@ -550,7 +557,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__byte-tools-0.3.1",
+        name = "cui__byte-tools-0.3.1",
         sha256 = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/byte-tools/0.3.1/download"],
@@ -560,7 +567,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__byteorder-1.4.3",
+        name = "cui__byteorder-1.4.3",
         sha256 = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/byteorder/1.4.3/download"],
@@ -570,27 +577,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__camino-1.0.7",
-        sha256 = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23",
+        name = "cui__camino-1.0.9",
+        sha256 = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/camino/1.0.7/download"],
-        strip_prefix = "camino-1.0.7",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.camino-1.0.7.bazel"),
+        urls = ["https://crates.io/api/v1/crates/camino/1.0.9/download"],
+        strip_prefix = "camino-1.0.9",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.camino-1.0.9.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__cargo-lock-7.0.1",
-        sha256 = "7fb04b88bd5b2036e30704f95c6ee16f3b5ca3b4ca307da2889d9006648e5c88",
+        name = "cui__cargo-lock-8.0.2",
+        sha256 = "3c4c54d47a4532db3494ef7332c257ab57b02750daae3250d49e01ee55201ce8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo-lock/7.0.1/download"],
-        strip_prefix = "cargo-lock-7.0.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo-lock-7.0.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/cargo-lock/8.0.2/download"],
+        strip_prefix = "cargo-lock-8.0.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo-lock-8.0.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__cargo-platform-0.1.2",
+        name = "cui__cargo-platform-0.1.2",
         sha256 = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/cargo-platform/0.1.2/download"],
@@ -600,7 +607,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__cargo_metadata-0.14.2",
+        name = "cui__cargo_metadata-0.14.2",
         sha256 = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/cargo_metadata/0.14.2/download"],
@@ -610,17 +617,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__cargo_toml-0.11.4",
-        sha256 = "4e270ef0cd868745878982f7ce470aa898d0d4bb248af67f0cf66f54617913ef",
+        name = "cui__cargo_toml-0.11.5",
+        sha256 = "5809dd3e6444651fd1cdd3dbec71eca438c439a0fcc8081674a14da0afe50185",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cargo_toml/0.11.4/download"],
-        strip_prefix = "cargo_toml-0.11.4",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo_toml-0.11.4.bazel"),
+        urls = ["https://crates.io/api/v1/crates/cargo_toml/0.11.5/download"],
+        strip_prefix = "cargo_toml-0.11.5",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cargo_toml-0.11.5.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__cc-1.0.73",
+        name = "cui__cc-1.0.73",
         sha256 = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/cc/1.0.73/download"],
@@ -630,17 +637,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__cfg-expr-0.10.2",
-        sha256 = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5",
+        name = "cui__cfg-expr-0.10.3",
+        sha256 = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cfg-expr/0.10.2/download"],
-        strip_prefix = "cfg-expr-0.10.2",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cfg-expr-0.10.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/cfg-expr/0.10.3/download"],
+        strip_prefix = "cfg-expr-0.10.3",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cfg-expr-0.10.3.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__cfg-if-1.0.0",
+        name = "cui__cfg-if-1.0.0",
         sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
@@ -650,7 +657,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__chrono-0.4.19",
+        name = "cui__chrono-0.4.19",
         sha256 = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/chrono/0.4.19/download"],
@@ -660,7 +667,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__chrono-tz-0.6.1",
+        name = "cui__chrono-tz-0.6.1",
         sha256 = "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/chrono-tz/0.6.1/download"],
@@ -670,7 +677,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__chrono-tz-build-0.0.2",
+        name = "cui__chrono-tz-build-0.0.2",
         sha256 = "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/chrono-tz-build/0.0.2/download"],
@@ -680,67 +687,77 @@
 
     maybe(
         http_archive,
-        name = "crate_index__clap-3.1.5",
-        sha256 = "ced1892c55c910c1219e98d6fc8d71f6bddba7905866ce740066d8bfea859312",
+        name = "cui__clap-3.2.8",
+        sha256 = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap/3.1.5/download"],
-        strip_prefix = "clap-3.1.5",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap-3.1.5.bazel"),
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.8/download"],
+        strip_prefix = "clap-3.2.8",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap-3.2.8.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__clap_derive-3.1.4",
-        sha256 = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16",
+        name = "cui__clap_derive-3.2.7",
+        sha256 = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/clap_derive/3.1.4/download"],
-        strip_prefix = "clap_derive-3.1.4",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_derive-3.1.4.bazel"),
+        urls = ["https://crates.io/api/v1/crates/clap_derive/3.2.7/download"],
+        strip_prefix = "clap_derive-3.2.7",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_derive-3.2.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__cpufeatures-0.2.1",
-        sha256 = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469",
+        name = "cui__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/cpufeatures/0.2.1/download"],
-        strip_prefix = "cpufeatures-0.2.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cpufeatures-0.2.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/clap_lex/0.2.4/download"],
+        strip_prefix = "clap_lex-0.2.4",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.clap_lex-0.2.4.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__crates-index-0.18.7",
-        sha256 = "0044896374c388ccbf1497dad6384bf6111dbcad9d7069506df7450ce9b62ea3",
+        name = "cui__cpufeatures-0.2.2",
+        sha256 = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crates-index/0.18.7/download"],
-        strip_prefix = "crates-index-0.18.7",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crates-index-0.18.7.bazel"),
+        urls = ["https://crates.io/api/v1/crates/cpufeatures/0.2.2/download"],
+        strip_prefix = "cpufeatures-0.2.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.cpufeatures-0.2.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__crossbeam-utils-0.8.7",
-        sha256 = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6",
+        name = "cui__crates-index-0.18.8",
+        sha256 = "2519c91ad7a6e3250a64fb71162d2db1afe7bcf826a465f84d2052fd69639b7a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crossbeam-utils/0.8.7/download"],
-        strip_prefix = "crossbeam-utils-0.8.7",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-utils-0.8.7.bazel"),
+        urls = ["https://crates.io/api/v1/crates/crates-index/0.18.8/download"],
+        strip_prefix = "crates-index-0.18.8",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crates-index-0.18.8.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__crypto-common-0.1.3",
-        sha256 = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8",
+        name = "cui__crossbeam-utils-0.8.10",
+        sha256 = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/crypto-common/0.1.3/download"],
-        strip_prefix = "crypto-common-0.1.3",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crypto-common-0.1.3.bazel"),
+        urls = ["https://crates.io/api/v1/crates/crossbeam-utils/0.8.10/download"],
+        strip_prefix = "crossbeam-utils-0.8.10",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crossbeam-utils-0.8.10.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__deunicode-0.4.3",
+        name = "cui__crypto-common-0.1.4",
+        sha256 = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crypto-common/0.1.4/download"],
+        strip_prefix = "crypto-common-0.1.4",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.crypto-common-0.1.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "cui__deunicode-0.4.3",
         sha256 = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/deunicode/0.4.3/download"],
@@ -750,7 +767,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__digest-0.10.3",
+        name = "cui__digest-0.10.3",
         sha256 = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/digest/0.10.3/download"],
@@ -760,7 +777,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__digest-0.8.1",
+        name = "cui__digest-0.8.1",
         sha256 = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/digest/0.8.1/download"],
@@ -770,7 +787,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__fake-simd-0.1.2",
+        name = "cui__fake-simd-0.1.2",
         sha256 = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/fake-simd/0.1.2/download"],
@@ -780,7 +797,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__fastrand-1.7.0",
+        name = "cui__fastrand-1.7.0",
         sha256 = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/fastrand/1.7.0/download"],
@@ -790,7 +807,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__fnv-1.0.7",
+        name = "cui__fnv-1.0.7",
         sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/fnv/1.0.7/download"],
@@ -800,7 +817,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__form_urlencoded-1.0.1",
+        name = "cui__form_urlencoded-1.0.1",
         sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download"],
@@ -810,7 +827,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__fuchsia-cprng-0.1.1",
+        name = "cui__fuchsia-cprng-0.1.1",
         sha256 = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/fuchsia-cprng/0.1.1/download"],
@@ -820,7 +837,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__generic-array-0.12.4",
+        name = "cui__generic-array-0.12.4",
         sha256 = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/generic-array/0.12.4/download"],
@@ -830,7 +847,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__generic-array-0.14.5",
+        name = "cui__generic-array-0.14.5",
         sha256 = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/generic-array/0.14.5/download"],
@@ -840,37 +857,37 @@
 
     maybe(
         http_archive,
-        name = "crate_index__getrandom-0.2.5",
-        sha256 = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77",
+        name = "cui__getrandom-0.2.7",
+        sha256 = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.5/download"],
-        strip_prefix = "getrandom-0.2.5",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.getrandom-0.2.5.bazel"),
+        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.7/download"],
+        strip_prefix = "getrandom-0.2.7",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.getrandom-0.2.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__git2-0.14.1",
-        sha256 = "6e7d3b96ec1fcaa8431cf04a4f1ef5caafe58d5cf7bcc31f09c1626adddb0ffe",
+        name = "cui__git2-0.14.4",
+        sha256 = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/git2/0.14.1/download"],
-        strip_prefix = "git2-0.14.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.git2-0.14.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/git2/0.14.4/download"],
+        strip_prefix = "git2-0.14.4",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.git2-0.14.4.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__globset-0.4.8",
-        sha256 = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd",
+        name = "cui__globset-0.4.9",
+        sha256 = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/globset/0.4.8/download"],
-        strip_prefix = "globset-0.4.8",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.globset-0.4.8.bazel"),
+        urls = ["https://crates.io/api/v1/crates/globset/0.4.9/download"],
+        strip_prefix = "globset-0.4.9",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.globset-0.4.9.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__globwalk-0.8.1",
+        name = "cui__globwalk-0.8.1",
         sha256 = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/globwalk/0.8.1/download"],
@@ -880,17 +897,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__hashbrown-0.11.2",
-        sha256 = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e",
+        name = "cui__hashbrown-0.12.1",
+        sha256 = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hashbrown/0.11.2/download"],
-        strip_prefix = "hashbrown-0.11.2",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.hashbrown-0.11.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.1/download"],
+        strip_prefix = "hashbrown-0.12.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.hashbrown-0.12.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__heck-0.4.0",
+        name = "cui__heck-0.4.0",
         sha256 = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/heck/0.4.0/download"],
@@ -900,7 +917,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__hermit-abi-0.1.19",
+        name = "cui__hermit-abi-0.1.19",
         sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
@@ -910,7 +927,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__hex-0.4.3",
+        name = "cui__hex-0.4.3",
         sha256 = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/hex/0.4.3/download"],
@@ -920,7 +937,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__home-0.5.3",
+        name = "cui__home-0.5.3",
         sha256 = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/home/0.5.3/download"],
@@ -930,7 +947,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__humansize-1.1.1",
+        name = "cui__humansize-1.1.1",
         sha256 = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/humansize/1.1.1/download"],
@@ -940,7 +957,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__idna-0.2.3",
+        name = "cui__idna-0.2.3",
         sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/idna/0.2.3/download"],
@@ -950,7 +967,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__ignore-0.4.18",
+        name = "cui__ignore-0.4.18",
         sha256 = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/ignore/0.4.18/download"],
@@ -960,17 +977,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__indexmap-1.8.0",
-        sha256 = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223",
+        name = "cui__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/indexmap/1.8.0/download"],
-        strip_prefix = "indexmap-1.8.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.indexmap-1.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.indexmap-1.9.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__instant-0.1.12",
+        name = "cui__instant-0.1.12",
         sha256 = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/instant/0.1.12/download"],
@@ -980,17 +997,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__itoa-1.0.1",
-        sha256 = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35",
+        name = "cui__itoa-1.0.2",
+        sha256 = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/itoa/1.0.1/download"],
-        strip_prefix = "itoa-1.0.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.itoa-1.0.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/itoa/1.0.2/download"],
+        strip_prefix = "itoa-1.0.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.itoa-1.0.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__jobserver-0.1.24",
+        name = "cui__jobserver-0.1.24",
         sha256 = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/jobserver/0.1.24/download"],
@@ -1000,7 +1017,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__lazy_static-1.4.0",
+        name = "cui__lazy_static-1.4.0",
         sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
@@ -1010,47 +1027,47 @@
 
     maybe(
         http_archive,
-        name = "crate_index__libc-0.2.119",
-        sha256 = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4",
+        name = "cui__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libc/0.2.119/download"],
-        strip_prefix = "libc-0.2.119",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libc-0.2.119.bazel"),
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__libgit2-sys-0.13.1-1.4.2",
-        sha256 = "43e598aa7a4faedf1ea1b4608f582b06f0f40211eec551b7ef36019ae3f62def",
+        name = "cui__libgit2-sys-0.13.4-1.4.2",
+        sha256 = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libgit2-sys/0.13.1+1.4.2/download"],
-        strip_prefix = "libgit2-sys-0.13.1+1.4.2",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libgit2-sys-0.13.1+1.4.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/libgit2-sys/0.13.4+1.4.2/download"],
+        strip_prefix = "libgit2-sys-0.13.4+1.4.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libgit2-sys-0.13.4+1.4.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__libz-sys-1.1.3",
-        sha256 = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66",
+        name = "cui__libz-sys-1.1.8",
+        sha256 = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libz-sys/1.1.3/download"],
-        strip_prefix = "libz-sys-1.1.3",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libz-sys-1.1.3.bazel"),
+        urls = ["https://crates.io/api/v1/crates/libz-sys/1.1.8/download"],
+        strip_prefix = "libz-sys-1.1.8",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.libz-sys-1.1.8.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__log-0.4.14",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
+        name = "cui__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/log/0.4.14/download"],
-        strip_prefix = "log-0.4.14",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.log-0.4.14.bazel"),
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.log-0.4.17.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__maplit-1.0.2",
+        name = "cui__maplit-1.0.2",
         sha256 = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/maplit/1.0.2/download"],
@@ -1060,7 +1077,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__matches-0.1.9",
+        name = "cui__matches-0.1.9",
         sha256 = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/matches/0.1.9/download"],
@@ -1070,17 +1087,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__memchr-2.4.1",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
+        name = "cui__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memchr/2.4.1/download"],
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.memchr-2.4.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__num-0.1.42",
+        name = "cui__normpath-0.3.2",
+        sha256 = "04aaf5e9cb0fbf883cc0423159eacdf96a9878022084b35c462c428cab73bcaf",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/normpath/0.3.2/download"],
+        strip_prefix = "normpath-0.3.2",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.normpath-0.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "cui__num-0.1.42",
         sha256 = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/num/0.1.42/download"],
@@ -1090,7 +1117,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__num-bigint-0.1.44",
+        name = "cui__num-bigint-0.1.44",
         sha256 = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/num-bigint/0.1.44/download"],
@@ -1100,7 +1127,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__num-complex-0.1.43",
+        name = "cui__num-complex-0.1.43",
         sha256 = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/num-complex/0.1.43/download"],
@@ -1110,27 +1137,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__num-integer-0.1.44",
-        sha256 = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db",
+        name = "cui__num-integer-0.1.45",
+        sha256 = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-integer/0.1.44/download"],
-        strip_prefix = "num-integer-0.1.44",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-integer-0.1.44.bazel"),
+        urls = ["https://crates.io/api/v1/crates/num-integer/0.1.45/download"],
+        strip_prefix = "num-integer-0.1.45",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-integer-0.1.45.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__num-iter-0.1.42",
-        sha256 = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59",
+        name = "cui__num-iter-0.1.43",
+        sha256 = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-iter/0.1.42/download"],
-        strip_prefix = "num-iter-0.1.42",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-iter-0.1.42.bazel"),
+        urls = ["https://crates.io/api/v1/crates/num-iter/0.1.43/download"],
+        strip_prefix = "num-iter-0.1.43",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-iter-0.1.43.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__num-rational-0.1.42",
+        name = "cui__num-rational-0.1.42",
         sha256 = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/num-rational/0.1.42/download"],
@@ -1140,17 +1167,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__num-traits-0.2.14",
-        sha256 = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290",
+        name = "cui__num-traits-0.2.15",
+        sha256 = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/num-traits/0.2.14/download"],
-        strip_prefix = "num-traits-0.2.14",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-traits-0.2.14.bazel"),
+        urls = ["https://crates.io/api/v1/crates/num-traits/0.2.15/download"],
+        strip_prefix = "num-traits-0.2.15",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.num-traits-0.2.15.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__num_cpus-1.13.1",
+        name = "cui__num_cpus-1.13.1",
         sha256 = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/num_cpus/1.13.1/download"],
@@ -1160,17 +1187,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__once_cell-1.9.0",
-        sha256 = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5",
+        name = "cui__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/once_cell/1.9.0/download"],
-        strip_prefix = "once_cell-1.9.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.once_cell-1.9.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.once_cell-1.13.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__opaque-debug-0.2.3",
+        name = "cui__opaque-debug-0.2.3",
         sha256 = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/opaque-debug/0.2.3/download"],
@@ -1180,17 +1207,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__os_str_bytes-6.0.0",
-        sha256 = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64",
+        name = "cui__os_str_bytes-6.1.0",
+        sha256 = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.0.0/download"],
-        strip_prefix = "os_str_bytes-6.0.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.os_str_bytes-6.0.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.1.0/download"],
+        strip_prefix = "os_str_bytes-6.1.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.os_str_bytes-6.1.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__parse-zoneinfo-0.3.0",
+        name = "cui__parse-zoneinfo-0.3.0",
         sha256 = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/parse-zoneinfo/0.3.0/download"],
@@ -1200,7 +1227,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pathdiff-0.2.1",
+        name = "cui__pathdiff-0.2.1",
         sha256 = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/pathdiff/0.2.1/download"],
@@ -1210,7 +1237,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__percent-encoding-2.1.0",
+        name = "cui__percent-encoding-2.1.0",
         sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/percent-encoding/2.1.0/download"],
@@ -1220,7 +1247,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pest-2.1.3",
+        name = "cui__pest-2.1.3",
         sha256 = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/pest/2.1.3/download"],
@@ -1230,7 +1257,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pest_derive-2.1.0",
+        name = "cui__pest_derive-2.1.0",
         sha256 = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/pest_derive/2.1.0/download"],
@@ -1240,7 +1267,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pest_generator-2.1.3",
+        name = "cui__pest_generator-2.1.3",
         sha256 = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/pest_generator/2.1.3/download"],
@@ -1250,7 +1277,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pest_meta-2.1.3",
+        name = "cui__pest_meta-2.1.3",
         sha256 = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/pest_meta/2.1.3/download"],
@@ -1260,7 +1287,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__phf-0.10.1",
+        name = "cui__phf-0.10.1",
         sha256 = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/phf/0.10.1/download"],
@@ -1270,7 +1297,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__phf_codegen-0.10.0",
+        name = "cui__phf_codegen-0.10.0",
         sha256 = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/phf_codegen/0.10.0/download"],
@@ -1280,7 +1307,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__phf_generator-0.10.0",
+        name = "cui__phf_generator-0.10.0",
         sha256 = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/phf_generator/0.10.0/download"],
@@ -1290,7 +1317,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__phf_shared-0.10.0",
+        name = "cui__phf_shared-0.10.0",
         sha256 = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/phf_shared/0.10.0/download"],
@@ -1300,17 +1327,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__pkg-config-0.3.24",
-        sha256 = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe",
+        name = "cui__pkg-config-0.3.25",
+        sha256 = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pkg-config/0.3.24/download"],
-        strip_prefix = "pkg-config-0.3.24",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pkg-config-0.3.24.bazel"),
+        urls = ["https://crates.io/api/v1/crates/pkg-config/0.3.25/download"],
+        strip_prefix = "pkg-config-0.3.25",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.pkg-config-0.3.25.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__ppv-lite86-0.2.16",
+        name = "cui__ppv-lite86-0.2.16",
         sha256 = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download"],
@@ -1320,7 +1347,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__proc-macro-error-1.0.4",
+        name = "cui__proc-macro-error-1.0.4",
         sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download"],
@@ -1330,7 +1357,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__proc-macro-error-attr-1.0.4",
+        name = "cui__proc-macro-error-attr-1.0.4",
         sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download"],
@@ -1340,27 +1367,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__proc-macro2-1.0.36",
-        sha256 = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029",
+        name = "cui__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.36/download"],
-        strip_prefix = "proc-macro2-1.0.36",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.proc-macro2-1.0.36.bazel"),
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.proc-macro2-1.0.40.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__quote-1.0.15",
-        sha256 = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145",
+        name = "cui__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/quote/1.0.15/download"],
-        strip_prefix = "quote-1.0.15",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.quote-1.0.15.bazel"),
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.quote-1.0.20.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__rand-0.4.6",
+        name = "cui__rand-0.4.6",
         sha256 = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand/0.4.6/download"],
@@ -1370,7 +1397,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rand-0.8.5",
+        name = "cui__rand-0.8.5",
         sha256 = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand/0.8.5/download"],
@@ -1380,7 +1407,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rand_chacha-0.3.1",
+        name = "cui__rand_chacha-0.3.1",
         sha256 = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand_chacha/0.3.1/download"],
@@ -1390,7 +1417,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rand_core-0.3.1",
+        name = "cui__rand_core-0.3.1",
         sha256 = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand_core/0.3.1/download"],
@@ -1400,7 +1427,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rand_core-0.4.2",
+        name = "cui__rand_core-0.4.2",
         sha256 = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand_core/0.4.2/download"],
@@ -1410,7 +1437,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rand_core-0.6.3",
+        name = "cui__rand_core-0.6.3",
         sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rand_core/0.6.3/download"],
@@ -1420,7 +1447,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rdrand-0.4.0",
+        name = "cui__rdrand-0.4.0",
         sha256 = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rdrand/0.4.0/download"],
@@ -1430,37 +1457,37 @@
 
     maybe(
         http_archive,
-        name = "crate_index__redox_syscall-0.2.11",
-        sha256 = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c",
+        name = "cui__redox_syscall-0.2.13",
+        sha256 = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.11/download"],
-        strip_prefix = "redox_syscall-0.2.11",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.redox_syscall-0.2.11.bazel"),
+        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.13/download"],
+        strip_prefix = "redox_syscall-0.2.13",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.redox_syscall-0.2.13.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__regex-1.5.4",
-        sha256 = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461",
+        name = "cui__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex/1.5.4/download"],
-        strip_prefix = "regex-1.5.4",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-1.5.4.bazel"),
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-1.6.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__regex-syntax-0.6.25",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
+        name = "cui__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.25/download"],
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-syntax-0.6.25.bazel"),
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__remove_dir_all-0.5.3",
+        name = "cui__remove_dir_all-0.5.3",
         sha256 = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download"],
@@ -1470,7 +1497,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rustc-hash-1.1.0",
+        name = "cui__rustc-hash-1.1.0",
         sha256 = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rustc-hash/1.1.0/download"],
@@ -1480,7 +1507,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__rustc-serialize-0.3.24",
+        name = "cui__rustc-serialize-0.3.24",
         sha256 = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/rustc-serialize/0.3.24/download"],
@@ -1490,17 +1517,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__ryu-1.0.9",
-        sha256 = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f",
+        name = "cui__ryu-1.0.10",
+        sha256 = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ryu/1.0.9/download"],
-        strip_prefix = "ryu-1.0.9",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ryu-1.0.9.bazel"),
+        urls = ["https://crates.io/api/v1/crates/ryu/1.0.10/download"],
+        strip_prefix = "ryu-1.0.10",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ryu-1.0.10.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__same-file-1.0.6",
+        name = "cui__same-file-1.0.6",
         sha256 = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/same-file/1.0.6/download"],
@@ -1510,47 +1537,47 @@
 
     maybe(
         http_archive,
-        name = "crate_index__semver-1.0.6",
-        sha256 = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d",
+        name = "cui__semver-1.0.12",
+        sha256 = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/semver/1.0.6/download"],
-        strip_prefix = "semver-1.0.6",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.semver-1.0.6.bazel"),
+        urls = ["https://crates.io/api/v1/crates/semver/1.0.12/download"],
+        strip_prefix = "semver-1.0.12",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.semver-1.0.12.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__serde-1.0.136",
-        sha256 = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789",
+        name = "cui__serde-1.0.138",
+        sha256 = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde/1.0.136/download"],
-        strip_prefix = "serde-1.0.136",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde-1.0.136.bazel"),
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.138/download"],
+        strip_prefix = "serde-1.0.138",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde-1.0.138.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__serde_derive-1.0.136",
-        sha256 = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9",
+        name = "cui__serde_derive-1.0.138",
+        sha256 = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.136/download"],
-        strip_prefix = "serde_derive-1.0.136",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_derive-1.0.136.bazel"),
+        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.138/download"],
+        strip_prefix = "serde_derive-1.0.138",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_derive-1.0.138.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__serde_json-1.0.79",
-        sha256 = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95",
+        name = "cui__serde_json-1.0.82",
+        sha256 = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.79/download"],
-        strip_prefix = "serde_json-1.0.79",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_json-1.0.79.bazel"),
+        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.82/download"],
+        strip_prefix = "serde_json-1.0.82",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.serde_json-1.0.82.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__sha-1-0.8.2",
+        name = "cui__sha-1-0.8.2",
         sha256 = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/sha-1/0.8.2/download"],
@@ -1560,7 +1587,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__sha2-0.10.2",
+        name = "cui__sha2-0.10.2",
         sha256 = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/sha2/0.10.2/download"],
@@ -1570,17 +1597,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__siphasher-0.3.9",
-        sha256 = "a86232ab60fa71287d7f2ddae4a7073f6b7aac33631c3015abb556f08c6d0a3e",
+        name = "cui__siphasher-0.3.10",
+        sha256 = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/siphasher/0.3.9/download"],
-        strip_prefix = "siphasher-0.3.9",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.siphasher-0.3.9.bazel"),
+        urls = ["https://crates.io/api/v1/crates/siphasher/0.3.10/download"],
+        strip_prefix = "siphasher-0.3.10",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.siphasher-0.3.10.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__slug-0.1.4",
+        name = "cui__slug-0.1.4",
         sha256 = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/slug/0.1.4/download"],
@@ -1590,27 +1617,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__smallvec-1.8.0",
-        sha256 = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83",
+        name = "cui__smallvec-1.9.0",
+        sha256 = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smallvec/1.8.0/download"],
-        strip_prefix = "smallvec-1.8.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smallvec-1.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/smallvec/1.9.0/download"],
+        strip_prefix = "smallvec-1.9.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smallvec-1.9.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__smartstring-1.0.0",
-        sha256 = "ea958ad90cacc8ece7f238fde3671e1b350ee1741964edf2a22fd16f60224163",
+        name = "cui__smartstring-1.0.1",
+        sha256 = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smartstring/1.0.0/download"],
-        strip_prefix = "smartstring-1.0.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smartstring-1.0.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/smartstring/1.0.1/download"],
+        strip_prefix = "smartstring-1.0.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.smartstring-1.0.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__smawk-0.3.1",
+        name = "cui__smawk-0.3.1",
         sha256 = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/smawk/0.3.1/download"],
@@ -1620,7 +1647,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__spectral-0.6.0",
+        name = "cui__spectral-0.6.0",
         sha256 = "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/spectral/0.6.0/download"],
@@ -1630,7 +1657,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__static_assertions-1.1.0",
+        name = "cui__static_assertions-1.1.0",
         sha256 = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/static_assertions/1.1.0/download"],
@@ -1640,7 +1667,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__strsim-0.10.0",
+        name = "cui__strsim-0.10.0",
         sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
@@ -1650,17 +1677,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__syn-1.0.86",
-        sha256 = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b",
+        name = "cui__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/1.0.86/download"],
-        strip_prefix = "syn-1.0.86",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.syn-1.0.86.bazel"),
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.syn-1.0.98.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__tempfile-3.3.0",
+        name = "cui__tempfile-3.3.0",
         sha256 = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/tempfile/3.3.0/download"],
@@ -1670,17 +1697,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__tera-1.15.0",
-        sha256 = "d3cac831b615c25bcef632d1cabf864fa05813baad3d526829db18eb70e8b58d",
+        name = "cui__tera-1.16.0",
+        sha256 = "7c9783d6ff395ae80cf17ed9a25360e7ba37742a79fa8fddabb073c5c7c8856d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tera/1.15.0/download"],
-        strip_prefix = "tera-1.15.0",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tera-1.15.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tera/1.16.0/download"],
+        strip_prefix = "tera-1.16.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tera-1.16.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__termcolor-1.1.3",
+        name = "cui__termcolor-1.1.3",
         sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
@@ -1690,17 +1717,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__textwrap-0.14.2",
-        sha256 = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/textwrap/0.14.2/download"],
-        strip_prefix = "textwrap-0.14.2",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.textwrap-0.14.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "crate_index__textwrap-0.15.0",
+        name = "cui__textwrap-0.15.0",
         sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
@@ -1710,7 +1727,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__thread_local-1.1.4",
+        name = "cui__thread_local-1.1.4",
         sha256 = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/thread_local/1.1.4/download"],
@@ -1720,17 +1737,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__tinyvec-1.5.1",
-        sha256 = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2",
+        name = "cui__tinyvec-1.6.0",
+        sha256 = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tinyvec/1.5.1/download"],
-        strip_prefix = "tinyvec-1.5.1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tinyvec-1.5.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tinyvec/1.6.0/download"],
+        strip_prefix = "tinyvec-1.6.0",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.tinyvec-1.6.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__tinyvec_macros-0.1.0",
+        name = "cui__tinyvec_macros-0.1.0",
         sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download"],
@@ -1740,17 +1757,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__toml-0.5.8",
-        sha256 = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa",
+        name = "cui__toml-0.5.9",
+        sha256 = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/toml/0.5.8/download"],
-        strip_prefix = "toml-0.5.8",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml-0.5.8.bazel"),
+        urls = ["https://crates.io/api/v1/crates/toml/0.5.9/download"],
+        strip_prefix = "toml-0.5.9",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.toml-0.5.9.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__typenum-1.15.0",
+        name = "cui__typenum-1.15.0",
         sha256 = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/typenum/1.15.0/download"],
@@ -1760,27 +1777,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__ucd-trie-0.1.3",
-        sha256 = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c",
+        name = "cui__ucd-trie-0.1.4",
+        sha256 = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ucd-trie/0.1.3/download"],
-        strip_prefix = "ucd-trie-0.1.3",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ucd-trie-0.1.3.bazel"),
+        urls = ["https://crates.io/api/v1/crates/ucd-trie/0.1.4/download"],
+        strip_prefix = "ucd-trie-0.1.4",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.ucd-trie-0.1.4.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__uncased-0.9.6",
-        sha256 = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0",
+        name = "cui__uncased-0.9.7",
+        sha256 = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/uncased/0.9.6/download"],
-        strip_prefix = "uncased-0.9.6",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.uncased-0.9.6.bazel"),
+        urls = ["https://crates.io/api/v1/crates/uncased/0.9.7/download"],
+        strip_prefix = "uncased-0.9.7",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.uncased-0.9.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__unic-char-property-0.9.0",
+        name = "cui__unic-char-property-0.9.0",
         sha256 = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-char-property/0.9.0/download"],
@@ -1790,7 +1807,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unic-char-range-0.9.0",
+        name = "cui__unic-char-range-0.9.0",
         sha256 = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-char-range/0.9.0/download"],
@@ -1800,7 +1817,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unic-common-0.9.0",
+        name = "cui__unic-common-0.9.0",
         sha256 = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-common/0.9.0/download"],
@@ -1810,7 +1827,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unic-segment-0.9.0",
+        name = "cui__unic-segment-0.9.0",
         sha256 = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-segment/0.9.0/download"],
@@ -1820,7 +1837,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unic-ucd-segment-0.9.0",
+        name = "cui__unic-ucd-segment-0.9.0",
         sha256 = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-ucd-segment/0.9.0/download"],
@@ -1830,7 +1847,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unic-ucd-version-0.9.0",
+        name = "cui__unic-ucd-version-0.9.0",
         sha256 = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unic-ucd-version/0.9.0/download"],
@@ -1840,17 +1857,27 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unicode-bidi-0.3.7",
-        sha256 = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f",
+        name = "cui__unicode-bidi-0.3.8",
+        sha256 = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.7/download"],
-        strip_prefix = "unicode-bidi-0.3.7",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-bidi-0.3.7.bazel"),
+        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download"],
+        strip_prefix = "unicode-bidi-0.3.8",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-bidi-0.3.8.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__unicode-linebreak-0.1.2",
+        name = "cui__unicode-ident-1.0.1",
+        sha256 = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.1/download"],
+        strip_prefix = "unicode-ident-1.0.1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-ident-1.0.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "cui__unicode-linebreak-0.1.2",
         sha256 = "3a52dcaab0c48d931f7cc8ef826fa51690a08e1ea55117ef26f89864f532383f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unicode-linebreak/0.1.2/download"],
@@ -1860,17 +1887,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unicode-normalization-0.1.19",
-        sha256 = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9",
+        name = "cui__unicode-normalization-0.1.21",
+        sha256 = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.19/download"],
-        strip_prefix = "unicode-normalization-0.1.19",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-normalization-0.1.19.bazel"),
+        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.21/download"],
+        strip_prefix = "unicode-normalization-0.1.21",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-normalization-0.1.21.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__unicode-width-0.1.9",
+        name = "cui__unicode-width-0.1.9",
         sha256 = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.9/download"],
@@ -1880,17 +1907,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__unicode-xid-0.2.2",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-xid/0.2.2/download"],
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "crate_index__url-2.2.2",
+        name = "cui__url-2.2.2",
         sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/url/2.2.2/download"],
@@ -1900,7 +1917,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__vcpkg-0.2.15",
+        name = "cui__vcpkg-0.2.15",
         sha256 = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/vcpkg/0.2.15/download"],
@@ -1910,7 +1927,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__version_check-0.9.4",
+        name = "cui__version_check-0.9.4",
         sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
@@ -1920,7 +1937,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__walkdir-2.3.2",
+        name = "cui__walkdir-2.3.2",
         sha256 = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/walkdir/2.3.2/download"],
@@ -1930,17 +1947,17 @@
 
     maybe(
         http_archive,
-        name = "crate_index__wasi-0.10.2-wasi-snapshot-preview1",
-        sha256 = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6",
+        name = "cui__wasi-0.11.0-wasi-snapshot-preview1",
+        sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download"],
-        strip_prefix = "wasi-0.10.2+wasi-snapshot-preview1",
-        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
+        build_file = Label("@rules_rust//crate_universe/3rdparty/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crate_index__winapi-0.3.9",
+        name = "cui__winapi-0.3.9",
         sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
@@ -1950,7 +1967,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__winapi-i686-pc-windows-gnu-0.4.0",
+        name = "cui__winapi-i686-pc-windows-gnu-0.4.0",
         sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
@@ -1960,7 +1977,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__winapi-util-0.1.5",
+        name = "cui__winapi-util-0.1.5",
         sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
@@ -1970,7 +1987,7 @@
 
     maybe(
         http_archive,
-        name = "crate_index__winapi-x86_64-pc-windows-gnu-0.4.0",
+        name = "cui__winapi-x86_64-pc-windows-gnu-0.4.0",
         sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
         type = "tar.gz",
         urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
diff --git a/third_party/rules_rust/crate_universe/BUILD.bazel b/third_party/rules_rust/crate_universe/BUILD.bazel
index 6ef161c..a99a90c 100644
--- a/third_party/rules_rust/crate_universe/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/BUILD.bazel
@@ -1,39 +1,24 @@
 load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
-load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
-load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_doc", "rust_library", "rust_test")
+load("@cui//:defs.bzl", "aliases", "all_crate_deps")
+load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_doc", "rust_doc_test", "rust_library", "rust_test")
 load("//crate_universe:version.bzl", "VERSION")
 
 exports_files(
     glob(["src/**"]) + [
         "Cargo.toml",
         "Cargo.lock",
-        "Cargo.Bazel.lock",
         "defs.bzl",
+        "docs.bzl",
     ],
     visibility = ["//visibility:public"],
 )
 
 filegroup(
-    name = "distro",
-    srcs = glob(["*.bzl"]) + [
-        ":rust_srcs",
-        "//crate_universe/3rdparty:distro",
-        "//crate_universe/private:distro",
-        "//crate_universe/tools:distro",
-        "BUILD.bazel",
-        "Cargo.Bazel.lock",
-        "Cargo.lock",
-        "Cargo.toml",
-        "README.md",
-    ],
-    visibility = ["//:__subpackages__"],
-)
-
-filegroup(
     name = "bzl_srcs",
     srcs = glob(["*.bzl"]) + [
         "//crate_universe/3rdparty:bzl_srcs",
         "//crate_universe/private:bzl_srcs",
+        "//crate_universe/tools:bzl_srcs",
     ],
     visibility = ["//visibility:public"],
 )
@@ -54,11 +39,6 @@
     visibility = ["//:__subpackages__"],
 )
 
-TAGS = [
-    # https://github.com/rust-lang/rust-clippy/issues/8470
-    "noclippy",
-]
-
 rust_library(
     name = "cargo_bazel",
     srcs = glob(
@@ -70,8 +50,13 @@
         include = ["src/**"],
         exclude = ["src/**/*.rs"],
     ),
+    edition = "2018",
     proc_macro_deps = all_crate_deps(proc_macro = True),
-    tags = TAGS,
+    # This target embeds additional, stamping related information (see
+    # https://docs.bazel.build/versions/main/user-manual.html#workspace_status
+    # for more information). Set stamp = -1 to indicate that it should respect
+    # the value of the --stamp comandline flag.
+    stamp = -1,
     version = VERSION,
     visibility = ["//visibility:public"],
     deps = all_crate_deps(normal = True),
@@ -80,7 +65,7 @@
 rust_binary(
     name = "cargo_bazel_bin",
     srcs = ["src/main.rs"],
-    tags = TAGS,
+    edition = "2018",
     version = VERSION,
     visibility = ["//visibility:public"],
     deps = [":cargo_bazel"],
@@ -97,17 +82,17 @@
     aliases = aliases(),
     crate = ":cargo_bazel",
     data = glob(["test_data/**"]) + [
-        "@rules_rust//rust/toolchain:current_exec_cargo_files",
-        "@rules_rust//rust/toolchain:current_exec_rustc_files",
+        "@rules_rust//rust/toolchain:current_cargo_files",
+        "@rules_rust//rust/toolchain:current_rustc_files",
+        "//crate_universe/test_data/serialized_configs",
     ],
     proc_macro_deps = all_crate_deps(
         proc_macro_dev = True,
     ),
     rustc_env = {
-        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_exec_cargo_files)",
-        "RUSTC": "$(rootpath @rules_rust//rust/toolchain:current_exec_rustc_files)",
+        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_cargo_files)",
+        "RUSTC": "$(rootpath @rules_rust//rust/toolchain:current_rustc_files)",
     },
-    tags = TAGS,
     deps = [
         "@rules_rust//tools/runfiles",
     ] + all_crate_deps(
@@ -121,10 +106,7 @@
     visibility = ["//visibility:public"],
 )
 
-# `rust_doc_test` does not currently work. See:
-# https://github.com/bazelbuild/rules_rust/issues/980
-#
-# rust_doc_test(
-#     name = "rustdoc_test",
-#     crate = ":cargo_bazel",
-# )
+rust_doc_test(
+    name = "rustdoc_test",
+    crate = ":cargo_bazel",
+)
diff --git a/third_party/rules_rust/crate_universe/Cargo.Bazel.lock b/third_party/rules_rust/crate_universe/Cargo.Bazel.lock
deleted file mode 100644
index 2e894c1..0000000
--- a/third_party/rules_rust/crate_universe/Cargo.Bazel.lock
+++ /dev/null
@@ -1,8022 +0,0 @@
-{
-  "checksum": "f8ab2b6622cba7bb41ac5eb5642bdfcb0bf5c1bd74c34e0245943b445b5c058c",
-  "crates": {
-    "aho-corasick 0.7.18": {
-      "name": "aho-corasick",
-      "version": "0.7.18",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-          "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "aho_corasick",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "aho_corasick",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.18"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "anyhow 1.0.55": {
-      "name": "anyhow",
-      "version": "1.0.55",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/anyhow/1.0.55/download",
-          "sha256": "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "anyhow",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "anyhow",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "anyhow 1.0.55",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.55"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "atty 0.2.14": {
-      "name": "atty",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
-          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atty",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atty",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"hermit\")": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "license": "MIT"
-    },
-    "autocfg 1.1.0": {
-      "name": "autocfg",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
-          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "autocfg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "autocfg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "block-buffer 0.10.2": {
-      "name": "block-buffer",
-      "version": "0.10.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/block-buffer/0.10.2/download",
-          "sha256": "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "block_buffer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "block_buffer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "generic_array"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "block-buffer 0.7.3": {
-      "name": "block-buffer",
-      "version": "0.7.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/block-buffer/0.7.3/download",
-          "sha256": "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "block_buffer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "block_buffer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "block-padding 0.1.5",
-              "target": "block_padding"
-            },
-            {
-              "id": "byte-tools 0.3.1",
-              "target": "byte_tools"
-            },
-            {
-              "id": "byteorder 1.4.3",
-              "target": "byteorder"
-            },
-            {
-              "id": "generic-array 0.12.4",
-              "target": "generic_array"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.7.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "block-padding 0.1.5": {
-      "name": "block-padding",
-      "version": "0.1.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/block-padding/0.1.5/download",
-          "sha256": "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "block_padding",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "block_padding",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "byte-tools 0.3.1",
-              "target": "byte_tools"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "bstr 0.2.17": {
-      "name": "bstr",
-      "version": "0.2.17",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bstr/0.2.17/download",
-          "sha256": "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bstr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bstr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.17"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "byte-tools 0.3.1": {
-      "name": "byte-tools",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/byte-tools/0.3.1/download",
-          "sha256": "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "byte_tools",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "byte_tools",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "byteorder 1.4.3": {
-      "name": "byteorder",
-      "version": "1.4.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/byteorder/1.4.3/download",
-          "sha256": "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "byteorder",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "byteorder",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.4.3"
-      },
-      "license": "Unlicense OR MIT"
-    },
-    "camino 1.0.7": {
-      "name": "camino",
-      "version": "1.0.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/camino/1.0.7/download",
-          "sha256": "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "camino",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "camino",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "serde",
-          "serde1"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "camino 1.0.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "cargo-bazel 0.0.28": {
-      "name": "cargo-bazel",
-      "version": "0.0.28",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cargo_bazel",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "cargo-bazel",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cargo_bazel",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "cargo",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "anyhow 1.0.55",
-              "target": "anyhow"
-            },
-            {
-              "id": "cargo-lock 7.0.1",
-              "target": "cargo_lock"
-            },
-            {
-              "id": "cargo-platform 0.1.2",
-              "target": "cargo_platform"
-            },
-            {
-              "id": "cargo_metadata 0.14.2",
-              "target": "cargo_metadata"
-            },
-            {
-              "id": "cargo_toml 0.11.4",
-              "target": "cargo_toml"
-            },
-            {
-              "id": "cfg-expr 0.10.2",
-              "target": "cfg_expr"
-            },
-            {
-              "id": "clap 3.1.5",
-              "target": "clap"
-            },
-            {
-              "id": "crates-index 0.18.7",
-              "target": "crates_index"
-            },
-            {
-              "id": "hex 0.4.3",
-              "target": "hex"
-            },
-            {
-              "id": "pathdiff 0.2.1",
-              "target": "pathdiff"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "semver 1.0.6",
-              "target": "semver"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "sha2 0.10.2",
-              "target": "sha2"
-            },
-            {
-              "id": "tempfile 3.3.0",
-              "target": "tempfile"
-            },
-            {
-              "id": "tera 1.15.0",
-              "target": "tera"
-            },
-            {
-              "id": "textwrap 0.14.2",
-              "target": "textwrap"
-            },
-            {
-              "id": "toml 0.5.8",
-              "target": "toml"
-            }
-          ],
-          "selects": {}
-        },
-        "deps_dev": {
-          "common": [
-            {
-              "id": "spectral 0.6.0",
-              "target": "spectral"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.0.28"
-      },
-      "license": null
-    },
-    "cargo-lock 7.0.1": {
-      "name": "cargo-lock",
-      "version": "7.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cargo-lock/7.0.1/download",
-          "sha256": "7fb04b88bd5b2036e30704f95c6ee16f3b5ca3b4ca307da2889d9006648e5c88"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cargo_lock",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "cargo-lock",
-            "crate_root": "src/bin/cargo-lock/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cargo_lock",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "semver 1.0.6",
-              "target": "semver"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "toml 0.5.8",
-              "target": "toml"
-            },
-            {
-              "id": "url 2.2.2",
-              "target": "url"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "7.0.1"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "cargo-platform 0.1.2": {
-      "name": "cargo-platform",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cargo-platform/0.1.2/download",
-          "sha256": "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cargo_platform",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cargo_platform",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "cargo_metadata 0.14.2": {
-      "name": "cargo_metadata",
-      "version": "0.14.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cargo_metadata/0.14.2/download",
-          "sha256": "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cargo_metadata",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cargo_metadata",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "camino 1.0.7",
-              "target": "camino"
-            },
-            {
-              "id": "cargo-platform 0.1.2",
-              "target": "cargo_platform"
-            },
-            {
-              "id": "semver 1.0.6",
-              "target": "semver"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.14.2"
-      },
-      "license": "MIT"
-    },
-    "cargo_toml 0.11.4": {
-      "name": "cargo_toml",
-      "version": "0.11.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cargo_toml/0.11.4/download",
-          "sha256": "4e270ef0cd868745878982f7ce470aa898d0d4bb248af67f0cf66f54617913ef"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cargo_toml",
-            "crate_root": "src/cargo_toml.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cargo_toml",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "toml 0.5.8",
-              "target": "toml"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "serde_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.11.4"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "cc 1.0.73": {
-      "name": "cc",
-      "version": "1.0.73",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cc/1.0.73/download",
-          "sha256": "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "gcc-shim",
-            "crate_root": "src/bin/gcc-shim.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "jobserver",
-          "parallel"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "jobserver 0.1.24",
-              "target": "jobserver"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.73"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "cfg-expr 0.10.2": {
-      "name": "cfg-expr",
-      "version": "0.10.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-expr/0.10.2/download",
-          "sha256": "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_expr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_expr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smallvec 1.8.0",
-              "target": "smallvec"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "chrono 0.4.19": {
-      "name": "chrono",
-      "version": "0.4.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/chrono/0.4.19/download",
-          "sha256": "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "chrono",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "chrono",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clock",
-          "libc",
-          "std",
-          "winapi"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.4.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "chrono-tz 0.6.1": {
-      "name": "chrono-tz",
-      "version": "0.6.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/chrono-tz/0.6.1/download",
-          "sha256": "58549f1842da3080ce63002102d5bc954c7bc843d4f47818e642abdc36253552"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "chrono_tz",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "chrono_tz",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "chrono 0.4.19",
-              "target": "chrono"
-            },
-            {
-              "id": "chrono-tz 0.6.1",
-              "target": "build_script_build"
-            },
-            {
-              "id": "phf 0.10.1",
-              "target": "phf"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.6.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "chrono-tz-build 0.0.2",
-              "target": "chrono_tz_build"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "chrono-tz-build 0.0.2": {
-      "name": "chrono-tz-build",
-      "version": "0.0.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/chrono-tz-build/0.0.2/download",
-          "sha256": "db058d493fb2f65f41861bfed7e3fe6335264a9f0f92710cab5bdf01fef09069"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "chrono_tz_build",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "chrono_tz_build",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "parse-zoneinfo 0.3.0",
-              "target": "parse_zoneinfo"
-            },
-            {
-              "id": "phf 0.10.1",
-              "target": "phf"
-            },
-            {
-              "id": "phf_codegen 0.10.0",
-              "target": "phf_codegen"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.0.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "clap 3.1.5": {
-      "name": "clap",
-      "version": "3.1.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap/3.1.5/download",
-          "sha256": "ced1892c55c910c1219e98d6fc8d71f6bddba7905866ce740066d8bfea859312"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "clap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "atty",
-          "clap_derive",
-          "color",
-          "default",
-          "derive",
-          "env",
-          "lazy_static",
-          "std",
-          "strsim",
-          "suggestions",
-          "termcolor"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "indexmap"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "os_str_bytes 6.0.0",
-              "target": "os_str_bytes"
-            },
-            {
-              "id": "strsim 0.10.0",
-              "target": "strsim"
-            },
-            {
-              "id": "termcolor 1.1.3",
-              "target": "termcolor"
-            },
-            {
-              "id": "textwrap 0.15.0",
-              "target": "textwrap"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "clap_derive 3.1.4",
-              "target": "clap_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "3.1.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "clap_derive 3.1.4": {
-      "name": "clap_derive",
-      "version": "3.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap_derive/3.1.4/download",
-          "sha256": "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "clap_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "heck 0.4.0",
-              "target": "heck"
-            },
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "proc_macro_error"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "3.1.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "cpufeatures 0.2.1": {
-      "name": "cpufeatures",
-      "version": "0.2.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cpufeatures/0.2.1/download",
-          "sha256": "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cpufeatures",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cpufeatures",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "aarch64-apple-darwin": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.2.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "crates-index 0.18.7": {
-      "name": "crates-index",
-      "version": "0.18.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crates-index/0.18.7/download",
-          "sha256": "0044896374c388ccbf1497dad6384bf6111dbcad9d7069506df7450ce9b62ea3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crates_index",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crates_index",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "git2 0.14.1",
-              "target": "git2"
-            },
-            {
-              "id": "hex 0.4.3",
-              "target": "hex"
-            },
-            {
-              "id": "home 0.5.3",
-              "target": "home"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "rustc-hash 1.1.0",
-              "target": "rustc_hash"
-            },
-            {
-              "id": "semver 1.0.6",
-              "target": "semver"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "smartstring 1.0.0",
-              "target": "smartstring"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "serde_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.18.7"
-      },
-      "license": "Apache-2.0"
-    },
-    "cross_installer 0.1.0": {
-      "name": "cross_installer",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Binary": {
-            "crate_name": "cross_installer",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": null,
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 3.1.5",
-              "target": "clap"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "crossbeam-utils 0.8.7": {
-      "name": "crossbeam-utils",
-      "version": "0.8.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.7/download",
-          "sha256": "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crossbeam_utils",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crossbeam_utils",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lazy_static",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "crypto-common 0.1.3": {
-      "name": "crypto-common",
-      "version": "0.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crypto-common/0.1.3/download",
-          "sha256": "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crypto_common",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crypto_common",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "generic_array"
-            },
-            {
-              "id": "typenum 1.15.0",
-              "target": "typenum"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "deunicode 0.4.3": {
-      "name": "deunicode",
-      "version": "0.4.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/deunicode/0.4.3/download",
-          "sha256": "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "deunicode",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "deunicode",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.4.3"
-      },
-      "license": "BSD-3-Clause"
-    },
-    "digest 0.10.3": {
-      "name": "digest",
-      "version": "0.10.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/digest/0.10.3/download",
-          "sha256": "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "digest",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "digest",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "block-buffer",
-          "core-api",
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "block-buffer 0.10.2",
-              "target": "block_buffer"
-            },
-            {
-              "id": "crypto-common 0.1.3",
-              "target": "crypto_common"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "digest 0.8.1": {
-      "name": "digest",
-      "version": "0.8.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/digest/0.8.1/download",
-          "sha256": "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "digest",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "digest",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.12.4",
-              "target": "generic_array"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.8.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "fake-simd 0.1.2": {
-      "name": "fake-simd",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fake-simd/0.1.2/download",
-          "sha256": "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fake_simd",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fake_simd",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "fastrand 1.7.0": {
-      "name": "fastrand",
-      "version": "1.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fastrand/1.7.0/download",
-          "sha256": "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fastrand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fastrand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_arch = \"wasm32\")": [
-              {
-                "id": "instant 0.1.12",
-                "target": "instant"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.7.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "fnv 1.0.7": {
-      "name": "fnv",
-      "version": "1.0.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fnv/1.0.7/download",
-          "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fnv",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fnv",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "1.0.7"
-      },
-      "license": "Apache-2.0 / MIT"
-    },
-    "form_urlencoded 1.0.1": {
-      "name": "form_urlencoded",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
-          "sha256": "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "form_urlencoded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "form_urlencoded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "fuchsia-cprng 0.1.1": {
-      "name": "fuchsia-cprng",
-      "version": "0.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fuchsia-cprng/0.1.1/download",
-          "sha256": "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fuchsia_cprng",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fuchsia_cprng",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.1"
-      },
-      "license": null
-    },
-    "generic-array 0.12.4": {
-      "name": "generic-array",
-      "version": "0.12.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/generic-array/0.12.4/download",
-          "sha256": "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "generic_array",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "generic_array",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "typenum 1.15.0",
-              "target": "typenum"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.12.4"
-      },
-      "license": "MIT"
-    },
-    "generic-array 0.14.5": {
-      "name": "generic-array",
-      "version": "0.14.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/generic-array/0.14.5/download",
-          "sha256": "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "generic_array",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "generic_array",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "more_lengths"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "build_script_build"
-            },
-            {
-              "id": "typenum 1.15.0",
-              "target": "typenum"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.14.5"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT"
-    },
-    "getrandom 0.2.5": {
-      "name": "getrandom",
-      "version": "0.2.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/getrandom/0.2.5/download",
-          "sha256": "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "getrandom",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "getrandom",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"wasi\")": [
-              {
-                "id": "wasi 0.10.2+wasi-snapshot-preview1",
-                "target": "wasi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.2.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "git2 0.14.1": {
-      "name": "git2",
-      "version": "0.14.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/git2/0.14.1/download",
-          "sha256": "6e7d3b96ec1fcaa8431cf04a4f1ef5caafe58d5cf7bcc31f09c1626adddb0ffe"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "git2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "git2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "libgit2-sys 0.13.1+1.4.2",
-              "target": "libgit2_sys"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "url 2.2.2",
-              "target": "url"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.14.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "globset 0.4.8": {
-      "name": "globset",
-      "version": "0.4.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/globset/0.4.8/download",
-          "sha256": "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "globset",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "globset",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "aho-corasick 0.7.18",
-              "target": "aho_corasick"
-            },
-            {
-              "id": "bstr 0.2.17",
-              "target": "bstr"
-            },
-            {
-              "id": "fnv 1.0.7",
-              "target": "fnv"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.8"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "globwalk 0.8.1": {
-      "name": "globwalk",
-      "version": "0.8.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/globwalk/0.8.1/download",
-          "sha256": "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "globwalk",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "globwalk",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "ignore 0.4.18",
-              "target": "ignore"
-            },
-            {
-              "id": "walkdir 2.3.2",
-              "target": "walkdir"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.8.1"
-      },
-      "license": "MIT"
-    },
-    "hashbrown 0.11.2": {
-      "name": "hashbrown",
-      "version": "0.11.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hashbrown/0.11.2/download",
-          "sha256": "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hashbrown",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hashbrown",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "raw"
-        ],
-        "edition": "2018",
-        "version": "0.11.2"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "heck 0.4.0": {
-      "name": "heck",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/heck/0.4.0/download",
-          "sha256": "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "heck",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "heck",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "0.4.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "hex 0.4.3": {
-      "name": "hex",
-      "version": "0.4.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hex/0.4.3/download",
-          "sha256": "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "serde",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "home 0.5.3": {
-      "name": "home",
-      "version": "0.5.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/home/0.5.3/download",
-          "sha256": "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "home",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "home",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.5.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "humansize 1.1.1": {
-      "name": "humansize",
-      "version": "1.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/humansize/1.1.1/download",
-          "sha256": "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "humansize",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "humansize",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "idna 0.2.3": {
-      "name": "idna",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/idna/0.2.3/download",
-          "sha256": "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "idna",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "idna",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "unicode-bidi 0.3.7",
-              "target": "unicode_bidi"
-            },
-            {
-              "id": "unicode-normalization 0.1.19",
-              "target": "unicode_normalization"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "ignore 0.4.18": {
-      "name": "ignore",
-      "version": "0.4.18",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ignore/0.4.18/download",
-          "sha256": "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ignore",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ignore",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "crossbeam_utils"
-            },
-            {
-              "id": "globset 0.4.8",
-              "target": "globset"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "same-file 1.0.6",
-              "target": "same_file"
-            },
-            {
-              "id": "thread_local 1.1.4",
-              "target": "thread_local"
-            },
-            {
-              "id": "walkdir 2.3.2",
-              "target": "walkdir"
-            }
-          ],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi-util 0.1.5",
-                "target": "winapi_util"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.4.18"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "indexmap 1.8.0": {
-      "name": "indexmap",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/indexmap/1.8.0/download",
-          "sha256": "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "indexmap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "indexmap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "hashbrown 0.11.2",
-              "target": "hashbrown"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "instant 0.1.12": {
-      "name": "instant",
-      "version": "0.1.12",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/instant/0.1.12/download",
-          "sha256": "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "instant",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "instant",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.12"
-      },
-      "license": "BSD-3-Clause"
-    },
-    "itoa 1.0.1": {
-      "name": "itoa",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/itoa/1.0.1/download",
-          "sha256": "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "itoa",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "itoa",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "jobserver 0.1.24": {
-      "name": "jobserver",
-      "version": "0.1.24",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/jobserver/0.1.24/download",
-          "sha256": "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "jobserver",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "jobserver",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.24"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "lazy_static 1.4.0": {
-      "name": "lazy_static",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lazy_static",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lazy_static",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "libgit2-sys 0.13.1+1.4.2": {
-      "name": "libgit2-sys",
-      "version": "0.13.1+1.4.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libgit2-sys/0.13.1+1.4.2/download",
-          "sha256": "43e598aa7a4faedf1ea1b4608f582b06f0f40211eec551b7ef36019ae3f62def"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libgit2_sys",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libgit2_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "libz-sys 1.1.3",
-              "target": "libz_sys"
-            }
-          ],
-          "selects": {}
-        },
-        "extra_deps": [
-          "@libgit2"
-        ],
-        "edition": "2018",
-        "version": "0.13.1+1.4.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libz-sys 1.1.3": {
-      "name": "libz-sys",
-      "version": "1.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libz-sys/1.1.3/download",
-          "sha256": "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libz_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libz_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "libc"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "extra_deps": [
-          "@zlib"
-        ],
-        "edition": "2015",
-        "version": "1.1.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "log 0.4.14": {
-      "name": "log",
-      "version": "0.4.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/log/0.4.14/download",
-          "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "maplit 1.0.2": {
-      "name": "maplit",
-      "version": "1.0.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/maplit/1.0.2/download",
-          "sha256": "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "maplit",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "maplit",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.0.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "matches 0.1.9": {
-      "name": "matches",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/matches/0.1.9/download",
-          "sha256": "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "matches",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "matches",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT"
-    },
-    "memchr 2.4.1": {
-      "name": "memchr",
-      "version": "2.4.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-          "sha256": "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "memchr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "memchr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.4.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Unlicense/MIT"
-    },
-    "num 0.1.42": {
-      "name": "num",
-      "version": "0.1.42",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num/0.1.42/download",
-          "sha256": "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "bigint",
-          "complex",
-          "default",
-          "num-bigint",
-          "num-complex",
-          "num-rational",
-          "rational",
-          "rustc-serialize"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-bigint 0.1.44",
-              "target": "num_bigint"
-            },
-            {
-              "id": "num-complex 0.1.43",
-              "target": "num_complex"
-            },
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-iter 0.1.42",
-              "target": "num_iter"
-            },
-            {
-              "id": "num-rational 0.1.42",
-              "target": "num_rational"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.42"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "num-bigint 0.1.44": {
-      "name": "num-bigint",
-      "version": "0.1.44",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-bigint/0.1.44/download",
-          "sha256": "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_bigint",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_bigint",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "rand",
-          "rustc-serialize"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            },
-            {
-              "id": "rand 0.4.6",
-              "target": "rand"
-            },
-            {
-              "id": "rustc-serialize 0.3.24",
-              "target": "rustc_serialize"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.44"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "num-complex 0.1.43": {
-      "name": "num-complex",
-      "version": "0.1.43",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-complex/0.1.43/download",
-          "sha256": "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_complex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_complex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "rustc-serialize"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            },
-            {
-              "id": "rustc-serialize 0.3.24",
-              "target": "rustc_serialize"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.43"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "num-integer 0.1.44": {
-      "name": "num-integer",
-      "version": "0.1.44",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-integer/0.1.44/download",
-          "sha256": "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_integer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_integer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "build_script_build"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.44"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num-iter 0.1.42": {
-      "name": "num-iter",
-      "version": "0.1.42",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-iter/0.1.42/download",
-          "sha256": "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_iter",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_iter",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-iter 0.1.42",
-              "target": "build_script_build"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.42"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num-rational 0.1.42": {
-      "name": "num-rational",
-      "version": "0.1.42",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-rational/0.1.42/download",
-          "sha256": "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_rational",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_rational",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "bigint",
-          "default",
-          "num-bigint",
-          "rustc-serialize"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-bigint 0.1.44",
-              "target": "num_bigint"
-            },
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            },
-            {
-              "id": "rustc-serialize 0.3.24",
-              "target": "rustc_serialize"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.42"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "num-traits 0.2.14": {
-      "name": "num-traits",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-traits/0.2.14/download",
-          "sha256": "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_traits",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_traits",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-traits 0.2.14",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num_cpus 1.13.1": {
-      "name": "num_cpus",
-      "version": "1.13.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
-          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_cpus",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_cpus",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(not(windows))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "1.13.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "once_cell 1.9.0": {
-      "name": "once_cell",
-      "version": "1.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/once_cell/1.9.0/download",
-          "sha256": "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "once_cell",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "once_cell",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "race",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.9.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "opaque-debug 0.2.3": {
-      "name": "opaque-debug",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/opaque-debug/0.2.3/download",
-          "sha256": "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "opaque_debug",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "opaque_debug",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "os_str_bytes 6.0.0": {
-      "name": "os_str_bytes",
-      "version": "6.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/os_str_bytes/6.0.0/download",
-          "sha256": "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "os_str_bytes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "os_str_bytes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "memchr",
-          "raw_os_str"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "6.0.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "parse-zoneinfo 0.3.0": {
-      "name": "parse-zoneinfo",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parse-zoneinfo/0.3.0/download",
-          "sha256": "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parse_zoneinfo",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parse_zoneinfo",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "pathdiff 0.2.1": {
-      "name": "pathdiff",
-      "version": "0.2.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pathdiff/0.2.1/download",
-          "sha256": "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pathdiff",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pathdiff",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.2.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "percent-encoding 2.1.0": {
-      "name": "percent-encoding",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
-          "sha256": "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "percent_encoding",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "percent_encoding",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "2.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pest 2.1.3": {
-      "name": "pest",
-      "version": "2.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pest/2.1.3/download",
-          "sha256": "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pest",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pest",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ucd-trie 0.1.3",
-              "target": "ucd_trie"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "2.1.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pest_derive 2.1.0": {
-      "name": "pest_derive",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pest_derive/2.1.0/download",
-          "sha256": "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "pest_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pest_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "pest 2.1.3",
-              "target": "pest"
-            },
-            {
-              "id": "pest_generator 2.1.3",
-              "target": "pest_generator"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "2.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pest_generator 2.1.3": {
-      "name": "pest_generator",
-      "version": "2.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pest_generator/2.1.3/download",
-          "sha256": "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pest_generator",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pest_generator",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "pest 2.1.3",
-              "target": "pest"
-            },
-            {
-              "id": "pest_meta 2.1.3",
-              "target": "pest_meta"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "2.1.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pest_meta 2.1.3": {
-      "name": "pest_meta",
-      "version": "2.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pest_meta/2.1.3/download",
-          "sha256": "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pest_meta",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pest_meta",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "maplit 1.0.2",
-              "target": "maplit"
-            },
-            {
-              "id": "pest 2.1.3",
-              "target": "pest"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "2.1.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "phf 0.10.1": {
-      "name": "phf",
-      "version": "0.10.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/phf/0.10.1/download",
-          "sha256": "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "phf",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "phf",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "uncased"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "phf_shared 0.10.0",
-              "target": "phf_shared"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.1"
-      },
-      "license": "MIT"
-    },
-    "phf_codegen 0.10.0": {
-      "name": "phf_codegen",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/phf_codegen/0.10.0/download",
-          "sha256": "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "phf_codegen",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "phf_codegen",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "phf_generator 0.10.0",
-              "target": "phf_generator"
-            },
-            {
-              "id": "phf_shared 0.10.0",
-              "target": "phf_shared"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "phf_generator 0.10.0": {
-      "name": "phf_generator",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/phf_generator/0.10.0/download",
-          "sha256": "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "phf_generator",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "gen_hash_test",
-            "crate_root": "src/bin/gen_hash_test.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "phf_generator",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "phf_shared 0.10.0",
-              "target": "phf_shared"
-            },
-            {
-              "id": "rand 0.8.5",
-              "target": "rand"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "phf_shared 0.10.0": {
-      "name": "phf_shared",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/phf_shared/0.10.0/download",
-          "sha256": "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "phf_shared",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "phf_shared",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std",
-          "uncased"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "siphasher 0.3.9",
-              "target": "siphasher"
-            },
-            {
-              "id": "uncased 0.9.6",
-              "target": "uncased"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "pkg-config 0.3.24": {
-      "name": "pkg-config",
-      "version": "0.3.24",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pkg-config/0.3.24/download",
-          "sha256": "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pkg_config",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pkg_config",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.24"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "ppv-lite86 0.2.16": {
-      "name": "ppv-lite86",
-      "version": "0.2.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download",
-          "sha256": "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ppv_lite86",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ppv_lite86",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "simd",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.2.16"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "proc-macro-error 1.0.4": {
-      "name": "proc-macro-error",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
-          "sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro_error",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "syn",
-          "syn-error"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "proc_macro_error_attr"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro-error-attr 1.0.4": {
-      "name": "proc-macro-error-attr",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
-          "sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "proc_macro_error_attr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error_attr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro2 1.0.36": {
-      "name": "proc-macro2",
-      "version": "1.0.36",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.36/download",
-          "sha256": "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.36"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "quote 1.0.15": {
-      "name": "quote",
-      "version": "1.0.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.15/download",
-          "sha256": "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "quote",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "quote",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.15"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand 0.4.6": {
-      "name": "rand",
-      "version": "0.4.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand/0.4.6/download",
-          "sha256": "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "libc",
-          "std"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_env = \"sgx\")": [
-              {
-                "id": "rand_core 0.3.1",
-                "target": "rand_core"
-              },
-              {
-                "id": "rdrand 0.4.0",
-                "target": "rdrand"
-              }
-            ],
-            "cfg(target_os = \"fuchsia\")": [
-              {
-                "id": "fuchsia-cprng 0.1.1",
-                "target": "fuchsia_cprng"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.4.6"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rand 0.8.5": {
-      "name": "rand",
-      "version": "0.8.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand/0.8.5/download",
-          "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "getrandom",
-          "libc",
-          "rand_chacha",
-          "small_rng",
-          "std",
-          "std_rng"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_chacha 0.3.1",
-              "target": "rand_chacha"
-            },
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_chacha 0.3.1": {
-      "name": "rand_chacha",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_chacha/0.3.1/download",
-          "sha256": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_chacha",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_chacha",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ppv-lite86 0.2.16",
-              "target": "ppv_lite86"
-            },
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_core 0.3.1": {
-      "name": "rand_core",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.3.1/download",
-          "sha256": "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_core 0.4.2",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.3.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rand_core 0.4.2": {
-      "name": "rand_core",
-      "version": "0.4.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.4.2/download",
-          "sha256": "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.4.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rand_core 0.6.3": {
-      "name": "rand_core",
-      "version": "0.6.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
-          "sha256": "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "getrandom",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "getrandom 0.2.5",
-              "target": "getrandom"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.6.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rdrand 0.4.0": {
-      "name": "rdrand",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rdrand/0.4.0/download",
-          "sha256": "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rdrand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rdrand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_core 0.3.1",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "license": "ISC"
-    },
-    "redox_syscall 0.2.11": {
-      "name": "redox_syscall",
-      "version": "0.2.11",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/redox_syscall/0.2.11/download",
-          "sha256": "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syscall",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syscall",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.11"
-      },
-      "license": "MIT"
-    },
-    "regex 1.5.4": {
-      "name": "regex",
-      "version": "1.5.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex/1.5.4/download",
-          "sha256": "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "aho-corasick",
-          "default",
-          "memchr",
-          "perf",
-          "perf-cache",
-          "perf-dfa",
-          "perf-inline",
-          "perf-literal",
-          "std",
-          "unicode",
-          "unicode-age",
-          "unicode-bool",
-          "unicode-case",
-          "unicode-gencat",
-          "unicode-perl",
-          "unicode-script",
-          "unicode-segment"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "aho-corasick 0.7.18",
-              "target": "aho_corasick"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "regex-syntax 0.6.25",
-              "target": "regex_syntax"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex-syntax 0.6.25": {
-      "name": "regex-syntax",
-      "version": "0.6.25",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-          "sha256": "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex_syntax",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex_syntax",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "unicode",
-          "unicode-age",
-          "unicode-bool",
-          "unicode-case",
-          "unicode-gencat",
-          "unicode-perl",
-          "unicode-script",
-          "unicode-segment"
-        ],
-        "edition": "2018",
-        "version": "0.6.25"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "remove_dir_all 0.5.3": {
-      "name": "remove_dir_all",
-      "version": "0.5.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download",
-          "sha256": "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "remove_dir_all",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "remove_dir_all",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.5.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rustc-hash 1.1.0": {
-      "name": "rustc-hash",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rustc-hash/1.1.0/download",
-          "sha256": "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rustc_hash",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rustc_hash",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "rustc-serialize 0.3.24": {
-      "name": "rustc-serialize",
-      "version": "0.3.24",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rustc-serialize/0.3.24/download",
-          "sha256": "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rustc_serialize",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rustc_serialize",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.24"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "ryu 1.0.9": {
-      "name": "ryu",
-      "version": "1.0.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ryu/1.0.9/download",
-          "sha256": "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ryu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ryu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.9"
-      },
-      "license": "Apache-2.0 OR BSL-1.0"
-    },
-    "same-file 1.0.6": {
-      "name": "same-file",
-      "version": "1.0.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/same-file/1.0.6/download",
-          "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "same_file",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "same_file",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi-util 0.1.5",
-                "target": "winapi_util"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.0.6"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "semver 1.0.6": {
-      "name": "semver",
-      "version": "1.0.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/semver/1.0.6/download",
-          "sha256": "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "semver",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "semver",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "serde",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "semver 1.0.6",
-              "target": "build_script_build"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.6"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde 1.0.136": {
-      "name": "serde",
-      "version": "1.0.136",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde/1.0.136/download",
-          "sha256": "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "derive",
-          "rc",
-          "serde_derive",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "serde_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.136"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_derive 1.0.136": {
-      "name": "serde_derive",
-      "version": "1.0.136",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_derive/1.0.136/download",
-          "sha256": "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "serde_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "build_script_build"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.0.136"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_json 1.0.79": {
-      "name": "serde_json",
-      "version": "1.0.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_json/1.0.79/download",
-          "sha256": "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_json",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_json",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std",
-          "unbounded_depth"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "ryu 1.0.9",
-              "target": "ryu"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.79"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "sha-1 0.8.2": {
-      "name": "sha-1",
-      "version": "0.8.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/sha-1/0.8.2/download",
-          "sha256": "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "sha1",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "sha1",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "block-buffer 0.7.3",
-              "target": "block_buffer"
-            },
-            {
-              "id": "digest 0.8.1",
-              "target": "digest"
-            },
-            {
-              "id": "fake-simd 0.1.2",
-              "target": "fake_simd"
-            },
-            {
-              "id": "opaque-debug 0.2.3",
-              "target": "opaque_debug"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.8.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "sha2 0.10.2": {
-      "name": "sha2",
-      "version": "0.10.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/sha2/0.10.2/download",
-          "sha256": "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "sha2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "sha2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "digest 0.10.3",
-              "target": "digest"
-            }
-          ],
-          "selects": {
-            "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [
-              {
-                "id": "cpufeatures 0.2.1",
-                "target": "cpufeatures"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.10.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "siphasher 0.3.9": {
-      "name": "siphasher",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/siphasher/0.3.9/download",
-          "sha256": "a86232ab60fa71287d7f2ddae4a7073f6b7aac33631c3015abb556f08c6d0a3e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "siphasher",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "siphasher",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "slug 0.1.4": {
-      "name": "slug",
-      "version": "0.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/slug/0.1.4/download",
-          "sha256": "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "slug",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "slug",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "deunicode 0.4.3",
-              "target": "deunicode"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.4"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "smallvec 1.8.0": {
-      "name": "smallvec",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smallvec/1.8.0/download",
-          "sha256": "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smallvec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smallvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "smartstring 1.0.0": {
-      "name": "smartstring",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smartstring/1.0.0/download",
-          "sha256": "ea958ad90cacc8ece7f238fde3671e1b350ee1741964edf2a22fd16f60224163"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smartstring",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smartstring",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "serde",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "static_assertions 1.1.0",
-              "target": "static_assertions"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2021",
-        "version": "1.0.0"
-      },
-      "license": "MPL-2.0+"
-    },
-    "smawk 0.3.1": {
-      "name": "smawk",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smawk/0.3.1/download",
-          "sha256": "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smawk",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smawk",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "spectral 0.6.0": {
-      "name": "spectral",
-      "version": "0.6.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/spectral/0.6.0/download",
-          "sha256": "ae3c15181f4b14e52eeaac3efaeec4d2764716ce9c86da0c934c3e318649c5ba"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "spectral",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "spectral",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "num"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num 0.1.42",
-              "target": "num"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.6.0"
-      },
-      "license": "Apache-2.0"
-    },
-    "static_assertions 1.1.0": {
-      "name": "static_assertions",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/static_assertions/1.1.0/download",
-          "sha256": "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "static_assertions",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "static_assertions",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "strsim 0.10.0": {
-      "name": "strsim",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download",
-          "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "strsim",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "strsim",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "syn 1.0.86": {
-      "name": "syn",
-      "version": "1.0.86",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.86/download",
-          "sha256": "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clone-impls",
-          "default",
-          "derive",
-          "full",
-          "parsing",
-          "printing",
-          "proc-macro",
-          "quote"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.86"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "tempfile 3.3.0": {
-      "name": "tempfile",
-      "version": "3.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tempfile/3.3.0/download",
-          "sha256": "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tempfile",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tempfile",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "fastrand 1.7.0",
-              "target": "fastrand"
-            },
-            {
-              "id": "remove_dir_all 0.5.3",
-              "target": "remove_dir_all"
-            }
-          ],
-          "selects": {
-            "cfg(any(unix, target_os = \"wasi\"))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(target_os = \"redox\")": [
-              {
-                "id": "redox_syscall 0.2.11",
-                "target": "syscall"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "3.3.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "tera 1.15.0": {
-      "name": "tera",
-      "version": "1.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tera/1.15.0/download",
-          "sha256": "d3cac831b615c25bcef632d1cabf864fa05813baad3d526829db18eb70e8b58d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tera",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tera",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "builtins",
-          "chrono",
-          "chrono-tz",
-          "default",
-          "humansize",
-          "percent-encoding",
-          "rand",
-          "slug"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "chrono 0.4.19",
-              "target": "chrono"
-            },
-            {
-              "id": "chrono-tz 0.6.1",
-              "target": "chrono_tz"
-            },
-            {
-              "id": "globwalk 0.8.1",
-              "target": "globwalk"
-            },
-            {
-              "id": "humansize 1.1.1",
-              "target": "humansize"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            },
-            {
-              "id": "pest 2.1.3",
-              "target": "pest"
-            },
-            {
-              "id": "rand 0.8.5",
-              "target": "rand"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "slug 0.1.4",
-              "target": "slug"
-            },
-            {
-              "id": "unic-segment 0.9.0",
-              "target": "unic_segment"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "pest_derive 2.1.0",
-              "target": "pest_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.15.0"
-      },
-      "license": "MIT"
-    },
-    "termcolor 1.1.3": {
-      "name": "termcolor",
-      "version": "1.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/termcolor/1.1.3/download",
-          "sha256": "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "termcolor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "termcolor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi-util 0.1.5",
-                "target": "winapi_util"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.1.3"
-      },
-      "license": "Unlicense OR MIT"
-    },
-    "textwrap 0.14.2": {
-      "name": "textwrap",
-      "version": "0.14.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.14.2/download",
-          "sha256": "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "smawk",
-          "unicode-linebreak",
-          "unicode-width"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smawk 0.3.1",
-              "target": "smawk"
-            },
-            {
-              "id": "unicode-linebreak 0.1.2",
-              "target": "unicode_linebreak"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.14.2"
-      },
-      "license": "MIT"
-    },
-    "textwrap 0.15.0": {
-      "name": "textwrap",
-      "version": "0.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.15.0/download",
-          "sha256": "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.15.0"
-      },
-      "license": "MIT"
-    },
-    "thread_local 1.1.4": {
-      "name": "thread_local",
-      "version": "1.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/thread_local/1.1.4/download",
-          "sha256": "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "thread_local",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "thread_local",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "once_cell 1.9.0",
-              "target": "once_cell"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.1.4"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "tinyvec 1.5.1": {
-      "name": "tinyvec",
-      "version": "1.5.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tinyvec/1.5.1/download",
-          "sha256": "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tinyvec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tinyvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "tinyvec_macros"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "tinyvec_macros 0.1.0",
-              "target": "tinyvec_macros"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.1"
-      },
-      "license": "Zlib OR Apache-2.0 OR MIT"
-    },
-    "tinyvec_macros 0.1.0": {
-      "name": "tinyvec_macros",
-      "version": "0.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download",
-          "sha256": "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tinyvec_macros",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tinyvec_macros",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": "MIT OR Apache-2.0 OR Zlib"
-    },
-    "toml 0.5.8": {
-      "name": "toml",
-      "version": "0.5.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/toml/0.5.8/download",
-          "sha256": "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "toml",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "toml",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.5.8"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "typenum 1.15.0": {
-      "name": "typenum",
-      "version": "1.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/typenum/1.15.0/download",
-          "sha256": "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "typenum",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_main",
-            "crate_root": "build/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "typenum",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "typenum 1.15.0",
-              "target": "build_script_main"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.15.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "ucd-trie 0.1.3": {
-      "name": "ucd-trie",
-      "version": "0.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ucd-trie/0.1.3/download",
-          "sha256": "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ucd_trie",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ucd_trie",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.1.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "uncased 0.9.6": {
-      "name": "uncased",
-      "version": "0.9.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/uncased/0.9.6/download",
-          "sha256": "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "uncased",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "uncased",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "uncased 0.9.6",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.6"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "unic-char-property 0.9.0": {
-      "name": "unic-char-property",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-char-property/0.9.0/download",
-          "sha256": "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_char_property",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_char_property",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unic-char-range 0.9.0",
-              "target": "unic_char_range"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unic-char-range 0.9.0": {
-      "name": "unic-char-range",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-char-range/0.9.0/download",
-          "sha256": "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_char_range",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_char_range",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unic-common 0.9.0": {
-      "name": "unic-common",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-common/0.9.0/download",
-          "sha256": "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_common",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_common",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unic-segment 0.9.0": {
-      "name": "unic-segment",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-segment/0.9.0/download",
-          "sha256": "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_segment",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_segment",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unic-ucd-segment 0.9.0",
-              "target": "unic_ucd_segment"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unic-ucd-segment 0.9.0": {
-      "name": "unic-ucd-segment",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-ucd-segment/0.9.0/download",
-          "sha256": "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_ucd_segment",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_ucd_segment",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unic-char-property 0.9.0",
-              "target": "unic_char_property"
-            },
-            {
-              "id": "unic-char-range 0.9.0",
-              "target": "unic_char_range"
-            },
-            {
-              "id": "unic-ucd-version 0.9.0",
-              "target": "unic_ucd_version"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unic-ucd-version 0.9.0": {
-      "name": "unic-ucd-version",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unic-ucd-version/0.9.0/download",
-          "sha256": "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unic_ucd_version",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unic_ucd_version",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unic-common 0.9.0",
-              "target": "unic_common"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-bidi 0.3.7": {
-      "name": "unicode-bidi",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.7/download",
-          "sha256": "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_bidi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_bidi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "unicode-linebreak 0.1.2": {
-      "name": "unicode-linebreak",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-linebreak/0.1.2/download",
-          "sha256": "3a52dcaab0c48d931f7cc8ef826fa51690a08e1ea55117ef26f89864f532383f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_linebreak",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_linebreak",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unicode-linebreak 0.1.2",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0"
-    },
-    "unicode-normalization 0.1.19": {
-      "name": "unicode-normalization",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-normalization/0.1.19/download",
-          "sha256": "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_normalization",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_normalization",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "tinyvec 1.5.1",
-              "target": "tinyvec"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-width 0.1.9": {
-      "name": "unicode-width",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
-          "sha256": "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_width",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_width",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-xid 0.2.2": {
-      "name": "unicode-xid",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-          "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_xid",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_xid",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "url 2.2.2": {
-      "name": "url",
-      "version": "2.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/url/2.2.2/download",
-          "sha256": "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "url",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "url",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "form_urlencoded 1.0.1",
-              "target": "form_urlencoded"
-            },
-            {
-              "id": "idna 0.2.3",
-              "target": "idna"
-            },
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.2.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "urls_generator 0.1.0": {
-      "name": "urls_generator",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Binary": {
-            "crate_name": "urls_generator",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": null,
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 3.1.5",
-              "target": "clap"
-            },
-            {
-              "id": "hex 0.4.3",
-              "target": "hex"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "sha2 0.10.2",
-              "target": "sha2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "vcpkg 0.2.15": {
-      "name": "vcpkg",
-      "version": "0.2.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/vcpkg/0.2.15/download",
-          "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "vcpkg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "vcpkg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.15"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "version_check 0.9.4": {
-      "name": "version_check",
-      "version": "0.9.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
-          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "version_check",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "version_check",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.9.4"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "walkdir 2.3.2": {
-      "name": "walkdir",
-      "version": "2.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/walkdir/2.3.2/download",
-          "sha256": "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "walkdir",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "walkdir",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "same-file 1.0.6",
-              "target": "same_file"
-            }
-          ],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              },
-              {
-                "id": "winapi-util 0.1.5",
-                "target": "winapi_util"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "2.3.2"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "wasi 0.10.2+wasi-snapshot-preview1": {
-      "name": "wasi",
-      "version": "0.10.2+wasi-snapshot-preview1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download",
-          "sha256": "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.10.2+wasi-snapshot-preview1"
-      },
-      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "consoleapi",
-          "errhandlingapi",
-          "fileapi",
-          "handleapi",
-          "minwinbase",
-          "minwindef",
-          "ntsecapi",
-          "processenv",
-          "profileapi",
-          "shlobj",
-          "std",
-          "timezoneapi",
-          "winbase",
-          "wincon",
-          "winerror",
-          "winnt"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-util 0.1.5": {
-      "name": "winapi-util",
-      "version": "0.1.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-          "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.5"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    }
-  },
-  "binary_crates": [
-    "cargo-lock 7.0.1",
-    "cc 1.0.73",
-    "phf_generator 0.10.0"
-  ],
-  "workspace_members": {
-    "cargo-bazel 0.0.28": "crate_universe",
-    "cross_installer 0.1.0": "crate_universe/tools/cross_installer",
-    "urls_generator 0.1.0": "crate_universe/tools/urls_generator"
-  },
-  "conditions": {
-    "aarch64-apple-darwin": [
-      "aarch64-apple-darwin"
-    ],
-    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(all(target_arch = \"aarch64\", target_os = \"linux\"))": [
-      "aarch64-unknown-linux-gnu"
-    ],
-    "cfg(any(target_arch = \"aarch64\", target_arch = \"x86_64\", target_arch = \"x86\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-pc-windows-msvc",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-pc-windows-msvc",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(any(unix, target_os = \"wasi\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(windows))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(target_arch = \"wasm32\")": [
-      "wasm32-unknown-unknown",
-      "wasm32-wasi"
-    ],
-    "cfg(target_env = \"sgx\")": [],
-    "cfg(target_os = \"fuchsia\")": [],
-    "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"redox\")": [],
-    "cfg(target_os = \"wasi\")": [
-      "wasm32-wasi"
-    ],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "x86_64-pc-windows-gnu": []
-  }
-}
diff --git a/third_party/rules_rust/crate_universe/Cargo.lock b/third_party/rules_rust/crate_universe/Cargo.lock
index a8ec086..7866132 100644
--- a/third_party/rules_rust/crate_universe/Cargo.lock
+++ b/third_party/rules_rust/crate_universe/Cargo.lock
@@ -13,9 +13,9 @@
 
 [[package]]
 name = "anyhow"
-version = "1.0.55"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
 
 [[package]]
 name = "atty"
@@ -93,16 +93,16 @@
 
 [[package]]
 name = "camino"
-version = "1.0.7"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23"
+checksum = "869119e97797867fd90f5e22af7d0bd274bd4635ebb9eb68c04f3f513ae6c412"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "cargo-bazel"
-version = "0.0.28"
+version = "0.4.0"
 dependencies = [
  "anyhow",
  "cargo-lock",
@@ -113,6 +113,8 @@
  "clap",
  "crates-index",
  "hex",
+ "maplit",
+ "normpath",
  "pathdiff",
  "regex",
  "semver",
@@ -122,15 +124,15 @@
  "spectral",
  "tempfile",
  "tera",
- "textwrap 0.14.2",
+ "textwrap",
  "toml",
 ]
 
 [[package]]
 name = "cargo-lock"
-version = "7.0.1"
+version = "8.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fb04b88bd5b2036e30704f95c6ee16f3b5ca3b4ca307da2889d9006648e5c88"
+checksum = "3c4c54d47a4532db3494ef7332c257ab57b02750daae3250d49e01ee55201ce8"
 dependencies = [
  "semver",
  "serde",
@@ -162,9 +164,9 @@
 
 [[package]]
 name = "cargo_toml"
-version = "0.11.4"
+version = "0.11.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e270ef0cd868745878982f7ce470aa898d0d4bb248af67f0cf66f54617913ef"
+checksum = "5809dd3e6444651fd1cdd3dbec71eca438c439a0fcc8081674a14da0afe50185"
 dependencies = [
  "serde",
  "serde_derive",
@@ -182,9 +184,9 @@
 
 [[package]]
 name = "cfg-expr"
-version = "0.10.2"
+version = "0.10.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e068cb2806bbc15b439846dc16c5f89f8599f2c3e4d73d4449d38f9b2f0b6c5"
+checksum = "0aacacf4d96c24b2ad6eb8ee6df040e4f27b0d0b39a5710c30091baa830485db"
 dependencies = [
  "smallvec",
 ]
@@ -231,26 +233,26 @@
 
 [[package]]
 name = "clap"
-version = "3.1.5"
+version = "3.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ced1892c55c910c1219e98d6fc8d71f6bddba7905866ce740066d8bfea859312"
+checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83"
 dependencies = [
  "atty",
  "bitflags",
  "clap_derive",
+ "clap_lex",
  "indexmap",
- "lazy_static",
- "os_str_bytes",
+ "once_cell",
  "strsim",
  "termcolor",
- "textwrap 0.15.0",
+ "textwrap",
 ]
 
 [[package]]
 name = "clap_derive"
-version = "3.1.4"
+version = "3.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16"
+checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
 dependencies = [
  "heck",
  "proc-macro-error",
@@ -260,19 +262,28 @@
 ]
 
 [[package]]
-name = "cpufeatures"
-version = "0.2.1"
+name = "clap_lex"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "crates-index"
-version = "0.18.7"
+version = "0.18.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0044896374c388ccbf1497dad6384bf6111dbcad9d7069506df7450ce9b62ea3"
+checksum = "2519c91ad7a6e3250a64fb71162d2db1afe7bcf826a465f84d2052fd69639b7a"
 dependencies = [
  "git2",
  "hex",
@@ -296,19 +307,19 @@
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.7"
+version = "0.8.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
+checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
 dependencies = [
  "cfg-if",
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
 name = "crypto-common"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
+checksum = "5999502d32b9c48d492abe66392408144895020ec4709e549e840799f3bb74c0"
 dependencies = [
  "generic-array 0.14.5",
  "typenum",
@@ -397,9 +408,9 @@
 
 [[package]]
 name = "getrandom"
-version = "0.2.5"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
 dependencies = [
  "cfg-if",
  "libc",
@@ -408,9 +419,9 @@
 
 [[package]]
 name = "git2"
-version = "0.14.1"
+version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e7d3b96ec1fcaa8431cf04a4f1ef5caafe58d5cf7bcc31f09c1626adddb0ffe"
+checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
 dependencies = [
  "bitflags",
  "libc",
@@ -421,9 +432,9 @@
 
 [[package]]
 name = "globset"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd"
+checksum = "0a1e17342619edbc21a964c2afbeb6c820c6a2560032872f397bb97ea127bd0a"
 dependencies = [
  "aho-corasick",
  "bstr",
@@ -445,9 +456,9 @@
 
 [[package]]
 name = "hashbrown"
-version = "0.11.2"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
 
 [[package]]
 name = "heck"
@@ -519,9 +530,9 @@
 
 [[package]]
 name = "indexmap"
-version = "1.8.0"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
 dependencies = [
  "autocfg",
  "hashbrown",
@@ -538,9 +549,9 @@
 
 [[package]]
 name = "itoa"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
 
 [[package]]
 name = "jobserver"
@@ -559,15 +570,15 @@
 
 [[package]]
 name = "libc"
-version = "0.2.119"
+version = "0.2.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 
 [[package]]
 name = "libgit2-sys"
-version = "0.13.1+1.4.2"
+version = "0.13.4+1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43e598aa7a4faedf1ea1b4608f582b06f0f40211eec551b7ef36019ae3f62def"
+checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
 dependencies = [
  "cc",
  "libc",
@@ -577,9 +588,9 @@
 
 [[package]]
 name = "libz-sys"
-version = "1.1.3"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
 dependencies = [
  "cc",
  "libc",
@@ -589,9 +600,9 @@
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if",
 ]
@@ -610,9 +621,18 @@
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "normpath"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04aaf5e9cb0fbf883cc0423159eacdf96a9878022084b35c462c428cab73bcaf"
+dependencies = [
+ "winapi",
+]
 
 [[package]]
 name = "num"
@@ -652,9 +672,9 @@
 
 [[package]]
 name = "num-integer"
-version = "0.1.44"
+version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 dependencies = [
  "autocfg",
  "num-traits",
@@ -662,9 +682,9 @@
 
 [[package]]
 name = "num-iter"
-version = "0.1.42"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -685,9 +705,9 @@
 
 [[package]]
 name = "num-traits"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
 dependencies = [
  "autocfg",
 ]
@@ -704,9 +724,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.9.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
 
 [[package]]
 name = "opaque-debug"
@@ -716,12 +736,9 @@
 
 [[package]]
 name = "os_str_bytes"
-version = "6.0.0"
+version = "6.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
-dependencies = [
- "memchr",
-]
+checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
 
 [[package]]
 name = "parse-zoneinfo"
@@ -828,9 +845,9 @@
 
 [[package]]
 name = "pkg-config"
-version = "0.3.24"
+version = "0.3.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
 
 [[package]]
 name = "ppv-lite86"
@@ -864,18 +881,18 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.36"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.15"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
 dependencies = [
  "proc-macro2",
 ]
@@ -949,18 +966,18 @@
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.11"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
 name = "regex"
-version = "1.5.4"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -969,9 +986,9 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
 
 [[package]]
 name = "remove_dir_all"
@@ -996,9 +1013,9 @@
 
 [[package]]
 name = "ryu"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
 
 [[package]]
 name = "same-file"
@@ -1011,27 +1028,27 @@
 
 [[package]]
 name = "semver"
-version = "1.0.6"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d"
+checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde"
-version = "1.0.136"
+version = "1.0.138"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.136"
+version = "1.0.138"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
+checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1040,9 +1057,9 @@
 
 [[package]]
 name = "serde_json"
-version = "1.0.79"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
 dependencies = [
  "itoa",
  "ryu",
@@ -1074,9 +1091,9 @@
 
 [[package]]
 name = "siphasher"
-version = "0.3.9"
+version = "0.3.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a86232ab60fa71287d7f2ddae4a7073f6b7aac33631c3015abb556f08c6d0a3e"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
 
 [[package]]
 name = "slug"
@@ -1089,18 +1106,20 @@
 
 [[package]]
 name = "smallvec"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
 
 [[package]]
 name = "smartstring"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea958ad90cacc8ece7f238fde3671e1b350ee1741964edf2a22fd16f60224163"
+checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
 dependencies = [
+ "autocfg",
  "serde",
  "static_assertions",
+ "version_check",
 ]
 
 [[package]]
@@ -1132,13 +1151,13 @@
 
 [[package]]
 name = "syn"
-version = "1.0.86"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -1157,9 +1176,9 @@
 
 [[package]]
 name = "tera"
-version = "1.15.0"
+version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3cac831b615c25bcef632d1cabf864fa05813baad3d526829db18eb70e8b58d"
+checksum = "7c9783d6ff395ae80cf17ed9a25360e7ba37742a79fa8fddabb073c5c7c8856d"
 dependencies = [
  "chrono",
  "chrono-tz",
@@ -1188,9 +1207,9 @@
 
 [[package]]
 name = "textwrap"
-version = "0.14.2"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
 dependencies = [
  "smawk",
  "unicode-linebreak",
@@ -1198,12 +1217,6 @@
 ]
 
 [[package]]
-name = "textwrap"
-version = "0.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
-
-[[package]]
 name = "thread_local"
 version = "1.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1214,9 +1227,9 @@
 
 [[package]]
 name = "tinyvec"
-version = "1.5.1"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 dependencies = [
  "tinyvec_macros",
 ]
@@ -1229,9 +1242,9 @@
 
 [[package]]
 name = "toml"
-version = "0.5.8"
+version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
 dependencies = [
  "serde",
 ]
@@ -1244,15 +1257,15 @@
 
 [[package]]
 name = "ucd-trie"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
+checksum = "89570599c4fe5585de2b388aab47e99f7fa4e9238a1399f707a02e356058141c"
 
 [[package]]
 name = "uncased"
-version = "0.9.6"
+version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5baeed7327e25054889b9bd4f975f32e5f4c5d434042d59ab6cd4142c0a76ed0"
+checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622"
 dependencies = [
  "version_check",
 ]
@@ -1309,9 +1322,15 @@
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
 
 [[package]]
 name = "unicode-linebreak"
@@ -1324,9 +1343,9 @@
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.19"
+version = "0.1.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
 dependencies = [
  "tinyvec",
 ]
@@ -1338,12 +1357,6 @@
 checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
 name = "url"
 version = "2.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1390,9 +1403,9 @@
 
 [[package]]
 name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "winapi"
diff --git a/third_party/rules_rust/crate_universe/Cargo.toml b/third_party/rules_rust/crate_universe/Cargo.toml
index 1fe8d83..dd4103e 100644
--- a/third_party/rules_rust/crate_universe/Cargo.toml
+++ b/third_party/rules_rust/crate_universe/Cargo.toml
@@ -6,7 +6,7 @@
 
 [package]
 name = "cargo-bazel"
-version = "0.0.28"
+version = "0.4.0"
 authors = [
     "Andre Brisco - andre.brisco@protonmail.com",
 ]
@@ -19,25 +19,27 @@
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
 [dependencies]
-anyhow = "1.0.51"
-cargo_metadata = "0.14.1"
-cargo_toml = "0.11.4"
-cargo-lock = "7.0.1"
+anyhow = "1.0.57"
+cargo_metadata = "0.14.2"
+cargo_toml = "0.11.5"
+cargo-lock = "8.0.2"
 cargo-platform = "0.1.2"
-cfg-expr = "0.10.1"
-clap = { version = "3.0.14", features = ["derive", "env"] }
-crates-index = { version = "0.18.5", default-features = false }
+cfg-expr = "0.10.3"
+clap = { version = "3.1.18", features = ["derive", "env"] }
+crates-index = { version = "0.18.8", default-features = false }
 hex = "0.4.3"
+normpath = "0.3"
 pathdiff = "0.2.1"
-regex = "1.5.4"
-semver = "1.0.5"
-serde = "1.0.136"
-serde_json = "1.0.79"
-sha2 = "0.10.1"
-tempfile = "3.2.0"
-tera = "1.15.0"
-textwrap = "0.14.2"
-toml = "0.5.8"
+regex = "1.5.6"
+semver = "1.0.10"
+serde = "1.0.137"
+serde_json = "1.0.81"
+sha2 = "0.10.2"
+tempfile = "3.3.0"
+tera = "1.16.0"
+textwrap = "0.15.0"
+toml = "0.5.9"
 
 [dev-dependencies]
+maplit = "1"
 spectral = "0.6.0"
diff --git a/third_party/rules_rust/crate_universe/DEVELOPMENT.md b/third_party/rules_rust/crate_universe/DEVELOPMENT.md
new file mode 100644
index 0000000..7109112
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/DEVELOPMENT.md
@@ -0,0 +1,33 @@
+# Developing crate_universe
+
+## Bootstrapping
+
+Crate Universe repository rules are backed by a binary called `cargo-bazel`.
+This can be built using cargo by simply changing directories to
+`@rules_rust//crate_universe` and running the following:
+
+```shell
+cargo build --bin=cargo-bazel
+```
+
+It's then recommended to export the `CARGO_BAZEL_GENERATOR_URL` environment
+variable to be a `file://` url to the built binary on disk.
+
+```shell
+export CARGO_BAZEL_GENERATOR_URL=$(pwd)/target/debug/cargo-bazel
+```
+
+From here on, the repository rule can be run
+
+## Using non-release rules_rust
+
+If a project does not get `rules_rust` from a release artifact from the Github
+releases page (e.g. using an archive from a commit or branch) then `cargo-bazel`
+binaries will have to manually be specified for repository rules that consume it.
+It's highly recommended to build `cargo-bazel` binaries yourself and host them
+somewhere the project can safely access them. Without this, repository rules will
+attempt to build the binary using [cargo_bootstrap_repository][cbr] as a fallback.
+This is very time consuming and in no way the recommended workflow for anything
+other than developing `rules_rust` directly.
+
+[cbr]: https://bazelbuild.github.io/rules_rust/cargo.html#cargo_bootstrap_repository
diff --git a/third_party/rules_rust/crate_universe/README.md b/third_party/rules_rust/crate_universe/README.md
index 2654173..300ff4b 100644
--- a/third_party/rules_rust/crate_universe/README.md
+++ b/third_party/rules_rust/crate_universe/README.md
@@ -1,6 +1,6 @@
-# Cargo->Bazel
+# Crate Universe
 
-`cargo->bazel` is a tool used which uses [Cargo][cargo] to generate build targets for [Bazel][bazel].
+`crate_universe` is a collection of tools which use [Cargo][cargo] to generate build targets for [Bazel][bazel].
 
 ## [Documentation][docs]
 
diff --git a/third_party/rules_rust/crate_universe/crates.bzl b/third_party/rules_rust/crate_universe/crates.bzl
deleted file mode 100644
index 40dc413..0000000
--- a/third_party/rules_rust/crate_universe/crates.bzl
+++ /dev/null
@@ -1,68 +0,0 @@
-"""A module defining dependencies of the `cargo-bazel` Rust target"""
-
-load("@rules_rust//rust:defs.bzl", "rust_common")
-load("//crate_universe:defs.bzl", "crate", "crates_repository", "crates_vendor")
-load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
-load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
-load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
-load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
-load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
-
-USE_CRATES_REPOSITORY = False
-
-_REPOSITORY_NAME = "crate_index"
-
-_ANNOTATIONS = {
-    "libgit2-sys": [crate.annotation(
-        gen_build_script = False,
-        deps = ["@libgit2"],
-    )],
-    "libz-sys": [crate.annotation(
-        gen_build_script = False,
-        deps = ["@zlib"],
-    )],
-}
-
-_MANIFESTS = [
-    "@rules_rust//crate_universe:Cargo.toml",
-    "@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
-    "@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
-]
-
-def crate_deps_repository(rust_version = rust_common.default_version, bootstrap = False):
-    """Define dependencies of the `cargo-bazel` Rust target
-
-    Args:
-        rust_version (str, optional): The version of rust to use when generating dependencies.
-        bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
-    """
-    third_party_deps()
-
-    cargo_bazel_bootstrap(rust_version = rust_version)
-
-    if USE_CRATES_REPOSITORY:
-        crates_repository(
-            name = _REPOSITORY_NAME,
-            annotations = _ANNOTATIONS,
-            generator = "@cargo_bazel_bootstrap//:cargo-bazel" if bootstrap else None,
-            lockfile = "@rules_rust//crate_universe:Cargo.Bazel.lock",
-            manifests = _MANIFESTS,
-            rust_version = rust_version,
-        )
-
-    else:
-        _vendor_crate_repositories()
-
-    crates_vendor_deps()
-    cross_installer_deps()
-
-def crate_deps_target(name = "crates_vendor", vendor_path = "crates"):
-    crates_vendor(
-        name = name,
-        repository_name = _REPOSITORY_NAME,
-        annotations = _ANNOTATIONS,
-        manifests = _MANIFESTS,
-        vendor_path = vendor_path,
-        mode = "remote",
-        tags = ["manual"],
-    )
diff --git a/third_party/rules_rust/crate_universe/crates_deps.bzl b/third_party/rules_rust/crate_universe/crates_deps.bzl
deleted file mode 100644
index 5883d50..0000000
--- a/third_party/rules_rust/crate_universe/crates_deps.bzl
+++ /dev/null
@@ -1,8 +0,0 @@
-"""Transitive dependencies of the `cargo-bazel` Rust target"""
-
-load("@crate_index//:defs.bzl", _repository_crate_repositories = "crate_repositories")
-load("//crate_universe:crates.bzl", "USE_CRATES_REPOSITORY")
-
-def crate_repositories():
-    if USE_CRATES_REPOSITORY:
-        _repository_crate_repositories()
diff --git a/third_party/rules_rust/crate_universe/defs.bzl b/third_party/rules_rust/crate_universe/defs.bzl
index 13060e8..095e264 100644
--- a/third_party/rules_rust/crate_universe/defs.bzl
+++ b/third_party/rules_rust/crate_universe/defs.bzl
@@ -1,148 +1,4 @@
-"""# Crate Universe
-
-Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
-
-## Experimental
-
-`crate_universe` is experimental, and may have breaking API changes at any time. These instructions may also change without notice.
-
-## Rules
-
-- [crates_repository](#crates_repository)
-- [crates_vendor](#crates_vendor)
-- [crate.spec](#cratespec)
-- [crate.workspace_member](#crateworkspace_member)
-- [crate.annotation](#crateannotation)
-- [render_config](#render_config)
-- [splicing_config](#splicing_config)
-
-## `crates_repository` Workflows
-
-The [`crates_repository`](#crates_repository) rule (the primary repository rule of `cargo-bazel`) supports a number of different ways users
-can express and organize their dependencies. The most common are listed below though there are more to be found in
-the [./examples/crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/examples/crate_universe) directory.
-
-### Cargo Workspaces
-
-One of the simpler ways to wire up dependencies would be to first structure your project into a [Cargo workspace][cw].
-The `crates_repository` rule can ingest a the root `Cargo.toml` file and generate dependencies from there.
-
-```python
-load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository")
-
-crates_repository(
-    name = "crate_index",
-    lockfile = "//:Cargo.Bazel.lock",
-    manifests = ["//:Cargo.toml"],
-)
-
-load("@crate_index//:defs.bzl", "crate_repositories")
-
-crate_repositories()
-```
-
-The generated `crates_repository` contains helper macros which make collecting dependencies for Bazel targets simpler.
-Notably, the `all_crate_deps` and `aliases` macros commonly allow the `Cargo.toml` files to be the single source of
-truth for dependencies. Since these macros come from the generated repository, the dependencies and alias definitions
-they return will automatically update BUILD targets.
-
-```python
-load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
-load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
-
-rust_library(
-    name = "lib",
-    aliases = aliases(),
-    deps = all_crate_deps(
-        normal = True,
-    ),
-    proc_macro_deps = all_crate_deps(
-        proc_macro = True,
-    ),
-)
-
-rust_test(
-    name = "unit_test",
-    crate = ":lib",
-    aliases = aliases(
-        normal_dev = True,
-        proc_macro_dev = True,
-    ),
-    deps = all_crate_deps(
-        normal_dev = True,
-    ),
-    proc_macro_deps = all_crate_deps(
-        proc_macro_dev = True,
-    ),
-)
-```
-
-### Direct Packages
-
-In cases where Rust targets have heavy interractions with other Bazel targests ([Cc][cc], [Proto][proto], etc.),
-maintaining `Cargo.toml` files may have deminishing returns as things like [rust-analyzer][ra] begin to be confused
-about missing targets or environment variables defined only in Bazel. In workspaces like this, it may be desirable
-to have a "Cargo free" setup. `crates_repository` supports this through the `packages` attribute.
-
-```python
-load("@cargo_bazel//:defs.bzl", "crate", "crates_repository", "render_config")
-
-crates_repository(
-    name = "crate_index",
-    lockfile = "//:Cargo.Bazel.lock",
-    packages = {
-        "async-trait": crate.spec(
-            version = "0.1.51",
-        ),
-        "mockall": crate.spec(
-            version = "0.10.2",
-        ),
-        "tokio": crate.spec(
-            version = "1.12.0",
-        ),
-    },
-    # Setting the default package name to `""` forces the use of the macros defined in this repository
-    # to always use the root package when looking for dependencies or aliases. This should be considered
-    # optional as the repository also exposes alises for easy access to all dependencies.
-    render_config = render_config(
-        default_package_name = ""
-    ),
-)
-
-load("@crate_index//:defs.bzl", "crate_repositories")
-
-crate_repositories()
-```
-
-Consuming dependencies may be more ergonomic in this case through the aliases defined in the new repository.
-
-```python
-load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
-
-rust_library(
-    name = "lib",
-    deps = [
-        "@crate_index//:tokio",
-    ],
-    proc_macro_deps = [
-        "@crate_index//:async-trait",
-    ],
-)
-
-rust_test(
-    name = "unit_test",
-    crate = ":lib",
-    deps = [
-        "@crate_index//:mockall",
-    ],
-)
-```
-
-[cw]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
-[cc]: https://docs.bazel.build/versions/main/be/c-cpp.html
-[proto]: https://rules-proto-grpc.com/en/latest/lang/rust.html
-[ra]: https://rust-analyzer.github.io/
-"""
+"""Crate Universe rules"""
 
 load(
     "//crate_universe/private:crate.bzl",
@@ -165,8 +21,11 @@
     _splicing_config = "splicing_config",
 )
 
-crate = _crate
+# Rules
 crates_repository = _crates_repository
 crates_vendor = _crates_vendor
+
+# Utility Macros
+crate = _crate
 render_config = _render_config
 splicing_config = _splicing_config
diff --git a/third_party/rules_rust/crate_universe/docs.bzl b/third_party/rules_rust/crate_universe/docs.bzl
new file mode 100644
index 0000000..fe5ef83
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/docs.bzl
@@ -0,0 +1,209 @@
+"""# Crate Universe
+
+Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
+
+## Setup
+
+After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
+
+```python
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
+
+crate_universe_dependencies()
+```
+
+Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
+flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
+call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
+
+## Rules
+
+- [crates_repository](#crates_repository)
+- [crates_vendor](#crates_vendor)
+
+## Utility Macros
+
+- [crate_universe_dependencies](#crate_universe_dependencies)
+- [crate.annotation](#crateannotation)
+- [crate.spec](#cratespec)
+- [crate.workspace_member](#crateworkspace_member)
+- [render_config](#render_config)
+- [splicing_config](#splicing_config)
+
+## Workflows
+
+The [`crates_repository`](#crates_repository) rule (the primary repository rule of `rules_rust`'s cargo support) supports a number of different
+ways users can express and organize their dependencies. The most common are listed below though there are more to be found in
+the [./examples/crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/examples/crate_universe) directory.
+
+### Cargo Workspaces
+
+One of the simpler ways to wire up dependencies would be to first structure your project into a [Cargo workspace][cw].
+The `crates_repository` rule can ingest a root `Cargo.toml` file and generate dependencies from there.
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
+
+crates_repository(
+    name = "crate_index",
+    lockfile = "//:Cargo.Bazel.lock",
+    manifests = ["//:Cargo.toml"],
+)
+
+load("@crate_index//:defs.bzl", "crate_repositories")
+
+crate_repositories()
+```
+
+The generated `crates_repository` contains helper macros which make collecting dependencies for Bazel targets simpler.
+Notably, the `all_crate_deps` and `aliases` macros (see [Dependencies API](#dependencies-api)) commonly allow the
+`Cargo.toml` files to be the single source of truth for dependencies. Since these macros come from the generated
+repository, the dependencies and alias definitions they return will automatically update BUILD targets.
+
+```python
+load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
+load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
+
+rust_library(
+    name = "lib",
+    aliases = aliases(),
+    deps = all_crate_deps(
+        normal = True,
+    ),
+    proc_macro_deps = all_crate_deps(
+        proc_macro = True,
+    ),
+)
+
+rust_test(
+    name = "unit_test",
+    crate = ":lib",
+    aliases = aliases(
+        normal_dev = True,
+        proc_macro_dev = True,
+    ),
+    deps = all_crate_deps(
+        normal_dev = True,
+    ),
+    proc_macro_deps = all_crate_deps(
+        proc_macro_dev = True,
+    ),
+)
+```
+
+### Direct Packages
+
+In cases where Rust targets have heavy interractions with other Bazel targests ([Cc][cc], [Proto][proto], etc.),
+maintaining `Cargo.toml` files may have deminishing returns as things like [rust-analyzer][ra] begin to be confused
+about missing targets or environment variables defined only in Bazel. In workspaces like this, it may be desirable
+to have a "Cargo free" setup. `crates_repository` supports this through the `packages` attribute.
+
+```python
+load("@cargo_bazel//:defs.bzl", "crate", "crates_repository", "render_config")
+
+crates_repository(
+    name = "crate_index",
+    lockfile = "//:Cargo.Bazel.lock",
+    packages = {
+        "async-trait": crate.spec(
+            version = "0.1.51",
+        ),
+        "mockall": crate.spec(
+            version = "0.10.2",
+        ),
+        "tokio": crate.spec(
+            version = "1.12.0",
+        ),
+    },
+    # Setting the default package name to `""` forces the use of the macros defined in this repository
+    # to always use the root package when looking for dependencies or aliases. This should be considered
+    # optional as the repository also exposes alises for easy access to all dependencies.
+    render_config = render_config(
+        default_package_name = ""
+    ),
+)
+
+load("@crate_index//:defs.bzl", "crate_repositories")
+
+crate_repositories()
+```
+
+Consuming dependencies may be more ergonomic in this case through the aliases defined in the new repository.
+
+```python
+load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
+
+rust_library(
+    name = "lib",
+    deps = [
+        "@crate_index//:tokio",
+    ],
+    proc_macro_deps = [
+        "@crate_index//:async-trait",
+    ],
+)
+
+rust_test(
+    name = "unit_test",
+    crate = ":lib",
+    deps = [
+        "@crate_index//:mockall",
+    ],
+)
+```
+
+## Dependencies API
+
+After rendering dependencies, convenience macros may also be generated to provide
+convenient accessors to larger sections of the dependency graph.
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+---
+
+---
+
+[cw]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
+[cc]: https://docs.bazel.build/versions/main/be/c-cpp.html
+[proto]: https://rules-proto-grpc.com/en/latest/lang/rust.html
+[ra]: https://rust-analyzer.github.io/
+"""
+
+load(
+    "//crate_universe:defs.bzl",
+    _crate = "crate",
+    _crates_repository = "crates_repository",
+    _crates_vendor = "crates_vendor",
+    _render_config = "render_config",
+    _splicing_config = "splicing_config",
+)
+load(
+    "//crate_universe:repositories.bzl",
+    _crate_universe_dependencies = "crate_universe_dependencies",
+)
+load(
+    "//crate_universe/3rdparty/crates:defs.bzl",
+    _aliases = "aliases",
+    _all_crate_deps = "all_crate_deps",
+    _crate_deps = "crate_deps",
+    _crate_repositories = "crate_repositories",
+)
+
+# Rules
+crates_repository = _crates_repository
+crates_vendor = _crates_vendor
+
+# Utility Macros
+crate_universe_dependencies = _crate_universe_dependencies
+crate = _crate
+render_config = _render_config
+splicing_config = _splicing_config
+
+# Dependencies API
+aliases = _aliases
+all_crate_deps = _all_crate_deps
+crate_deps = _crate_deps
+crate_repositories = _crate_repositories
diff --git a/third_party/rules_rust/crate_universe/private/BUILD.bazel b/third_party/rules_rust/crate_universe/private/BUILD.bazel
index 39f0969..0b41b53 100644
--- a/third_party/rules_rust/crate_universe/private/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/private/BUILD.bazel
@@ -14,11 +14,3 @@
     name = "bzl_srcs",
     srcs = glob(["*.bzl"]),
 )
-
-filegroup(
-    name = "distro",
-    srcs = glob(["*.bzl"]) + [
-        "BUILD.bazel",
-        "//crate_universe/private/vendor:distro",
-    ],
-)
diff --git a/third_party/rules_rust/crate_universe/private/common_utils.bzl b/third_party/rules_rust/crate_universe/private/common_utils.bzl
index ae65b63..8faa7e7 100644
--- a/third_party/rules_rust/crate_universe/private/common_utils.bzl
+++ b/third_party/rules_rust/crate_universe/private/common_utils.bzl
@@ -1,15 +1,19 @@
 """Common utilities useful for unifying the behavior of different parts of `cargo-bazel`."""
 
 # buildifier: disable=bzl-visibility
-load(
-    "//cargo/private:cargo_utils.bzl",
-    _get_host_triple = "get_host_triple",
-    _rust_get_rust_tools = "get_rust_tools",
-)
+load("//cargo/private:cargo_utils.bzl", _rust_get_rust_tools = "get_rust_tools")
+load("//rust/platform:triple.bzl", _get_host_triple = "get_host_triple")
 
 get_host_triple = _get_host_triple
 
 CARGO_BAZEL_ISOLATED = "CARGO_BAZEL_ISOLATED"
+CARGO_BAZEL_REPIN = "CARGO_BAZEL_REPIN"
+REPIN = "REPIN"
+
+REPIN_ENV_VARS = [
+    CARGO_BAZEL_REPIN,
+    REPIN,
+]
 
 _EXECUTE_ERROR_MESSAGE = """\
 Command {args} failed with exit code {exit_code}.
diff --git a/third_party/rules_rust/crate_universe/private/crate.bzl b/third_party/rules_rust/crate_universe/private/crate.bzl
index 611bf62..caa9091 100644
--- a/third_party/rules_rust/crate_universe/private/crate.bzl
+++ b/third_party/rules_rust/crate_universe/private/crate.bzl
@@ -65,11 +65,13 @@
         additive_build_file = None,
         additive_build_file_content = None,
         build_script_data = None,
+        build_script_tools = None,
         build_script_data_glob = None,
         build_script_deps = None,
         build_script_env = None,
         build_script_proc_macro_deps = None,
         build_script_rustc_env = None,
+        build_script_toolchains = None,
         compile_data = None,
         compile_data_glob = None,
         crate_features = None,
@@ -93,6 +95,7 @@
         additive_build_file (str, optional): A file containing extra contents to write to the bottom of
             generated BUILD files.
         build_script_data (list, optional): A list of labels to add to a crate's `cargo_build_script::data` attribute.
+        build_script_tools (list, optional): A list of labels to add to a crate's `cargo_build_script::tools` attribute.
         build_script_data_glob (list, optional): A list of glob patterns to add to a crate's `cargo_build_script::data`
             attribute.
         build_script_deps (list, optional): A list of labels to add to a crate's `cargo_build_script::deps` attribute.
@@ -102,6 +105,7 @@
             `cargo_build_script::proc_macro_deps` attribute.
         build_script_rustc_env (dict, optional): Additional environment variables to set on a crate's
             `cargo_build_script::env` attribute.
+        build_script_toolchains (list, optional): A list of labels to set on a crates's `cargo_build_script::toolchains` attribute.
         compile_data (list, optional): A list of labels to add to a crate's `rust_library::compile_data` attribute.
         compile_data_glob (list, optional): A list of glob patterns to add to a crate's `rust_library::compile_data`
             attribute.
@@ -142,11 +146,13 @@
             additive_build_file = additive_build_file,
             additive_build_file_content = additive_build_file_content,
             build_script_data = build_script_data,
+            build_script_tools = build_script_tools,
             build_script_data_glob = build_script_data_glob,
             build_script_deps = build_script_deps,
             build_script_env = build_script_env,
             build_script_proc_macro_deps = build_script_proc_macro_deps,
             build_script_rustc_env = build_script_rustc_env,
+            build_script_toolchains = build_script_toolchains,
             compile_data = compile_data,
             compile_data_glob = compile_data_glob,
             crate_features = crate_features,
diff --git a/third_party/rules_rust/crate_universe/private/crates_repository.bzl b/third_party/rules_rust/crate_universe/private/crates_repository.bzl
index 92def09..f429108 100644
--- a/third_party/rules_rust/crate_universe/private/crates_repository.bzl
+++ b/third_party/rules_rust/crate_universe/private/crates_repository.bzl
@@ -1,6 +1,6 @@
 """`crates_repository` rule implementation"""
 
-load("//crate_universe/private:common_utils.bzl", "get_host_triple", "get_rust_tools")
+load("//crate_universe/private:common_utils.bzl", "get_rust_tools")
 load(
     "//crate_universe/private:generate_utils.bzl",
     "CRATES_REPOSITORY_ENVIRON",
@@ -8,7 +8,7 @@
     "execute_generator",
     "generate_config",
     "get_generator",
-    "get_lockfile",
+    "get_lockfiles",
 )
 load(
     "//crate_universe/private:splicing_utils.bzl",
@@ -17,6 +17,7 @@
 )
 load("//crate_universe/private:urls.bzl", "CARGO_BAZEL_SHA256S", "CARGO_BAZEL_URLS")
 load("//rust:defs.bzl", "rust_common")
+load("//rust/platform:triple.bzl", "get_host_triple")
 load("//rust/platform:triple_mappings.bzl", "SUPPORTED_PLATFORM_TRIPLES")
 
 def _crates_repository_impl(repository_ctx):
@@ -24,13 +25,13 @@
     host_triple = get_host_triple(repository_ctx)
 
     # Locate the generator to use
-    generator, generator_sha256 = get_generator(repository_ctx, host_triple.triple)
+    generator, generator_sha256 = get_generator(repository_ctx, host_triple.str)
 
     # Generate a config file for all settings
-    config = generate_config(repository_ctx)
+    config_path = generate_config(repository_ctx)
 
-    # Locate the lockfile
-    lockfile = get_lockfile(repository_ctx)
+    # Locate the lockfiles
+    lockfiles = get_lockfiles(repository_ctx)
 
     # Locate Rust tools (cargo, rustc)
     tools = get_rust_tools(repository_ctx, host_triple)
@@ -44,9 +45,8 @@
     repin = determine_repin(
         repository_ctx = repository_ctx,
         generator = generator,
-        lockfile_path = lockfile.path,
-        lockfile_kind = lockfile.kind,
-        config = config.path,
+        lockfile_path = lockfiles.bazel,
+        config = config_path,
         splicing_manifest = splicing_manifest,
         cargo = cargo_path,
         rustc = rustc_path,
@@ -54,12 +54,12 @@
 
     # If re-pinning is enabled, gather additional inputs for the generator
     kwargs = dict()
-    if repin or lockfile.kind == "cargo":
+    if repin:
         # Generate a top level Cargo workspace and manifest for use in generation
         metadata_path = splice_workspace_manifest(
             repository_ctx = repository_ctx,
             generator = generator,
-            lockfile = lockfile,
+            cargo_lockfile = lockfiles.cargo,
             splicing_manifest = splicing_manifest,
             cargo = cargo_path,
             rustc = rustc_path,
@@ -67,17 +67,16 @@
 
         kwargs.update({
             "metadata": metadata_path,
-            "repin": True,
         })
 
     # Run the generator
     execute_generator(
         repository_ctx = repository_ctx,
         generator = generator,
-        config = config.path,
+        config = config_path,
         splicing_manifest = splicing_manifest,
-        lockfile_path = lockfile.path,
-        lockfile_kind = lockfile.kind,
+        lockfile_path = lockfiles.bazel,
+        cargo_lockfile_path = lockfiles.cargo,
         repository_dir = repository_ctx.path("."),
         cargo = cargo_path,
         rustc = rustc_path,
@@ -97,11 +96,17 @@
     if generator_sha256:
         attrs.update({"generator_sha256s": generator_sha256})
 
+    # Inform users that the repository rule can be made deterministic if they
+    # add a label to a lockfile path specifically for Bazel.
+    if not lockfiles.bazel:
+        attrs.update({"lockfile": repository_ctx.attr.cargo_lockfile.relative("cargo-bazel-lock.json")})
+
     return attrs
 
 crates_repository = repository_rule(
     doc = """\
-A rule for defining and downloading Rust dependencies (crates).
+A rule for defining and downloading Rust dependencies (crates). This rule
+handles all the same [workflows](#workflows) `crate_universe` rules do.
 
 Environment Variables:
 
@@ -110,28 +115,94 @@
 | `CARGO_BAZEL_GENERATOR_SHA256` | The sha256 checksum of the file located at `CARGO_BAZEL_GENERATOR_URL` |
 | `CARGO_BAZEL_GENERATOR_URL` | The URL of a cargo-bazel binary. This variable takes precedence over attributes and can use `file://` for local paths |
 | `CARGO_BAZEL_ISOLATED` | An authorative flag as to whether or not the `CARGO_HOME` environment variable should be isolated from the host configuration |
-| `CARGO_BAZEL_REPIN` | An indicator that the dependencies represented by the rule should be regenerated. `REPIN` may also be used. |
+| `CARGO_BAZEL_REPIN` | An indicator that the dependencies represented by the rule should be regenerated. `REPIN` may also be used. See [Repinning / Updating Dependencies](#crates_repository_repinning_updating_dependencies) for more details. |
+
+Example:
+
+Given the following workspace structure:
+
+```text
+[workspace]/
+    WORKSPACE
+    BUILD
+    Cargo.toml
+    Cargo.Bazel.lock
+    src/
+        main.rs
+```
+
+The following is something that'd be found in the `WORKSPACE` file:
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository", "crate")
+
+crates_repository(
+    name = "crate_index",
+    annotations = annotations = {
+        "rand": [crate.annotation(
+            default_features = False,
+            features = ["small_rng"],
+        )],
+    },
+    cargo_lockfile = "//:Cargo.Bazel.lock",
+    lockfile = "//:cargo-bazel-lock.json",
+    manifests = ["//:Cargo.toml"],
+    # Should match the version represented by the currently registered `rust_toolchain`.
+    rust_version = "1.60.0",
+)
+```
+
+The above will create an external repository which contains aliases and macros for accessing
+Rust targets found in the dependency graph defined by the given manifests.
+
+**NOTE**: The `lockfile` must be manually created. The rule unfortunately does not yet create
+it on its own. When initially setting up this rule, an empty file should be created and then
+populated by repinning dependencies.
+
+<a id="#crates_repository_repinning_updating_dependencies"></a>
+
+### Repinning / Updating Dependencies
+
+Dependency syncing and updating is done in the repository rule which means it's done during the
+analysis phase of builds. As mentioned in the environments variable table above, the `CARGO_BAZEL_REPIN`
+(or `REPIN`) environment variables can be used to force the rule to update dependencies and potentially
+render a new lockfile. Given an instance of this repository rule named `crate_index`, the easiest way to
+repin dependencies is to run:
+
+```shell
+CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index
+```
+
+This will result in all dependencies being updated for a project. The `CARGO_BAZEL_REPIN` environment variable
+can also be used to customize how dependencies are updated. The following table shows translations from environment
+variable values to the equivilant [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html) command
+that is called behind the scenes to update dependencies.
+
+| Value | Cargo command |
+| --- | --- |
+| Any of [`true`, `1`, `yes`, `on`] | `cargo update` |
+| `workspace` | `cargo update --workspace` |
+| `package_name` | `cargo upgrade --package package_name` |
+| `package_name@1.2.3` | `cargo upgrade --package package_name --precise 1.2.3` |
 
 """,
     implementation = _crates_repository_impl,
     attrs = {
         "annotations": attr.string_list_dict(
-            doc = "Extra settings to apply to crates. See [crate.annotations](#crateannotations).",
+            doc = "Extra settings to apply to crates. See [crate.annotation](#crateannotation).",
         ),
         "cargo_config": attr.label(
             doc = "A [Cargo configuration](https://doc.rust-lang.org/cargo/reference/config.html) file",
         ),
-        "extra_workspace_member_url_template": attr.string(
-            doc = "The registry url to use when fetching extra workspace members",
-            default = "https://crates.io/api/v1/crates/{name}/{version}/download",
-        ),
-        "extra_workspace_members": attr.string_dict(
+        "cargo_lockfile": attr.label(
             doc = (
-                "Additional crates to download and include as a workspace member. This is unfortunately required in " +
-                "order to add information about \"binary-only\" crates so that a `rust_binary` may be generated for " +
-                "it. [rust-lang/cargo#9096](https://github.com/rust-lang/cargo/issues/9096) tracks an RFC which may " +
-                "solve for this."
+                "The path used to store the `crates_repository` specific " +
+                "[Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) file. " +
+                "In the case that your `crates_repository` corresponds directly with an existing " +
+                "`Cargo.toml` file which has a paired `Cargo.lock` file, that `Cargo.lock` file " +
+                "should be used here, which will keep the versions used by cargo and bazel in sync."
             ),
+            mandatory = True,
         ),
         "generate_build_scripts": attr.bool(
             doc = (
@@ -169,27 +240,9 @@
         ),
         "lockfile": attr.label(
             doc = (
-                "The path to a file to use for reproducible renderings. Two kinds of lock files are supported, " +
-                "Cargo (`Cargo.lock` files) and Bazel (custom files generated by this rule, naming is irrelevant). " +
-                "Bazel lockfiles should be the prefered kind as they're desigend with Bazel's notions of " +
-                "reporducibility in mind. Cargo lockfiles can be used in cases where it's intended to be the " +
-                "source of truth, but more work will need to be done to generate BUILD files which are not " +
-                "guaranteed to be determinsitic."
+                "The path to a file to use for reproducible renderings. " +
+                "If set, this file must exist within the workspace (but can be empty) before this rule will work."
             ),
-            mandatory = True,
-        ),
-        "lockfile_kind": attr.string(
-            doc = (
-                "Two different kinds of lockfiles are supported, the custom \"Bazel\" lockfile, which is generated " +
-                "by this rule, and Cargo lockfiles (`Cargo.lock`). This attribute allows for explicitly defining " +
-                "the type in cases where it may not be auto-detectable."
-            ),
-            values = [
-                "auto",
-                "bazel",
-                "cargo",
-            ],
-            default = "auto",
         ),
         "manifests": attr.label_list(
             doc = "A list of Cargo manifests (`Cargo.toml` files).",
@@ -214,7 +267,7 @@
                 "`{system}` (eg. 'darwin'), `{cfg}` (eg. 'exec'), and `{tool}` (eg. 'rustc.exe') will be replaced in " +
                 "the string if present."
             ),
-            default = "@rust_{system}_{arch}//:bin/{tool}",
+            default = "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}",
         ),
         "rust_toolchain_rustc_template": attr.string(
             doc = (
@@ -223,7 +276,7 @@
                 "`{system}` (eg. 'darwin'), `{cfg}` (eg. 'exec'), and `{tool}` (eg. 'cargo.exe') will be replaced in " +
                 "the string if present."
             ),
-            default = "@rust_{system}_{arch}//:bin/{tool}",
+            default = "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}",
         ),
         "rust_version": attr.string(
             doc = "The version of Rust the currently registered toolchain is using. Eg. `1.56.0`, or `nightly-2021-09-08`",
diff --git a/third_party/rules_rust/crate_universe/private/crates_vendor.bzl b/third_party/rules_rust/crate_universe/private/crates_vendor.bzl
index 11cfaa1..021ffc3 100644
--- a/third_party/rules_rust/crate_universe/private/crates_vendor.bzl
+++ b/third_party/rules_rust/crate_universe/private/crates_vendor.bzl
@@ -1,6 +1,6 @@
 """Rules for vendoring Bazel targets into existing workspaces"""
 
-load("//crate_universe/private:generate_utils.bzl", "collect_crate_annotations", "render_config")
+load("//crate_universe/private:generate_utils.bzl", "compile_config", "render_config")
 load("//crate_universe/private:splicing_utils.bzl", "kebab_case_keys", "splicing_config")
 load("//crate_universe/private:urls.bzl", "CARGO_BAZEL_LABEL")
 load("//rust/platform:triple_mappings.bzl", "SUPPORTED_PLATFORM_TRIPLES")
@@ -9,7 +9,10 @@
 #!/usr/bin/env bash
 set -euo pipefail
 export RUNTIME_PWD="$(pwd)"
-eval exec env - BUILD_WORKSPACE_DIRECTORY="${{BUILD_WORKSPACE_DIRECTORY}}" {env} \\
+if [[ -z "${{BAZEL_REAL:-}}" ]]; then
+    BAZEL_REAL="$(which bazel || echo 'bazel')"
+fi
+eval exec env - BAZEL_REAL="${{BAZEL_REAL}}" BUILD_WORKSPACE_DIRECTORY="${{BUILD_WORKSPACE_DIRECTORY}}" {env} \\
 "{bin}" {args} "$@"
 """
 
@@ -33,7 +36,7 @@
     return "{}/{}".format(runtime_pwd_var, path)
 
 def _is_windows(ctx):
-    toolchain = ctx.toolchains[Label("@rules_rust//rust:toolchain")]
+    toolchain = ctx.toolchains[Label("@rules_rust//rust:toolchain_type")]
     return "windows" in toolchain.target_triple
 
 def _get_output_package(ctx):
@@ -55,6 +58,35 @@
     )
     return file
 
+def _prepare_manifest_path(target):
+    """Generate manifest paths that are resolvable by `cargo_bazel::SplicingManifest::resolve`
+
+    Args:
+        target (Target): A `crate_vendor.manifest` target
+
+    Returns:
+        str: A string representing the path to a manifest.
+    """
+    files = target[DefaultInfo].files.to_list()
+    if len(files) != 1:
+        fail("The manifest {} hand an unexpected number of files: {}".format(
+            target.label,
+            files,
+        ))
+
+    manifest = files[0]
+
+    if target.label.workspace_root.startswith("external"):
+        # The short path of an external file is expected to start with `../`
+        if not manifest.short_path.startswith("../"):
+            fail("Unexpected shortpath for {}: {}".format(
+                manifest,
+                manifest.short_path,
+            ))
+        return manifest.short_path.replace("../", "${output_base}/external/", 1)
+
+    return "${build_workspace_directory}/" + manifest.short_path
+
 def _write_splicing_manifest(ctx):
     # Deserialize information about direct packges
     direct_packages_info = {
@@ -64,12 +96,11 @@
     }
 
     # Manifests are required to be single files
-    manifests = {m[DefaultInfo].files.to_list()[0].short_path: str(m.label) for m in ctx.attr.manifests}
+    manifests = {_prepare_manifest_path(m): str(m.label) for m in ctx.attr.manifests}
 
     config = json.decode(ctx.attr.splicing_config or splicing_config())
     splicing_manifest_content = {
-        # TODO: How do cargo config files get factored into vendored builds
-        "cargo_config": None,
+        "cargo_config": _prepare_manifest_path(ctx.attr.cargo_config) if ctx.attr.cargo_config else None,
         "direct_packages": direct_packages_info,
         "manifests": manifests,
     }
@@ -86,33 +117,15 @@
     is_windows = _is_windows(ctx)
 
     args = ["--splicing-manifest", _runfiles_path(manifest.short_path, is_windows)]
-    runfiles = [manifest]
-    return args, runfiles
-
-def _write_extra_manifests_manifest(ctx):
-    manifest = _write_data_file(
-        ctx = ctx,
-        name = "cargo-bazel-extra-manifests-manifest.json",
-        data = json.encode(struct(
-            # TODO: This is for extra workspace members
-            manifests = [],
-        )),
-    )
-    is_windows = _is_windows(ctx)
-    args = ["--extra-manifests-manifest", _runfiles_path(manifest.short_path, is_windows)]
-    runfiles = [manifest]
+    runfiles = [manifest] + ctx.files.manifests + ([ctx.file.cargo_config] if ctx.attr.cargo_config else [])
     return args, runfiles
 
 def _write_config_file(ctx):
-    annotations = collect_crate_annotations(ctx.attr.annotations, str(ctx.label))
-    unexpected = []
-    for id, annotation in annotations.items():
-        if annotation.get("additive_build_file", None):
-            unexpected.append(id)
-    if unexpected:
-        fail("The following annotations use `additive_build_file` which is not supported for `crates_vendor`: {}".format(unexpected))
-
-    rendering_config = dict(json.decode(render_config()))
+    rendering_config = dict(json.decode(render_config(
+        regen_command = "bazel run {}".format(
+            ctx.label,
+        ),
+    )))
 
     output_pkg = _get_output_package(ctx)
 
@@ -135,16 +148,16 @@
             ctx.workspace_name,
             output_pkg,
         ),
-        "repository_name": ctx.attr.repository_name or ctx.label.name,
         "vendor_mode": ctx.attr.mode,
     })
 
-    config_data = struct(
-        annotations = annotations,
-        rendering = rendering_config,
+    config_data = compile_config(
+        crate_annotations = ctx.attr.annotations,
         generate_build_scripts = ctx.attr.generate_build_scripts,
         cargo_config = None,
+        render_config = rendering_config,
         supported_platform_triples = ctx.attr.supported_platform_triples,
+        repository_name = ctx.attr.repository_name or ctx.label.name,
     )
 
     config = _write_data_file(
@@ -162,7 +175,7 @@
     return args, runfiles
 
 def _crates_vendor_impl(ctx):
-    toolchain = ctx.toolchains[Label("@rules_rust//rust:toolchain")]
+    toolchain = ctx.toolchains[Label("@rules_rust//rust:toolchain_type")]
     is_windows = _is_windows(ctx)
 
     environ = {
@@ -196,10 +209,13 @@
     args.extend(splicing_manifest_args)
     cargo_bazel_runfiles.extend(splicing_manifest_runfiles)
 
-    # Generate extra-manifests manifest
-    extra_manifests_manifest_args, extra_manifests_manifest_runfiles = _write_extra_manifests_manifest(ctx)
-    args.extend(extra_manifests_manifest_args)
-    cargo_bazel_runfiles.extend(extra_manifests_manifest_runfiles)
+    # Add an optional `Cargo.lock` file.
+    if ctx.attr.cargo_lockfile:
+        args.extend([
+            "--cargo-lockfile",
+            _runfiles_path(ctx.file.cargo_lockfile.short_path, is_windows),
+        ])
+        cargo_bazel_runfiles.extend([ctx.file.cargo_lockfile])
 
     # Optionally include buildifier
     if ctx.attr.buildifier:
@@ -239,10 +255,81 @@
 
 crates_vendor = rule(
     implementation = _crates_vendor_impl,
-    doc = "A rule for defining Rust dependencies (crates) and writing targets for them to the current workspace",
+    doc = """\
+A rule for defining Rust dependencies (crates) and writing targets for them to the current workspace.
+This rule is useful for users whose workspaces are expected to be consumed in other workspaces as the
+rendered `BUILD` files reduce the number of workspace dependencies, allowing for easier loads. This rule
+handles all the same [workflows](#workflows) `crate_universe` rules do.
+
+Example: 
+
+Given the following workspace structure:
+
+```text
+[workspace]/
+    WORKSPACE
+    BUILD
+    Cargo.toml
+    3rdparty/
+        BUILD
+    src/
+        main.rs
+```
+
+The following is something that'd be found in `3rdparty/BUILD`:
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_vendor", "crate")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "rand": [crate.annotation(
+            default_features = False,
+            features = ["small_rng"],
+        )],
+    },
+    cargo_lockfile = "//:Cargo.Bazel.lock",
+    manifests = ["//:Cargo.toml"],
+    mode = "remote",
+    vendor_path = "crates",
+    tags = ["manual"],
+)
+```
+
+The above creates a target that can be run to write `BUILD` files into the `3rdparty`
+directory next to where the target is defined. To run it, simply call:
+
+```shell
+bazel run //3rdparty:crates_vendor
+```
+
+<a id="#crates_vendor_repinning_updating_dependencies"></a>
+
+### Repinning / Updating Dependencies
+
+Repinning dependencies is controlled by both the `CARGO_BAZEL_REPIN` environment variable or the `--repin`
+flag to the `crates_vendor` binary. To update dependencies, simply add the flag ro your `bazel run` invocation.
+
+```shell
+bazel run //3rdparty:crates_vendor -- --repin
+```
+
+Under the hood, `--repin` will trigger a [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html)
+call against the generated workspace. The following table describes how to controll particular values passed to the
+`cargo update` command.
+
+| Value | Cargo command |
+| --- | --- |
+| Any of [`true`, `1`, `yes`, `on`] | `cargo update` |
+| `workspace` | `cargo update --workspace` |
+| `package_name` | `cargo upgrade --package package_name` |
+| `package_name@1.2.3` | `cargo upgrade --package package_name --precise 1.2.3` |
+
+""",
     attrs = {
         "annotations": attr.string_list_dict(
-            doc = "Extra settings to apply to crates. See [crate.annotations](#crateannotations).",
+            doc = "Extra settings to apply to crates. See [crate.annotation](#crateannotation).",
         ),
         "buildifier": attr.label(
             doc = "The path to a [buildifier](https://github.com/bazelbuild/buildtools/blob/5.0.1/buildifier/README.md) binary used to format generated BUILD files.",
@@ -260,6 +347,14 @@
             allow_files = True,
             default = CARGO_BAZEL_LABEL,
         ),
+        "cargo_config": attr.label(
+            doc = "A [Cargo configuration](https://doc.rust-lang.org/cargo/reference/config.html) file.",
+            allow_single_file = True,
+        ),
+        "cargo_lockfile": attr.label(
+            doc = "The path to an existing `Cargo.lock` file",
+            allow_single_file = True,
+        ),
         "generate_build_scripts": attr.bool(
             doc = (
                 "Whether or not to generate " +
@@ -305,7 +400,7 @@
         ),
     },
     executable = True,
-    toolchains = ["@rules_rust//rust:toolchain"],
+    toolchains = ["@rules_rust//rust:toolchain_type"],
 )
 
 def _crates_vendor_remote_repository_impl(repository_ctx):
diff --git a/third_party/rules_rust/crate_universe/private/generate_utils.bzl b/third_party/rules_rust/crate_universe/private/generate_utils.bzl
index 91e8c6e..469cb22 100644
--- a/third_party/rules_rust/crate_universe/private/generate_utils.bzl
+++ b/third_party/rules_rust/crate_universe/private/generate_utils.bzl
@@ -1,22 +1,15 @@
 """Utilities directly related to the `generate` step of `cargo-bazel`."""
 
-load(":common_utils.bzl", "CARGO_BAZEL_ISOLATED", "cargo_environ", "execute")
+load(":common_utils.bzl", "CARGO_BAZEL_ISOLATED", "REPIN_ENV_VARS", "cargo_environ", "execute")
 
 CARGO_BAZEL_GENERATOR_SHA256 = "CARGO_BAZEL_GENERATOR_SHA256"
 CARGO_BAZEL_GENERATOR_URL = "CARGO_BAZEL_GENERATOR_URL"
-CARGO_BAZEL_REPIN = "CARGO_BAZEL_REPIN"
-REPIN = "REPIN"
 
 GENERATOR_ENV_VARS = [
     CARGO_BAZEL_GENERATOR_URL,
     CARGO_BAZEL_GENERATOR_SHA256,
 ]
 
-REPIN_ENV_VARS = [
-    REPIN,
-    CARGO_BAZEL_REPIN,
-]
-
 CRATES_REPOSITORY_ENVIRON = GENERATOR_ENV_VARS + REPIN_ENV_VARS + [
     CARGO_BAZEL_ISOLATED,
 ]
@@ -92,6 +85,7 @@
         crates_module_template = "//:{file}",
         default_package_name = None,
         platforms_template = "@rules_rust//rust/platform:{triple}",
+        regen_command = None,
         vendor_mode = None):
     """Various settings used to configure rendered outputs
 
@@ -116,11 +110,12 @@
             available format keys are [`{repository}`, `{name}`, `{version}`].
         crates_module_template (str, optional): The pattern to use for the `defs.bzl` and `BUILD.bazel`
             file names used for the crates module. The available format keys are [`{file}`].
-        default_package_name (str, optional): The default package name to in the rendered macros. This affects the
+        default_package_name (str, optional): The default package name to use in the rendered macros. This affects the
             auto package detection of things like `all_crate_deps`.
         platforms_template (str, optional): The base template to use for platform names.
             See [platforms documentation](https://docs.bazel.build/versions/main/platforms.html). The available format
             keys are [`{triple}`].
+        regen_command (str, optional): An optional command to demonstrate how generated files should be regenerated.
         vendor_mode (str, optional): An optional configuration for rendirng content to be rendered into repositories.
 
     Returns:
@@ -133,6 +128,7 @@
         crates_module_template = crates_module_template,
         default_package_name = default_package_name,
         platforms_template = platforms_template,
+        regen_command = regen_command,
         vendor_mode = vendor_mode,
     ))
 
@@ -182,16 +178,85 @@
         return repository_ctx.read(config)
     return None
 
+def _update_render_config(config, repository_name):
+    """Add the repository name to the render config
+
+    Args:
+        config (dict): A `render_config` struct
+        repository_name (str): The name of the repository that owns the config
+
+    Returns:
+        struct: An updated `render_config`.
+    """
+
+    # Add the repository name as it's very relevant to rendering.
+    config.update({"repository_name": repository_name})
+
+    return struct(**config)
+
 def _get_render_config(repository_ctx):
     if repository_ctx.attr.render_config:
         config = dict(json.decode(repository_ctx.attr.render_config))
     else:
         config = dict(json.decode(render_config()))
 
-    # Add the repository name as it's very relevant to rendering.
-    config.update({"repository_name": repository_ctx.name})
+    if not config.get("regen_command"):
+        config["regen_command"] = "bazel sync --only={}".format(
+            repository_ctx.name,
+        )
 
-    return struct(**config)
+    return config
+
+def compile_config(crate_annotations, generate_build_scripts, cargo_config, render_config, supported_platform_triples, repository_name, repository_ctx = None):
+    """Create a config file for generating crate targets
+
+    [cargo_config]: https://doc.rust-lang.org/cargo/reference/config.html
+
+    Args:
+        crate_annotations (dict): Extra settings to apply to crates. See
+            `crates_repository.annotations` or `crates_vendor.annotations`.
+        generate_build_scripts (bool): Whether or not to globally disable build scripts.
+        cargo_config (str): The optional contents of a [Cargo config][cargo_config].
+        render_config (dict): The deserialized dict of the `render_config` function.
+        supported_platform_triples (list): A list of platform triples
+        repository_name (str): The name of the repository being generated
+        repository_ctx (repository_ctx, optional): A repository context object used for enabling
+            certain functionality.
+
+    Returns:
+        struct: A struct matching a `cargo_bazel::config::Config`.
+    """
+    annotations = collect_crate_annotations(crate_annotations, repository_name)
+
+    # Load additive build files if any have been provided.
+    unexpected = []
+    for name, data in annotations.items():
+        f = data.pop("additive_build_file", None)
+        if f and not repository_ctx:
+            unexpected.append(name)
+            f = None
+        content = [x for x in [
+            data.pop("additive_build_file_content", None),
+            repository_ctx.read(Label(f)) if f else None,
+        ] if x]
+        if content:
+            data.update({"additive_build_file_content": "\n".join(content)})
+
+    if unexpected:
+        fail("The following annotations use `additive_build_file` which is not supported for {}: {}".format(repository_name, unexpected))
+
+    config = struct(
+        generate_build_scripts = generate_build_scripts,
+        annotations = annotations,
+        cargo_config = cargo_config,
+        rendering = _update_render_config(
+            config = render_config,
+            repository_name = repository_name,
+        ),
+        supported_platform_triples = supported_platform_triples,
+    )
+
+    return config
 
 def generate_config(repository_ctx):
     """Generate a config file from various attributes passed to the rule.
@@ -202,26 +267,15 @@
     Returns:
         struct: A struct containing the path to a config and it's contents
     """
-    annotations = collect_crate_annotations(repository_ctx.attr.annotations, repository_ctx.name)
 
-    # Load additive build files if any have been provided.
-    content = list()
-    for data in annotations.values():
-        additive_build_file_content = data.pop("additive_build_file_content", None)
-        if additive_build_file_content:
-            content.append(additive_build_file_content)
-        additive_build_file = data.pop("additive_build_file", None)
-        if additive_build_file:
-            file_path = repository_ctx.path(Label(additive_build_file))
-            content.append(repository_ctx.read(file_path))
-        data.update({"additive_build_file_content": "\n".join(content) if content else None})
-
-    config = struct(
+    config = compile_config(
+        crate_annotations = repository_ctx.attr.annotations,
         generate_build_scripts = repository_ctx.attr.generate_build_scripts,
-        annotations = annotations,
         cargo_config = _read_cargo_config(repository_ctx),
-        rendering = _get_render_config(repository_ctx),
+        render_config = _get_render_config(repository_ctx),
         supported_platform_triples = repository_ctx.attr.supported_platform_triples,
+        repository_name = repository_ctx.name,
+        repository_ctx = repository_ctx,
     )
 
     config_path = repository_ctx.path("cargo-bazel.json")
@@ -230,37 +284,23 @@
         json.encode_indent(config, indent = " " * 4),
     )
 
-    # This was originally written to return a struct and not just the config path
-    # so splicing can have access to some rendering information embedded in the config
-    # If splicing should no longer need that info, it'd be simpler to just return a `path`.
-    return struct(
-        path = config_path,
-        info = config,
-    )
+    return config_path
 
-def get_lockfile(repository_ctx):
-    """Locate the lockfile and identify the it's type (Cargo or Bazel).
+def get_lockfiles(repository_ctx):
+    """_summary_
 
     Args:
         repository_ctx (repository_ctx): The rule's context object.
 
     Returns:
-        struct: The path to the lockfile as well as it's type
+        struct: _description_
     """
-    if repository_ctx.attr.lockfile_kind == "auto":
-        if str(repository_ctx.attr.lockfile).endswith("Cargo.lock"):
-            kind = "cargo"
-        else:
-            kind = "bazel"
-    else:
-        kind = repository_ctx.attr.lockfile_kind
-
     return struct(
-        path = repository_ctx.path(repository_ctx.attr.lockfile),
-        kind = kind,
+        cargo = repository_ctx.path(repository_ctx.attr.cargo_lockfile),
+        bazel = repository_ctx.path(repository_ctx.attr.lockfile) if repository_ctx.attr.lockfile else None,
     )
 
-def determine_repin(repository_ctx, generator, lockfile_path, lockfile_kind, config, splicing_manifest, cargo, rustc):
+def determine_repin(repository_ctx, generator, lockfile_path, config, splicing_manifest, cargo, rustc):
     """Use the `cargo-bazel` binary to determine whether or not dpeendencies need to be re-pinned
 
     Args:
@@ -269,7 +309,6 @@
         config (path): The path to a `cargo-bazel` config file. See `generate_config`.
         splicing_manifest (path): The path to a `cargo-bazel` splicing manifest. See `create_splicing_manifest`
         lockfile_path (path): The path to a "lock" file for reproducible outputs.
-        lockfile_kind (str): The type of lock file represented by `lockfile_path`
         cargo (path): The path to a Cargo binary.
         rustc (path): The path to a Rustc binary.
 
@@ -279,11 +318,11 @@
 
     # If a repin environment variable is set, always repin
     for var in REPIN_ENV_VARS:
-        if repository_ctx.os.environ.get(var, "").lower() in ["true", "yes", "1", "on"]:
+        if var in repository_ctx.os.environ and repository_ctx.os.environ[var].lower() not in ["false", "no", "0", "off"]:
             return True
 
-    # Cargo lockfiles should always be repinned.
-    if lockfile_kind == "cargo":
+    # If a deterministic lockfile was not added then always repin
+    if not lockfile_path:
         return True
 
     # Run the binary to check if a repin is needed
@@ -334,29 +373,29 @@
 def execute_generator(
         repository_ctx,
         lockfile_path,
-        lockfile_kind,
+        cargo_lockfile_path,
         generator,
         config,
         splicing_manifest,
         repository_dir,
         cargo,
         rustc,
-        repin = False,
         metadata = None):
     """Execute the `cargo-bazel` binary to produce `BUILD` and `.bzl` files.
 
     Args:
         repository_ctx (repository_ctx): The rule's context object.
         lockfile_path (path): The path to a "lock" file (file used for reproducible renderings).
-        lockfile_kind (str): The type of lockfile given (Cargo or Bazel).
+        cargo_lockfile_path (path): The path to a "Cargo.lock" file within the root workspace.
         generator (path): The path to a `cargo-bazel` binary.
         config (path): The path to a `cargo-bazel` config file.
         splicing_manifest (path): The path to a `cargo-bazel` splicing manifest. See `create_splicing_manifest`
         repository_dir (path): The output path for the Bazel module and BUILD files.
         cargo (path): The path of a Cargo binary.
         rustc (path): The path of a Rustc binary.
-        repin (bool, optional): Whether or not to repin dependencies
-        metadata (path, optional): The path to a Cargo metadata json file.
+        metadata (path, optional): The path to a Cargo metadata json file. If this is set, it indicates to
+            the generator that repinning is required. This file must be adjacent to a `Cargo.toml` and
+            `Cargo.lock` file.
 
     Returns:
         struct: The results of `repository_ctx.execute`.
@@ -366,10 +405,8 @@
     args = [
         generator,
         "generate",
-        "--lockfile",
-        lockfile_path,
-        "--lockfile-kind",
-        lockfile_kind,
+        "--cargo-lockfile",
+        cargo_lockfile_path,
         "--config",
         config,
         "--splicing-manifest",
@@ -382,12 +419,18 @@
         rustc,
     ]
 
+    if lockfile_path:
+        args.extend([
+            "--lockfile",
+            lockfile_path,
+        ])
+
     env = {
         "RUST_BACKTRACE": "full",
     }
 
     # Some components are not required unless re-pinning is enabled
-    if repin:
+    if metadata:
         args.extend([
             "--repin",
             "--metadata",
diff --git a/third_party/rules_rust/crate_universe/private/splicing_utils.bzl b/third_party/rules_rust/crate_universe/private/splicing_utils.bzl
index a419c75..f574466 100644
--- a/third_party/rules_rust/crate_universe/private/splicing_utils.bzl
+++ b/third_party/rules_rust/crate_universe/private/splicing_utils.bzl
@@ -1,9 +1,11 @@
 """Utilities directly related to the `splicing` step of `cargo-bazel`."""
 
-load(":common_utils.bzl", "cargo_environ", "execute")
+load(":common_utils.bzl", "CARGO_BAZEL_REPIN", "REPIN", "cargo_environ", "execute")
+
+CARGO_BAZEL_DEBUG = "CARGO_BAZEL_DEBUG"
 
 def splicing_config(resolver_version = "1"):
-    """arious settings used to configure Cargo manifest splicing behavior.
+    """Various settings used to configure Cargo manifest splicing behavior.
 
     [rv]: https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
 
@@ -19,63 +21,6 @@
         resolver_version = resolver_version,
     ))
 
-def download_extra_workspace_members(repository_ctx, cache_dir, render_template_registry_url):
-    """Download additional workspace members for use in splicing.
-
-    Args:
-        repository_ctx (repository_ctx): The rule's context object.
-        cache_dir (path): A directory in which to download and extract extra workspace members
-        render_template_registry_url (str): The base template to use for determining the crate's registry URL.
-
-    Returns:
-        list: A list of information related to the downloaded crates
-            - manifest: The path of the manifest.
-            - url: The url the manifest came from.
-            - sha256: The sha256 checksum of the new manifest.
-    """
-    manifests = []
-    extra_workspace_members = repository_ctx.attr.extra_workspace_members
-    if extra_workspace_members:
-        repository_ctx.report_progress("Downloading extra workspace members.")
-
-    for name, spec in repository_ctx.attr.extra_workspace_members.items():
-        spec = struct(**json.decode(spec))
-
-        url = render_template_registry_url
-        url = url.replace("{name}", name)
-        url = url.replace("{version}", spec.version)
-
-        if spec.sha256:
-            result = repository_ctx.download_and_extract(
-                output = cache_dir,
-                url = url,
-                sha256 = spec.sha256,
-                type = "tar.gz",
-            )
-        else:
-            result = repository_ctx.download_and_extract(
-                output = cache_dir,
-                url = url,
-                type = "tar.gz",
-            )
-
-        manifest = repository_ctx.path("{}/{}-{}/Cargo.toml".format(
-            cache_dir,
-            name,
-            spec.version,
-        ))
-
-        if not manifest.exists:
-            fail("Extra workspace member '{}' has no root Cargo.toml file".format(name))
-
-        manifests.append(struct(
-            manifest = str(manifest),
-            url = url,
-            sha256 = result.sha256,
-        ))
-
-    return manifests
-
 def kebab_case_keys(data):
     """Ensure the key value of the data given are kebab-case
 
@@ -90,6 +35,38 @@
         for (key, val) in data.items()
     }
 
+def compile_splicing_manifest(splicing_config, manifests, cargo_config_path, packages):
+    """Produce a manifest containing required components for splciing a new Cargo workspace
+
+    [cargo_config]: https://doc.rust-lang.org/cargo/reference/config.html
+    [cargo_toml]: https://doc.rust-lang.org/cargo/reference/manifest.html
+
+    Args:
+        splicing_config (dict): A deserialized `splicing_config`
+        manifests (dict): A mapping of paths to Bazel labels which represent [Cargo manifests][cargo_toml].
+        cargo_config_path (str): The absolute path to a [Cargo config][cargo_config].
+        packages (dict): A set of crates (packages) specifications to depend on
+
+    Returns:
+        dict: A dictionary representation of a `cargo_bazel::splicing::SplicingManifest`
+    """
+
+    # Deserialize information about direct packges
+    direct_packages_info = {
+        # Ensure the data is using kebab-case as that's what `cargo_toml::DependencyDetail` expects.
+        pkg: kebab_case_keys(dict(json.decode(data)))
+        for (pkg, data) in packages.items()
+    }
+
+    # Auto-generated splicier manifest values
+    splicing_manifest_content = {
+        "cargo_config": cargo_config_path,
+        "direct_packages": direct_packages_info,
+        "manifests": manifests,
+    }
+
+    return dict(splicing_config.items() + splicing_manifest_content.items())
+
 def create_splicing_manifest(repository_ctx):
     """Produce a manifest containing required components for splciing a new Cargo workspace
 
@@ -99,14 +76,6 @@
     Returns:
         path: The path to a json encoded manifest
     """
-    repo_dir = repository_ctx.path(".")
-
-    # Deserialize information about direct packges
-    direct_packages_info = {
-        # Ensure the data is using kebab-case as that's what `cargo_toml::DependencyDetail` expects.
-        pkg: kebab_case_keys(dict(json.decode(data)))
-        for (pkg, data) in repository_ctx.attr.packages.items()
-    }
 
     manifests = {str(repository_ctx.path(m)): str(m) for m in repository_ctx.attr.manifests}
 
@@ -118,32 +87,35 @@
     # Load user configurable splicing settings
     config = json.decode(repository_ctx.attr.splicing_config or splicing_config())
 
-    # Auto-generated splicier manifest values
-    splicing_manifest_content = {
-        "cargo_config": cargo_config,
-        "direct_packages": direct_packages_info,
-        "manifests": manifests,
-    }
+    repo_dir = repository_ctx.path(".")
+
+    splicing_manifest = repository_ctx.path("{}/splicing_manifest.json".format(repo_dir))
+
+    data = compile_splicing_manifest(
+        splicing_config = config,
+        manifests = manifests,
+        cargo_config_path = cargo_config,
+        packages = repository_ctx.attr.packages,
+    )
 
     # Serialize information required for splicing
-    splicing_manifest = repository_ctx.path("{}/splicing_manifest.json".format(repo_dir))
     repository_ctx.file(
         splicing_manifest,
         json.encode_indent(
-            dict(dict(config).items() + splicing_manifest_content.items()),
+            data,
             indent = " " * 4,
         ),
     )
 
     return splicing_manifest
 
-def splice_workspace_manifest(repository_ctx, generator, lockfile, splicing_manifest, cargo, rustc):
+def splice_workspace_manifest(repository_ctx, generator, cargo_lockfile, splicing_manifest, cargo, rustc):
     """Splice together a Cargo workspace from various other manifests and package definitions
 
     Args:
         repository_ctx (repository_ctx): The rule's context object.
         generator (path): The `cargo-bazel` binary.
-        lockfile (path): The path to a "lock" file for reproducible `cargo-bazel` renderings.
+        cargo_lockfile (path): The path to a "Cargo.lock" file.
         splicing_manifest (path): The path to a splicing manifest.
         cargo (path): The path to a Cargo binary.
         rustc (path): The Path to a Rustc binary.
@@ -154,46 +126,30 @@
     repository_ctx.report_progress("Splicing Cargo workspace.")
     repo_dir = repository_ctx.path(".")
 
-    # Download extra workspace members
-    crates_cache_dir = repository_ctx.path("{}/.crates_cache".format(repo_dir))
-    extra_manifest_info = download_extra_workspace_members(
-        repository_ctx = repository_ctx,
-        cache_dir = crates_cache_dir,
-        render_template_registry_url = repository_ctx.attr.extra_workspace_member_url_template,
-    )
-
-    extra_manifests_manifest = repository_ctx.path("{}/extra_manifests_manifest.json".format(repo_dir))
-    repository_ctx.file(
-        extra_manifests_manifest,
-        json.encode_indent(struct(
-            manifests = extra_manifest_info,
-        ), indent = " " * 4),
-    )
-
-    cargo_workspace = repository_ctx.path("{}/cargo-bazel-splicing".format(repo_dir))
+    splicing_output_dir = repository_ctx.path("splicing-output")
 
     # Generate a workspace root which contains all workspace members
     arguments = [
         generator,
         "splice",
-        "--workspace-dir",
-        cargo_workspace,
+        "--output-dir",
+        splicing_output_dir,
         "--splicing-manifest",
         splicing_manifest,
-        "--extra-manifests-manifest",
-        extra_manifests_manifest,
         "--cargo",
         cargo,
         "--rustc",
         rustc,
+        "--cargo-lockfile",
+        cargo_lockfile,
     ]
 
-    # Splicing accepts a Cargo.lock file in some scenarios. Ensure it's passed
-    # if the lockfile is a actually a Cargo lockfile.
-    if lockfile.kind == "cargo":
+    # Optionally set the splicing workspace directory to somewhere within the repository directory
+    # to improve the debugging experience.
+    if CARGO_BAZEL_DEBUG in repository_ctx.os.environ:
         arguments.extend([
-            "--cargo-lockfile",
-            lockfile.path,
+            "--workspace-dir",
+            repository_ctx.path("{}/splicing-workspace".format(repo_dir)),
         ])
 
     env = {
@@ -202,6 +158,10 @@
         "RUST_BACKTRACE": "full",
     }
 
+    # Ensure the short hand repin variable is set to the full name.
+    if REPIN in repository_ctx.os.environ and CARGO_BAZEL_REPIN not in repository_ctx.os.environ:
+        env.update({CARGO_BAZEL_REPIN: repository_ctx.os.environ[REPIN]})
+
     # Add any Cargo environment variables to the `cargo-bazel` execution
     env.update(cargo_environ(repository_ctx))
 
@@ -211,13 +171,12 @@
         env = env,
     )
 
-    root_manifest = repository_ctx.path("{}/Cargo.toml".format(cargo_workspace))
-    if not root_manifest.exists:
-        fail("Root manifest does not exist: {}".format(root_manifest))
+    # This file must have been produced by the execution above.
+    spliced_lockfile = repository_ctx.path("{}/Cargo.lock".format(splicing_output_dir))
+    if not spliced_lockfile.exists:
+        fail("Lockfile file does not exist: {}".format(spliced_lockfile))
+    spliced_metadata = repository_ctx.path("{}/metadata.json".format(splicing_output_dir))
+    if not spliced_metadata.exists:
+        fail("Metadata file does not exist: {}".format(spliced_metadata))
 
-    # This file must match the one generated in splicing
-    metadata_path = repository_ctx.path("{}/cargo-bazel-spliced-metadata.json".format(cargo_workspace))
-    if not metadata_path.exists:
-        fail("Root metadata file does not exist: {}".format(metadata_path))
-
-    return metadata_path
+    return spliced_metadata
diff --git a/third_party/rules_rust/crate_universe/private/vendor/BUILD.bazel b/third_party/rules_rust/crate_universe/private/vendor/BUILD.bazel
index 3c02387..04726cd 100644
--- a/third_party/rules_rust/crate_universe/private/vendor/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/private/vendor/BUILD.bazel
@@ -1,11 +1,3 @@
 load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps_targets")
 
 crates_vendor_deps_targets()
-
-filegroup(
-    name = "distro",
-    srcs = glob(["*.bzl"]) + [
-        "BUILD.bazel",
-    ],
-    visibility = ["//crate_universe/private:__subpackages__"],
-)
diff --git a/third_party/rules_rust/crate_universe/repositories.bzl b/third_party/rules_rust/crate_universe/repositories.bzl
new file mode 100644
index 0000000..c06e06d
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/repositories.bzl
@@ -0,0 +1,25 @@
+"""A module defining dependencies of the `cargo-bazel` Rust target"""
+
+load("@rules_rust//rust:defs.bzl", "rust_common")
+load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
+load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
+load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
+load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
+load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
+
+def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False):
+    """Define dependencies of the `cargo-bazel` Rust target
+
+    Args:
+        rust_version (str, optional): The version of rust to use when generating dependencies.
+        bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
+    """
+    third_party_deps()
+
+    if bootstrap:
+        cargo_bazel_bootstrap(rust_version = rust_version)
+
+    _vendor_crate_repositories()
+
+    crates_vendor_deps()
+    cross_installer_deps()
diff --git a/third_party/rules_rust/crate_universe/src/cli.rs b/third_party/rules_rust/crate_universe/src/cli.rs
index 2ed27ac..fdff844 100644
--- a/third_party/rules_rust/crate_universe/src/cli.rs
+++ b/third_party/rules_rust/crate_universe/src/cli.rs
@@ -19,7 +19,11 @@
 pub use vendor::vendor;
 
 #[derive(Parser, Debug)]
-#[clap(name = "cargo-bazel", about, version)]
+#[clap(
+    name = "cargo-bazel",
+    about = "crate_universe` is a collection of tools which use Cargo to generate build targets for Bazel.",
+    version
+)]
 pub enum Options {
     /// Generate Bazel Build files from a Cargo manifest.
     Generate(GenerateOptions),
diff --git a/third_party/rules_rust/crate_universe/src/cli/generate.rs b/third_party/rules_rust/crate_universe/src/cli/generate.rs
index 67ae868..3fdc97e 100644
--- a/third_party/rules_rust/crate_universe/src/cli/generate.rs
+++ b/third_party/rules_rust/crate_universe/src/cli/generate.rs
@@ -1,13 +1,14 @@
 //! The cli entrypoint for the `generate` subcommand
 
+use std::fs;
 use std::path::PathBuf;
 
-use anyhow::{bail, Result};
+use anyhow::{bail, Context as AnyhowContext, Result};
 use clap::Parser;
 
 use crate::config::Config;
 use crate::context::Context;
-use crate::lockfile::{is_cargo_lockfile, lock_context, write_lockfile, LockfileKind};
+use crate::lockfile::{lock_context, write_lockfile};
 use crate::metadata::load_metadata;
 use crate::metadata::Annotations;
 use crate::rendering::{write_outputs, Renderer};
@@ -15,7 +16,7 @@
 
 /// Command line options for the `generate` subcommand
 #[derive(Parser, Debug)]
-#[clap(about, version)]
+#[clap(about = "Command line options for the `generate` subcommand", version)]
 pub struct GenerateOptions {
     /// The path to a Cargo binary to use for gathering metadata
     #[clap(long, env = "CARGO")]
@@ -35,11 +36,11 @@
 
     /// The path to either a Cargo or Bazel lockfile
     #[clap(long)]
-    pub lockfile: PathBuf,
+    pub lockfile: Option<PathBuf>,
 
-    /// The type of lockfile
+    /// The path to a [Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) file.
     #[clap(long)]
-    pub lockfile_kind: LockfileKind,
+    pub cargo_lockfile: PathBuf,
 
     /// The directory of the current repository rule
     #[clap(long)]
@@ -54,7 +55,7 @@
     #[clap(long)]
     pub repin: bool,
 
-    /// The path to a Cargo metadata `json` file.
+    /// The path to a Cargo metadata `json` file. This file must be next to a `Cargo.toml` and `Cargo.lock` file.
     #[clap(long)]
     pub metadata: Option<PathBuf>,
 
@@ -67,25 +68,19 @@
     // Load the config
     let config = Config::try_from_path(&opt.config)?;
 
-    // Determine if the dependencies need to be repinned.
-    let mut should_repin = opt.repin;
-
-    // Cargo lockfiles must always be repinned.
-    if is_cargo_lockfile(&opt.lockfile, &opt.lockfile_kind) {
-        should_repin = true;
-    }
-
     // Go straight to rendering if there is no need to repin
-    if !should_repin {
-        let context = Context::try_from_path(opt.lockfile)?;
+    if !opt.repin {
+        if let Some(lockfile) = &opt.lockfile {
+            let context = Context::try_from_path(lockfile)?;
 
-        // Render build files
-        let outputs = Renderer::new(config.rendering).render(&context)?;
+            // Render build files
+            let outputs = Renderer::new(config.rendering).render(&context)?;
 
-        // Write the outputs to disk
-        write_outputs(outputs, &opt.repository_dir, opt.dry_run)?;
+            // Write the outputs to disk
+            write_outputs(outputs, &opt.repository_dir, opt.dry_run)?;
 
-        return Ok(());
+            return Ok(());
+        }
     }
 
     // Ensure Cargo and Rustc are available for use during generation.
@@ -105,20 +100,13 @@
     };
 
     // Load Metadata and Lockfile
-    let (cargo_metadata, cargo_lockfile) = load_metadata(
-        metadata_path,
-        if is_cargo_lockfile(&opt.lockfile, &opt.lockfile_kind) {
-            Some(&opt.lockfile)
-        } else {
-            None
-        },
-    )?;
+    let (cargo_metadata, cargo_lockfile) = load_metadata(metadata_path)?;
 
     // Copy the rendering config for later use
     let render_config = config.rendering.clone();
 
     // Annotate metadata
-    let annotations = Annotations::new(cargo_metadata, cargo_lockfile, config.clone())?;
+    let annotations = Annotations::new(cargo_metadata, cargo_lockfile.clone(), config.clone())?;
 
     // Generate renderable contexts for earch package
     let context = Context::new(annotations)?;
@@ -130,13 +118,18 @@
     write_outputs(outputs, &opt.repository_dir, opt.dry_run)?;
 
     // Ensure Bazel lockfiles are written to disk so future generations can be short-circuted.
-    if matches!(opt.lockfile_kind, LockfileKind::Bazel) {
+    if let Some(lockfile) = opt.lockfile {
         let splicing_manifest = SplicingManifest::try_from_path(&opt.splicing_manifest)?;
 
-        let lockfile = lock_context(context, &config, &splicing_manifest, cargo_bin, rustc_bin)?;
+        let lock_content =
+            lock_context(context, &config, &splicing_manifest, cargo_bin, rustc_bin)?;
 
-        write_lockfile(lockfile, &opt.lockfile, opt.dry_run)?;
+        write_lockfile(lock_content, &lockfile, opt.dry_run)?;
     }
 
+    // Write the updated Cargo.lock file
+    fs::write(&opt.cargo_lockfile, cargo_lockfile.to_string())
+        .context("Failed to write Cargo.lock file back to the workspace.")?;
+
     Ok(())
 }
diff --git a/third_party/rules_rust/crate_universe/src/cli/query.rs b/third_party/rules_rust/crate_universe/src/cli/query.rs
index 668f64f..19087ab 100644
--- a/third_party/rules_rust/crate_universe/src/cli/query.rs
+++ b/third_party/rules_rust/crate_universe/src/cli/query.rs
@@ -13,7 +13,7 @@
 
 /// Command line options for the `query` subcommand
 #[derive(Parser, Debug)]
-#[clap(about, version)]
+#[clap(about = "Command line options for the `query` subcommand", version)]
 pub struct QueryOptions {
     /// The lockfile path for reproducible Cargo->Bazel renderings
     #[clap(long)]
diff --git a/third_party/rules_rust/crate_universe/src/cli/splice.rs b/third_party/rules_rust/crate_universe/src/cli/splice.rs
index cb8ba20..213ee34 100644
--- a/third_party/rules_rust/crate_universe/src/cli/splice.rs
+++ b/third_party/rules_rust/crate_universe/src/cli/splice.rs
@@ -2,34 +2,37 @@
 
 use std::path::PathBuf;
 
+use anyhow::Context;
 use clap::Parser;
 
 use crate::cli::Result;
-use crate::metadata::{write_metadata, Generator, MetadataGenerator};
-use crate::splicing::{
-    generate_lockfile, ExtraManifestsManifest, Splicer, SplicingManifest, WorkspaceMetadata,
-};
+use crate::metadata::{write_metadata, CargoUpdateRequest, Generator, MetadataGenerator};
+use crate::splicing::{generate_lockfile, Splicer, SplicingManifest, WorkspaceMetadata};
 
 /// Command line options for the `splice` subcommand
 #[derive(Parser, Debug)]
-#[clap(about, version)]
+#[clap(about = "Command line options for the `splice` subcommand", version)]
 pub struct SpliceOptions {
     /// A generated manifest of splicing inputs
     #[clap(long)]
     pub splicing_manifest: PathBuf,
 
-    /// A generated manifest of "extra workspace members"
-    #[clap(long)]
-    pub extra_manifests_manifest: PathBuf,
-
-    /// A Cargo lockfile (Cargo.lock).
+    /// The path to a [Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) file.
     #[clap(long)]
     pub cargo_lockfile: Option<PathBuf>,
 
-    /// The directory in which to build the workspace. A `Cargo.toml` file
-    /// should always be produced within this directory.
+    /// The desired update/repin behavior
+    #[clap(long, env = "CARGO_BAZEL_REPIN", default_missing_value = "true")]
+    pub repin: Option<CargoUpdateRequest>,
+
+    /// The directory in which to build the workspace. If this argument is not
+    /// passed, a temporary directory will be generated.
     #[clap(long)]
-    pub workspace_dir: PathBuf,
+    pub workspace_dir: Option<PathBuf>,
+
+    /// The location where the results of splicing are written.
+    #[clap(long)]
+    pub output_dir: PathBuf,
 
     /// If true, outputs will be printed instead of written to disk.
     #[clap(long)]
@@ -52,39 +55,62 @@
 pub fn splice(opt: SpliceOptions) -> Result<()> {
     // Load the all config files required for splicing a workspace
     let splicing_manifest = SplicingManifest::try_from_path(&opt.splicing_manifest)?;
-    let extra_manifests_manifest =
-        ExtraManifestsManifest::try_from_path(opt.extra_manifests_manifest)?;
+
+    // Determine the splicing workspace
+    let temp_dir;
+    let splicing_dir = match &opt.workspace_dir {
+        Some(dir) => dir.clone(),
+        None => {
+            temp_dir = tempfile::tempdir().context("Failed to generate temporary directory")?;
+            temp_dir.as_ref().to_path_buf()
+        }
+    };
 
     // Generate a splicer for creating a Cargo workspace manifest
-    let splicer = Splicer::new(
-        opt.workspace_dir,
-        splicing_manifest,
-        extra_manifests_manifest,
-    )?;
+    let splicer = Splicer::new(splicing_dir, splicing_manifest)?;
 
     // Splice together the manifest
-    let manifest_path = splicer.splice_workspace()?;
+    let manifest_path = splicer.splice_workspace(&opt.cargo)?;
 
     // Generate a lockfile
-    let cargo_lockfile =
-        generate_lockfile(&manifest_path, &opt.cargo_lockfile, &opt.cargo, &opt.rustc)?;
+    let cargo_lockfile = generate_lockfile(
+        &manifest_path,
+        &opt.cargo_lockfile,
+        &opt.cargo,
+        &opt.rustc,
+        &opt.repin,
+    )?;
 
     // Write the registry url info to the manifest now that a lockfile has been generated
     WorkspaceMetadata::write_registry_urls(&cargo_lockfile, &manifest_path)?;
 
+    let output_dir = opt.output_dir.clone();
+
     // Write metadata to the workspace for future reuse
     let (cargo_metadata, _) = Generator::new()
         .with_cargo(opt.cargo)
         .with_rustc(opt.rustc)
         .generate(&manifest_path.as_path_buf())?;
 
-    // Write metadata next to the manifest
-    let metadata_path = manifest_path
+    let cargo_lockfile_path = manifest_path
         .as_path_buf()
         .parent()
-        .expect("Newly spliced cargo manifest has no parent directory")
-        .join("cargo-bazel-spliced-metadata.json");
-    write_metadata(&metadata_path, &cargo_metadata)?;
+        .with_context(|| {
+            format!(
+                "The path {} is expected to have a parent directory",
+                manifest_path.as_path_buf().display()
+            )
+        })?
+        .join("Cargo.lock");
+
+    // Generate the consumable outputs of the splicing process
+    std::fs::create_dir_all(&output_dir)
+        .with_context(|| format!("Failed to create directories for {}", &output_dir.display()))?;
+
+    write_metadata(&opt.output_dir.join("metadata.json"), &cargo_metadata)?;
+
+    std::fs::copy(cargo_lockfile_path, output_dir.join("Cargo.lock"))
+        .context("Failed to copy lockfile")?;
 
     Ok(())
 }
diff --git a/third_party/rules_rust/crate_universe/src/cli/vendor.rs b/third_party/rules_rust/crate_universe/src/cli/vendor.rs
index 68e107f..0b90541 100644
--- a/third_party/rules_rust/crate_universe/src/cli/vendor.rs
+++ b/third_party/rules_rust/crate_universe/src/cli/vendor.rs
@@ -1,6 +1,7 @@
 //! The cli entrypoint for the `vendor` subcommand
 
 use std::collections::BTreeSet;
+use std::env;
 use std::fs;
 use std::path::{Path, PathBuf};
 use std::process::{self, ExitStatus};
@@ -10,16 +11,15 @@
 
 use crate::config::{Config, VendorMode};
 use crate::context::Context;
+use crate::metadata::CargoUpdateRequest;
 use crate::metadata::{Annotations, VendorGenerator};
 use crate::metadata::{Generator, MetadataGenerator};
 use crate::rendering::{render_module_label, write_outputs, Renderer};
-use crate::splicing::{
-    generate_lockfile, ExtraManifestsManifest, Splicer, SplicingManifest, WorkspaceMetadata,
-};
+use crate::splicing::{generate_lockfile, Splicer, SplicingManifest, WorkspaceMetadata};
 
 /// Command line options for the `vendor` subcommand
 #[derive(Parser, Debug)]
-#[clap(about, version)]
+#[clap(about = "Command line options for the `vendor` subcommand", version)]
 pub struct VendorOptions {
     /// The path to a Cargo binary to use for gathering metadata
     #[clap(long, env = "CARGO")]
@@ -41,7 +41,7 @@
     #[clap(long)]
     pub splicing_manifest: PathBuf,
 
-    /// The path to a Cargo lockfile
+    /// The path to a [Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) file.
     #[clap(long)]
     pub cargo_lockfile: Option<PathBuf>,
 
@@ -50,13 +50,19 @@
     #[clap(long)]
     pub cargo_config: Option<PathBuf>,
 
+    /// The desired update/repin behavior. The arguments passed here are forward to
+    /// [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html). See
+    /// [metadata::CargoUpdateRequest] for details on the values to pass here.
+    #[clap(long, env = "CARGO_BAZEL_REPIN", default_missing_value = "true")]
+    pub repin: Option<CargoUpdateRequest>,
+
     /// The path to a Cargo metadata `json` file.
     #[clap(long)]
     pub metadata: Option<PathBuf>,
 
-    /// A generated manifest of "extra workspace members"
-    #[clap(long)]
-    pub extra_manifests_manifest: PathBuf,
+    /// The path to a bazel binary
+    #[clap(long, env = "BAZEL_REAL", default_value = "bazel")]
+    pub bazel: PathBuf,
 
     /// The directory in which to build the workspace. A `Cargo.toml` file
     /// should always be produced within this directory.
@@ -83,31 +89,55 @@
     Ok(status)
 }
 
+/// Query the Bazel output_base to determine the location of external repositories.
+fn locate_bazel_output_base(bazel: &Path, workspace_dir: &Path) -> Result<PathBuf> {
+    // Allow a predefined environment variable to take precedent. This
+    // solves for the specific needs of Bazel CI on Github.
+    if let Ok(output_base) = env::var("OUTPUT_BASE") {
+        return Ok(PathBuf::from(output_base));
+    }
+
+    let output = process::Command::new(bazel)
+        .current_dir(workspace_dir)
+        .args(["info", "output_base"])
+        .output()
+        .context("Failed to query the Bazel workspace's `output_base`")?;
+
+    if !output.status.success() {
+        bail!(output.status)
+    }
+
+    Ok(PathBuf::from(
+        String::from_utf8_lossy(&output.stdout).trim(),
+    ))
+}
+
 pub fn vendor(opt: VendorOptions) -> Result<()> {
+    let output_base = locate_bazel_output_base(&opt.bazel, &opt.workspace_dir)?;
+
     // Load the all config files required for splicing a workspace
-    let splicing_manifest =
-        SplicingManifest::try_from_path(&opt.splicing_manifest)?.absoulutize(&opt.workspace_dir);
-    let extra_manifests_manifest =
-        ExtraManifestsManifest::try_from_path(opt.extra_manifests_manifest)?.absoulutize();
+    let splicing_manifest = SplicingManifest::try_from_path(&opt.splicing_manifest)?
+        .resolve(&opt.workspace_dir, &output_base);
 
     let temp_dir = tempfile::tempdir().context("Failed to create temporary directory")?;
 
     // Generate a splicer for creating a Cargo workspace manifest
-    let splicer = Splicer::new(
-        PathBuf::from(temp_dir.as_ref()),
-        splicing_manifest,
-        extra_manifests_manifest,
-    )
-    .context("Failed to crate splicer")?;
+    let splicer = Splicer::new(PathBuf::from(temp_dir.as_ref()), splicing_manifest)
+        .context("Failed to create splicer")?;
 
     // Splice together the manifest
     let manifest_path = splicer
-        .splice_workspace()
+        .splice_workspace(&opt.cargo)
         .context("Failed to splice workspace")?;
 
-    // Generate a lockfile
-    let cargo_lockfile =
-        generate_lockfile(&manifest_path, &opt.cargo_lockfile, &opt.cargo, &opt.rustc)?;
+    // Gather a cargo lockfile
+    let cargo_lockfile = generate_lockfile(
+        &manifest_path,
+        &opt.cargo_lockfile,
+        &opt.cargo,
+        &opt.rustc,
+        &opt.repin,
+    )?;
 
     // Write the registry url info to the manifest now that a lockfile has been generated
     WorkspaceMetadata::write_registry_urls(&cargo_lockfile, &manifest_path)?;
@@ -122,7 +152,7 @@
     let config = Config::try_from_path(&opt.config)?;
 
     // Annotate metadata
-    let annotations = Annotations::new(cargo_metadata, cargo_lockfile, config.clone())?;
+    let annotations = Annotations::new(cargo_metadata, cargo_lockfile.clone(), config.clone())?;
 
     // Generate renderable contexts for earch package
     let context = Context::new(annotations)?;
@@ -143,6 +173,12 @@
             .with_context(|| format!("Failed to delete {}", vendor_dir.display()))?;
     }
 
+    // Store the updated Cargo.lock
+    if let Some(path) = &opt.cargo_lockfile {
+        fs::write(path, cargo_lockfile.to_string())
+            .context("Failed to write Cargo.lock file back to the workspace.")?;
+    }
+
     // Vendor the crates from the spliced workspace
     if matches!(config.rendering.vendor_mode, Some(VendorMode::Local)) {
         VendorGenerator::new(opt.cargo.clone(), opt.rustc.clone())
diff --git a/third_party/rules_rust/crate_universe/src/config.rs b/third_party/rules_rust/crate_universe/src/config.rs
index 66e3a7e..0560829 100644
--- a/third_party/rules_rust/crate_universe/src/config.rs
+++ b/third_party/rules_rust/crate_universe/src/config.rs
@@ -8,7 +8,7 @@
 use std::{fmt, fs};
 
 use anyhow::Result;
-use cargo_lock::package::source::GitReference;
+use cargo_lock::package::GitReference;
 use cargo_metadata::Package;
 use semver::VersionReq;
 use serde::de::Visitor;
@@ -73,6 +73,9 @@
     #[serde(default = "default_platforms_template")]
     pub platforms_template: String,
 
+    /// The command to use for regenerating generated files.
+    pub regen_command: String,
+
     /// An optional configuration for rendirng content to be rendered into repositories.
     pub vendor_mode: Option<VendorMode>,
 }
@@ -211,6 +214,10 @@
     /// [rustc_env](https://bazelbuild.github.io/rules_rust/cargo.html#cargo_build_script-rustc_env) attribute.
     pub build_script_rustc_env: Option<BTreeMap<String, String>>,
 
+    /// Additional labels to pass to a build script's
+    /// [toolchains](https://bazel.build/reference/be/common-definitions#common-attributes) attribute.
+    pub build_script_toolchains: Option<BTreeSet<String>>,
+
     /// A scratch pad used to write arbitrary text to target BUILD files.
     pub additive_build_file_content: Option<String>,
 
@@ -302,6 +309,7 @@
             build_script_data_glob: joined_extra_member!(self.build_script_data_glob, rhs.build_script_data_glob, BTreeSet::new, BTreeSet::extend),
             build_script_env: joined_extra_member!(self.build_script_env, rhs.build_script_env, BTreeMap::new, BTreeMap::extend),
             build_script_rustc_env: joined_extra_member!(self.build_script_rustc_env, rhs.build_script_rustc_env, BTreeMap::new, BTreeMap::extend),
+            build_script_toolchains: joined_extra_member!(self.build_script_toolchains, rhs.build_script_toolchains, BTreeSet::new, BTreeSet::extend),
             additive_build_file_content: joined_extra_member!(self.additive_build_file_content, rhs.additive_build_file_content, String::new, concat_string),
             shallow_since,
             patch_args: joined_extra_member!(self.patch_args, rhs.patch_args, Vec::new, Vec::extend),
@@ -492,4 +500,35 @@
         id.version = "<1".to_owned();
         assert!(!id.matches(&package));
     }
+
+    #[test]
+    fn deserialize_config() {
+        let runfiles = runfiles::Runfiles::create().unwrap();
+        let path = runfiles
+            .rlocation("rules_rust/crate_universe/test_data/serialized_configs/config.json");
+
+        let content = std::fs::read_to_string(path).unwrap();
+
+        let config: Config = serde_json::from_str(&content).unwrap();
+
+        // Annotations
+        let annotation = config
+            .annotations
+            .get(&CrateId::new("rand".to_owned(), "0.8.5".to_owned()))
+            .unwrap();
+        assert_eq!(
+            annotation.crate_features,
+            Some(BTreeSet::from(["small_rng".to_owned()]))
+        );
+
+        // Global settings
+        assert!(config.cargo_config.is_none());
+        assert!(!config.generate_build_scripts);
+
+        // Render Config
+        assert_eq!(
+            config.rendering.platforms_template,
+            "//custom/platform:{triple}"
+        );
+    }
 }
diff --git a/third_party/rules_rust/crate_universe/src/context/crate_context.rs b/third_party/rules_rust/crate_universe/src/context/crate_context.rs
index 0278ebe..923fa1e 100644
--- a/third_party/rules_rust/crate_universe/src/context/crate_context.rs
+++ b/third_party/rules_rust/crate_universe/src/context/crate_context.rs
@@ -101,8 +101,8 @@
     #[serde(skip_serializing_if = "SelectStringList::should_skip_serializing")]
     pub rustc_env_files: SelectStringList,
 
-    #[serde(skip_serializing_if = "SelectStringList::should_skip_serializing")]
-    pub rustc_flags: SelectStringList,
+    #[serde(skip_serializing_if = "Vec::is_empty")]
+    pub rustc_flags: Vec<String>,
 
     pub version: String,
 
@@ -179,6 +179,9 @@
 
     #[serde(skip_serializing_if = "Option::is_none")]
     pub links: Option<String>,
+
+    #[serde(skip_serializing_if = "BTreeSet::is_empty")]
+    pub toolchains: BTreeSet<String>,
 }
 
 impl Default for BuildScriptAttributes {
@@ -198,6 +201,7 @@
             rustc_env_files: Default::default(),
             tools: Default::default(),
             links: Default::default(),
+            toolchains: Default::default(),
         }
     }
 }
@@ -417,12 +421,8 @@
             }
 
             // Rustc flags
-            // TODO: SelectList is currently backed by `BTreeSet` which is generally incorrect
-            // for rustc flags. Should SelectList be refactored?
             if let Some(extra) = &crate_extra.rustc_flags {
-                for data in extra.iter() {
-                    self.common_attrs.rustc_flags.insert(data.clone(), None);
-                }
+                self.common_attrs.rustc_flags.append(&mut extra.clone());
             }
 
             // Rustc env
@@ -456,6 +456,20 @@
                     }
                 }
 
+                // Tools
+                if let Some(extra) = &crate_extra.build_script_tools {
+                    for data in extra {
+                        attrs.tools.insert(data.clone(), None);
+                    }
+                }
+
+                // Toolchains
+                if let Some(extra) = &crate_extra.build_script_toolchains {
+                    for data in extra {
+                        attrs.toolchains.insert(data.clone());
+                    }
+                }
+
                 // Data glob
                 if let Some(extra) = &crate_extra.build_script_data_glob {
                     attrs.data_glob.extend(extra.clone());
@@ -563,11 +577,10 @@
                         let crate_name = sanitize_module_name(&target.name);
 
                         // Locate the crate's root source file relative to the package root normalized for unix
-                        let crate_root =
-                            pathdiff::diff_paths(target.src_path.to_string(), package_root).map(
-                                // Normalize the path so that it always renders the same regardless of platform
-                                |root| root.to_string_lossy().replace("\\", "/"),
-                            );
+                        let crate_root = pathdiff::diff_paths(&target.src_path, package_root).map(
+                            // Normalize the path so that it always renders the same regardless of platform
+                            |root| root.to_string_lossy().replace('\\', "/"),
+                        );
 
                         // Conditionally check to see if the dependencies is a build-script target
                         if include_build_scripts && kind == "custom-build" {
diff --git a/third_party/rules_rust/crate_universe/src/lockfile.rs b/third_party/rules_rust/crate_universe/src/lockfile.rs
index 91f4832..65738a6 100644
--- a/third_party/rules_rust/crate_universe/src/lockfile.rs
+++ b/third_party/rules_rust/crate_universe/src/lockfile.rs
@@ -1,11 +1,11 @@
 //! Utility module for interracting with different kinds of lock files
 
+use std::collections::HashMap;
 use std::convert::TryFrom;
 use std::ffi::OsStr;
 use std::fs;
 use std::path::Path;
 use std::process::Command;
-use std::str::FromStr;
 
 use anyhow::{bail, Context as AnyhowContext, Result};
 use hex::ToHex;
@@ -16,61 +16,6 @@
 use crate::context::Context;
 use crate::splicing::{SplicingManifest, SplicingMetadata};
 
-#[derive(Debug)]
-pub enum LockfileKind {
-    Auto,
-    Bazel,
-    Cargo,
-}
-
-impl LockfileKind {
-    pub fn detect(path: &Path) -> Result<Self> {
-        let content = fs::read_to_string(path)?;
-
-        if serde_json::from_str::<Context>(&content).is_ok() {
-            return Ok(Self::Bazel);
-        }
-
-        if cargo_lock::Lockfile::from_str(&content).is_ok() {
-            return Ok(Self::Cargo);
-        }
-
-        bail!("Unknown Lockfile kind for {}", path.display())
-    }
-}
-
-impl FromStr for LockfileKind {
-    type Err = anyhow::Error;
-
-    fn from_str(s: &str) -> Result<Self, Self::Err> {
-        let lower = s.to_lowercase();
-        if lower == "auto" {
-            return Ok(Self::Auto);
-        }
-
-        if lower == "bazel" {
-            return Ok(Self::Bazel);
-        }
-
-        if lower == "cargo" {
-            return Ok(Self::Cargo);
-        }
-
-        bail!("Unknown LockfileKind: '{}'", s)
-    }
-}
-
-pub fn is_cargo_lockfile(path: &Path, kind: &LockfileKind) -> bool {
-    match kind {
-        LockfileKind::Auto => match LockfileKind::detect(path) {
-            Ok(kind) => matches!(kind, LockfileKind::Cargo),
-            Err(_) => false,
-        },
-        LockfileKind::Bazel => false,
-        LockfileKind::Cargo => true,
-    }
-}
-
 pub fn lock_context(
     mut context: Context,
     config: &Config,
@@ -198,8 +143,31 @@
             bail!("Failed to query cargo version")
         }
 
-        let version = String::from_utf8(output.stdout)?;
-        Ok(version)
+        let version = String::from_utf8(output.stdout)?.trim().to_owned();
+
+        // TODO: There is a bug in the linux binary for Cargo 1.60.0 where
+        // the commit hash reported by the version is shorter than what's
+        // reported on other platforms. This conditional here is a hack to
+        // correct for this difference and ensure lockfile hashes can be
+        // computed consistently. If a new binary is released then this
+        // condition should be removed
+        // https://github.com/rust-lang/cargo/issues/10547
+        let corrections = HashMap::from([
+            (
+                "cargo 1.60.0 (d1fd9fe 2022-03-01)",
+                "cargo 1.60.0 (d1fd9fe2c 2022-03-01)",
+            ),
+            (
+                "cargo 1.61.0 (a028ae4 2022-04-29)",
+                "cargo 1.61.0 (a028ae42f 2022-04-29)",
+            ),
+        ]);
+
+        if corrections.contains_key(version.as_str()) {
+            Ok(corrections[version.as_str()].to_string())
+        } else {
+            Ok(version)
+        }
     }
 }
 
@@ -223,7 +191,6 @@
     use super::*;
 
     use std::collections::{BTreeMap, BTreeSet};
-    use std::fs;
 
     #[test]
     fn simple_digest() {
@@ -242,7 +209,7 @@
 
         assert_eq!(
             digest,
-            Digest("4c8bc5de2d6d7acc7997ae9870e52bc0f0fcbc2b94076e61162078be6a69cc3b".to_owned())
+            Digest("9711073103bd532b7d9c2e32e805280d29fc8591c3e76f9fe489fc372e2866db".to_owned())
         );
     }
 
@@ -285,7 +252,7 @@
 
         assert_eq!(
             digest,
-            Digest("7a0d2f5fce05c4d433826b5c4748bec7b125b79182de598dc700e893e09077e9".to_owned())
+            Digest("756a613410573552bb8a85d6fcafd24a9df3000b8d943bf74c38bda9c306ef0e".to_owned())
         );
     }
 
@@ -316,7 +283,7 @@
 
         assert_eq!(
             digest,
-            Digest("fb5d7854dae366d4a9ff135208c28f08c14c2608dd6c5aa1b35b6e677dd53c06".to_owned())
+            Digest("851b789765d8ee248fd3d55840ffd702ba2f8b0ca6aed2faa45ea63d1b011a99".to_owned())
         );
     }
 
@@ -365,59 +332,7 @@
 
         assert_eq!(
             digest,
-            Digest("2b32833e4265bce03df70dbb9c2b32a78879cc02fbe88a481e3fe4a17812aca9".to_owned())
+            Digest("a9f7ea66f1b04331f8e09c64cd0b972e4c2a136907d7ef90e81ae2654e3c002c".to_owned())
         );
     }
-
-    #[test]
-    fn detect_bazel_lockfile() {
-        let temp_dir = tempfile::tempdir().unwrap();
-        let lockfile = temp_dir.as_ref().join("lockfile");
-        fs::write(
-            &lockfile,
-            serde_json::to_string(&crate::context::Context::default()).unwrap(),
-        )
-        .unwrap();
-
-        let kind = LockfileKind::detect(&lockfile).unwrap();
-        assert!(matches!(kind, LockfileKind::Bazel));
-    }
-
-    #[test]
-    fn detect_cargo_lockfile() {
-        let temp_dir = tempfile::tempdir().unwrap();
-        let lockfile = temp_dir.as_ref().join("lockfile");
-        fs::write(
-            &lockfile,
-            textwrap::dedent(
-                r#"
-                version = 3
-
-                [[package]]
-                name = "detect"
-                version = "0.1.0"
-                "#,
-            ),
-        )
-        .unwrap();
-
-        let kind = LockfileKind::detect(&lockfile).unwrap();
-        assert!(matches!(kind, LockfileKind::Cargo));
-    }
-
-    #[test]
-    fn detect_invalid_lockfile() {
-        let temp_dir = tempfile::tempdir().unwrap();
-        let lockfile = temp_dir.as_ref().join("lockfile");
-        fs::write(&lockfile, "]} invalid {[").unwrap();
-
-        assert!(LockfileKind::detect(&lockfile).is_err());
-    }
-
-    #[test]
-    fn detect_missing_lockfile() {
-        let temp_dir = tempfile::tempdir().unwrap();
-        let lockfile = temp_dir.as_ref().join("lockfile");
-        assert!(LockfileKind::detect(&lockfile).is_err());
-    }
 }
diff --git a/third_party/rules_rust/crate_universe/src/metadata.rs b/third_party/rules_rust/crate_universe/src/metadata.rs
index 0e48676..57d90e7 100644
--- a/third_party/rules_rust/crate_universe/src/metadata.rs
+++ b/third_party/rules_rust/crate_universe/src/metadata.rs
@@ -7,6 +7,7 @@
 use std::fs;
 use std::path::{Path, PathBuf};
 use std::process::Command;
+use std::str::FromStr;
 
 use anyhow::{bail, Context, Result};
 use cargo_lock::Lockfile as CargoLockfile;
@@ -74,6 +75,99 @@
     }
 }
 
+/// A configuration desrcibing how to invoke [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html).
+#[derive(Debug, PartialEq)]
+pub enum CargoUpdateRequest {
+    /// Translates to an unrestricted `cargo update` command
+    Eager,
+
+    /// Translates to `cargo update --workspace`
+    Workspace,
+
+    /// Translates to `cargo update --package foo` with an optional `--precise` argument.
+    Package {
+        /// The name of the crate used with `--package`.
+        name: String,
+
+        /// If set, the `--precise` value that pairs with `--package`.
+        version: Option<String>,
+    },
+}
+
+impl FromStr for CargoUpdateRequest {
+    type Err = anyhow::Error;
+
+    fn from_str(s: &str) -> Result<Self, Self::Err> {
+        let lower = s.to_lowercase();
+
+        if ["1", "yes", "true", "on"].contains(&lower.as_str()) {
+            return Ok(Self::Eager);
+        }
+
+        if ["workspace", "minimal"].contains(&lower.as_str()) {
+            return Ok(Self::Workspace);
+        }
+
+        let mut split = s.splitn(2, '@');
+        Ok(Self::Package {
+            name: split.next().map(|s| s.to_owned()).unwrap(),
+            version: split.next().map(|s| s.to_owned()),
+        })
+    }
+}
+
+impl CargoUpdateRequest {
+    /// Determine what arguments to pass to the `cargo update` command.
+    fn get_update_args(&self) -> Vec<String> {
+        match self {
+            CargoUpdateRequest::Eager => Vec::new(),
+            CargoUpdateRequest::Workspace => vec!["--workspace".to_owned()],
+            CargoUpdateRequest::Package { name, version } => {
+                let mut update_args = vec!["--package".to_owned(), name.clone()];
+
+                if let Some(version) = version {
+                    update_args.push("--precise".to_owned());
+                    update_args.push(version.clone());
+                }
+
+                update_args
+            }
+        }
+    }
+
+    /// Calls `cargo update` with arguments specific to the state of the current variant.
+    pub fn update(&self, manifest: &Path, cargo_bin: &Path, rustc_bin: &Path) -> Result<()> {
+        let manifest_dir = manifest.parent().unwrap();
+
+        // Simply invoke `cargo update`
+        let output = Command::new(cargo_bin)
+            // Cargo detects config files based on `pwd` when running so
+            // to ensure user provided Cargo config files are used, it's
+            // critical to set the working directory to the manifest dir.
+            .current_dir(manifest_dir)
+            .arg("update")
+            .arg("--manifest-path")
+            .arg(manifest)
+            .args(self.get_update_args())
+            .env("RUSTC", &rustc_bin)
+            .output()
+            .with_context(|| {
+                format!(
+                    "Error running cargo to update packages for manifest '{}'",
+                    manifest.display()
+                )
+            })?;
+
+        if !output.status.success() {
+            eprintln!("{}", String::from_utf8_lossy(&output.stdout));
+            eprintln!("{}", String::from_utf8_lossy(&output.stderr));
+            bail!(format!("Failed to update lockfile: {}", output.status))
+        }
+
+        Ok(())
+    }
+}
+
 pub struct LockGenerator {
     /// The path to a `cargo` binary
     cargo_bin: PathBuf,
@@ -94,11 +188,12 @@
         &self,
         manifest_path: &Path,
         existing_lock: &Option<PathBuf>,
+        update_request: &Option<CargoUpdateRequest>,
     ) -> Result<cargo_lock::Lockfile> {
         let manifest_dir = manifest_path.parent().unwrap();
         let generated_lockfile_path = manifest_dir.join("Cargo.lock");
 
-        let output = if let Some(lock) = existing_lock {
+        if let Some(lock) = existing_lock {
             if !lock.exists() {
                 bail!(
                     "An existing lockfile path was provided but a file at '{}' does not exist",
@@ -112,9 +207,13 @@
             }
             fs::copy(&lock, &generated_lockfile_path)?;
 
+            if let Some(request) = update_request {
+                request.update(manifest_path, &self.cargo_bin, &self.rustc_bin)?;
+            }
+
             // Ensure the Cargo cache is up to date to simulate the behavior
             // of having just generated a new one
-            Command::new(&self.cargo_bin)
+            let output = Command::new(&self.cargo_bin)
                 // Cargo detects config files based on `pwd` when running so
                 // to ensure user provided Cargo config files are used, it's
                 // critical to set the working directory to the manifest dir.
@@ -128,10 +227,19 @@
                 .context(format!(
                     "Error running cargo to fetch crates '{}'",
                     manifest_path.display()
-                ))?
+                ))?;
+
+            if !output.status.success() {
+                eprintln!("{}", String::from_utf8_lossy(&output.stdout));
+                eprintln!("{}", String::from_utf8_lossy(&output.stderr));
+                bail!(format!(
+                    "Failed to fetch crates for lockfile: {}",
+                    output.status
+                ))
+            }
         } else {
             // Simply invoke `cargo generate-lockfile`
-            Command::new(&self.cargo_bin)
+            let output = Command::new(&self.cargo_bin)
                 // Cargo detects config files based on `pwd` when running so
                 // to ensure user provided Cargo config files are used, it's
                 // critical to set the working directory to the manifest dir.
@@ -144,13 +252,13 @@
                 .context(format!(
                     "Error running cargo to generate lockfile '{}'",
                     manifest_path.display()
-                ))?
-        };
+                ))?;
 
-        if !output.status.success() {
-            eprintln!("{}", String::from_utf8_lossy(&output.stdout));
-            eprintln!("{}", String::from_utf8_lossy(&output.stderr));
-            bail!(format!("Failed to generate lockfile: {}", output.status))
+            if !output.status.success() {
+                eprintln!("{}", String::from_utf8_lossy(&output.stdout));
+                eprintln!("{}", String::from_utf8_lossy(&output.stderr));
+                bail!(format!("Failed to generate lockfile: {}", output.status))
+            }
         }
 
         cargo_lock::Lockfile::load(&generated_lockfile_path).context(format!(
@@ -222,20 +330,76 @@
 /// A helper function for deserializing Cargo metadata and lockfiles
 pub fn load_metadata(
     metadata_path: &Path,
-    lockfile_path: Option<&Path>,
 ) -> Result<(cargo_metadata::Metadata, cargo_lock::Lockfile)> {
+    // Locate the Cargo.lock file related to the metadata file.
+    let lockfile_path = metadata_path
+        .parent()
+        .expect("metadata files should always have parents")
+        .join("Cargo.lock");
+    if !lockfile_path.exists() {
+        bail!(
+            "The metadata file at {} is not next to a `Cargo.lock` file.",
+            metadata_path.display()
+        )
+    }
+
     let content = fs::read_to_string(metadata_path)
         .with_context(|| format!("Failed to load Cargo Metadata: {}", metadata_path.display()))?;
 
     let metadata =
         serde_json::from_str(&content).context("Unable to deserialize Cargo metadata")?;
 
-    let lockfile_path = lockfile_path
-        .map(PathBuf::from)
-        .unwrap_or_else(|| metadata_path.parent().unwrap().join("Cargo.lock"));
-
     let lockfile = cargo_lock::Lockfile::load(&lockfile_path)
         .with_context(|| format!("Failed to load lockfile: {}", lockfile_path.display()))?;
 
     Ok((metadata, lockfile))
 }
+
+#[cfg(test)]
+mod test {
+    use super::*;
+
+    #[test]
+    fn deserialize_cargo_update_request_for_eager() {
+        for value in ["1", "yes", "true", "on"] {
+            let request = CargoUpdateRequest::from_str(value).unwrap();
+
+            assert_eq!(request, CargoUpdateRequest::Eager);
+        }
+    }
+
+    #[test]
+    fn deserialize_cargo_update_request_for_workspace() {
+        for value in ["workspace", "minimal"] {
+            let request = CargoUpdateRequest::from_str(value).unwrap();
+
+            assert_eq!(request, CargoUpdateRequest::Workspace);
+        }
+    }
+
+    #[test]
+    fn deserialize_cargo_update_request_for_package() {
+        let request = CargoUpdateRequest::from_str("cargo-bazel").unwrap();
+
+        assert_eq!(
+            request,
+            CargoUpdateRequest::Package {
+                name: "cargo-bazel".to_owned(),
+                version: None
+            }
+        );
+    }
+
+    #[test]
+    fn deserialize_cargo_update_request_for_precise() {
+        let request = CargoUpdateRequest::from_str("cargo-bazel@1.2.3").unwrap();
+
+        assert_eq!(
+            request,
+            CargoUpdateRequest::Package {
+                name: "cargo-bazel".to_owned(),
+                version: Some("1.2.3".to_owned())
+            }
+        );
+    }
+}
diff --git a/third_party/rules_rust/crate_universe/src/metadata/dependency.rs b/third_party/rules_rust/crate_universe/src/metadata/dependency.rs
index 105e4fe..7a98ae2 100644
--- a/third_party/rules_rust/crate_universe/src/metadata/dependency.rs
+++ b/third_party/rules_rust/crate_universe/src/metadata/dependency.rs
@@ -1,4 +1,5 @@
 ///! Gathering dependencies is the largest part of annotating.
+use anyhow::{bail, Result};
 use cargo_metadata::{Metadata as CargoMetadata, Node, NodeDep, Package, PackageId};
 use serde::{Deserialize, Serialize};
 
@@ -120,7 +121,8 @@
 
     for dep in deps.into_iter() {
         let dep_pkg = &metadata[&dep.pkg];
-        let target_name = get_library_target_name(dep_pkg, &dep.name);
+        let target_name = get_library_target_name(dep_pkg, &dep.name)
+            .expect("Nodes Dependencies are expected to exclusively be library-like targets");
         let alias = get_target_alias(&dep.name, dep_pkg);
 
         for kind_info in &dep.dep_kinds {
@@ -190,25 +192,35 @@
         .any(|id| id == &node_dep.pkg)
 }
 
-fn get_library_target_name(package: &Package, potential_name: &str) -> String {
+fn get_library_target_name(package: &Package, potential_name: &str) -> Result<String> {
     // If the potential name is not an alias in a dependent's package, a target's name
     // should match which means we already know what the target library name is.
     if package.targets.iter().any(|t| t.name == potential_name) {
-        return potential_name.to_string();
+        return Ok(potential_name.to_string());
     }
 
     // Locate any library type targets
     let lib_targets: Vec<&cargo_metadata::Target> = package
         .targets
         .iter()
-        .filter(|t| t.kind.iter().any(|k| k == "lib" || k == "proc-macro"))
+        .filter(|t| {
+            t.kind
+                .iter()
+                .any(|k| k == "lib" || k == "rlib" || k == "proc-macro")
+        })
         .collect();
 
     // Only one target should be found
-    assert_eq!(lib_targets.len(), 1);
+    if lib_targets.len() != 1 {
+        bail!(
+            "Unexpected number of 'library-like' targets found for {}: {:?}",
+            package.name,
+            package.targets
+        )
+    }
 
     let target = lib_targets.into_iter().last().unwrap();
-    target.name.clone()
+    Ok(target.name.clone())
 }
 
 /// The resolve graph (resolve.nodes[#].deps[#].name) of Cargo metadata uses module names
@@ -235,6 +247,124 @@
 
     use crate::test::*;
 
+    #[test]
+    fn get_expected_lib_target_name() {
+        let mut package = mock_cargo_metadata_package();
+        package
+            .targets
+            .extend(vec![serde_json::from_value(serde_json::json!({
+                "name": "potential",
+                "kind": ["lib"],
+                "crate_types": [],
+                "required_features": [],
+                "src_path": "/tmp/mock.rs",
+                "edition": "2021",
+                "doctest": false,
+                "test": false,
+                "doc": false,
+            }))
+            .unwrap()]);
+
+        assert_eq!(
+            get_library_target_name(&package, "potential").unwrap(),
+            "potential"
+        );
+    }
+
+    #[test]
+    fn get_lib_target_name() {
+        let mut package = mock_cargo_metadata_package();
+        package
+            .targets
+            .extend(vec![serde_json::from_value(serde_json::json!({
+                "name": "lib_target",
+                "kind": ["lib"],
+                "crate_types": [],
+                "required_features": [],
+                "src_path": "/tmp/mock.rs",
+                "edition": "2021",
+                "doctest": false,
+                "test": false,
+                "doc": false,
+            }))
+            .unwrap()]);
+
+        assert_eq!(
+            get_library_target_name(&package, "mock-pkg").unwrap(),
+            "lib_target"
+        );
+    }
+
+    #[test]
+    fn get_rlib_target_name() {
+        let mut package = mock_cargo_metadata_package();
+        package
+            .targets
+            .extend(vec![serde_json::from_value(serde_json::json!({
+                "name": "rlib_target",
+                "kind": ["rlib"],
+                "crate_types": [],
+                "required_features": [],
+                "src_path": "/tmp/mock.rs",
+                "edition": "2021",
+                "doctest": false,
+                "test": false,
+                "doc": false,
+            }))
+            .unwrap()]);
+
+        assert_eq!(
+            get_library_target_name(&package, "mock-pkg").unwrap(),
+            "rlib_target"
+        );
+    }
+
+    #[test]
+    fn get_proc_macro_target_name() {
+        let mut package = mock_cargo_metadata_package();
+        package
+            .targets
+            .extend(vec![serde_json::from_value(serde_json::json!({
+                "name": "proc_macro_target",
+                "kind": ["proc-macro"],
+                "crate_types": [],
+                "required_features": [],
+                "src_path": "/tmp/mock.rs",
+                "edition": "2021",
+                "doctest": false,
+                "test": false,
+                "doc": false,
+            }))
+            .unwrap()]);
+
+        assert_eq!(
+            get_library_target_name(&package, "mock-pkg").unwrap(),
+            "proc_macro_target"
+        );
+    }
+
+    #[test]
+    fn get_bin_target_name() {
+        let mut package = mock_cargo_metadata_package();
+        package
+            .targets
+            .extend(vec![serde_json::from_value(serde_json::json!({
+                "name": "bin_target",
+                "kind": ["bin"],
+                "crate_types": [],
+                "required_features": [],
+                "src_path": "/tmp/mock.rs",
+                "edition": "2021",
+                "doctest": false,
+                "test": false,
+                "doc": false,
+            }))
+            .unwrap()]);
+
+        // It's an error for no library target to be found.
+        assert!(get_library_target_name(&package, "mock-pkg").is_err());
+    }
+
     /// Locate the [cargo_metadata::Node] for the crate matching the given name
     fn find_metadata_node<'a>(
         name: &str,
diff --git a/third_party/rules_rust/crate_universe/src/metadata/metadata_annotation.rs b/third_party/rules_rust/crate_universe/src/metadata/metadata_annotation.rs
index be4cb7f..c045519 100644
--- a/third_party/rules_rust/crate_universe/src/metadata/metadata_annotation.rs
+++ b/third_party/rules_rust/crate_universe/src/metadata/metadata_annotation.rs
@@ -156,10 +156,11 @@
     },
 }
 
-/// TODO
+/// Additional information related to [Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
+/// data used for improved determinism.
 #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Deserialize, Serialize)]
 pub struct LockfileAnnotation {
-    /// TODO
+    /// A mapping of crates/packages to additional source (network location) information.
     pub crates: BTreeMap<PackageId, SourceAnnotation>,
 }
 
diff --git a/third_party/rules_rust/crate_universe/src/rendering.rs b/third_party/rules_rust/crate_universe/src/rendering.rs
index a0570ba..c4cc249 100644
--- a/third_party/rules_rust/crate_universe/src/rendering.rs
+++ b/third_party/rules_rust/crate_universe/src/rendering.rs
@@ -211,13 +211,14 @@
 
     use crate::config::{Config, CrateId, VendorMode};
     use crate::context::crate_context::{CrateContext, Rule};
-    use crate::context::{BuildScriptAttributes, Context, TargetAttributes};
+    use crate::context::{BuildScriptAttributes, CommonAttributes, Context, TargetAttributes};
     use crate::metadata::Annotations;
     use crate::test;
 
     fn mock_render_config() -> RenderConfig {
         serde_json::from_value(serde_json::json!({
-            "repository_name": "test_rendering"
+            "repository_name": "test_rendering",
+            "regen_command": "cargo_bazel_regen_command",
         }))
         .unwrap()
     }
@@ -467,4 +468,54 @@
         // Local vendoring does not produce a `crates.bzl` file.
         assert!(output.get(&PathBuf::from("crates.bzl")).is_none());
     }
+
+    #[test]
+    fn duplicate_rustc_flags() {
+        let mut context = Context::default();
+        let crate_id = CrateId::new("mock_crate".to_owned(), "0.1.0".to_owned());
+
+        let rustc_flags = vec![
+            "-l".to_owned(),
+            "dylib=ssl".to_owned(),
+            "-l".to_owned(),
+            "dylib=crypto".to_owned(),
+        ];
+
+        context.crates.insert(
+            crate_id.clone(),
+            CrateContext {
+                name: crate_id.name,
+                version: crate_id.version,
+                targets: vec![Rule::Library(mock_target_attributes())],
+                common_attrs: CommonAttributes {
+                    rustc_flags: rustc_flags.clone(),
+                    ..CommonAttributes::default()
+                },
+                ..CrateContext::default()
+            },
+        );
+
+        // Enable local vendor mode
+        let config = RenderConfig {
+            vendor_mode: Some(VendorMode::Local),
+            ..mock_render_config()
+        };
+
+        let renderer = Renderer::new(config);
+        let output = renderer.render(&context).unwrap();
+
+        let build_file_content = output
+            .get(&PathBuf::from("BUILD.mock_crate-0.1.0.bazel"))
+            .unwrap();
+
+        // Strip all spaces from the generated BUILD file and ensure it has the flags
+        // represented by `rustc_flags` in the same order.
+        assert!(build_file_content.replace(' ', "").contains(
+            &rustc_flags
+                .iter()
+                .map(|s| format!("\"{}\",", s))
+                .collect::<Vec<String>>()
+                .join("\n")
+        ));
+    }
 }
diff --git a/third_party/rules_rust/crate_universe/src/rendering/template_engine.rs b/third_party/rules_rust/crate_universe/src/rendering/template_engine.rs
index 792802f..3785b34 100644
--- a/third_party/rules_rust/crate_universe/src/rendering/template_engine.rs
+++ b/third_party/rules_rust/crate_universe/src/rendering/template_engine.rs
@@ -194,6 +194,7 @@
         context.insert("default_select_dict", &SelectStringDict::default());
         context.insert("repository_name", &render_config.repository_name);
         context.insert("vendor_mode", &render_config.vendor_mode);
+        context.insert("regen_command", &render_config.regen_command);
         context.insert("Null", &tera::Value::Null);
         context.insert(
             "default_package_name",
diff --git a/third_party/rules_rust/crate_universe/src/rendering/templates/module_bzl.j2 b/third_party/rules_rust/crate_universe/src/rendering/templates/module_bzl.j2
index 4ea1624..c3a1e6d 100644
--- a/third_party/rules_rust/crate_universe/src/rendering/templates/module_bzl.j2
+++ b/third_party/rules_rust/crate_universe/src/rendering/templates/module_bzl.j2
@@ -195,7 +195,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
diff --git a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/build_script.j2 b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/build_script.j2
index 45b97f7..9b1ff45 100644
--- a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/build_script.j2
+++ b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/build_script.j2
@@ -39,7 +39,14 @@
         # warnings. For more details see: 
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + {% set selectable = crate.build_script_attrs | get(key="rustc_flags", default=Null) %}{% include "partials/starlark/selectable_list.j2" %},
+        {%- if crate.common_attrs | get(key="rustc_flags", default=Null) %}
+
+        # User provided rustc_flags
+        {%- for rustc_flag in crate.common_attrs.rustc_flags %}
+        "{{ rustc_flag }}",
+        {%- endfor %}
+        {%- endif %}
+    ],
     srcs = {% set glob = target.srcs %}{% include "partials/starlark/glob.j2" -%},
     tools = {% set selectable = crate.build_script_attrs | get(key="tools", default=Null) %}{% include "partials/starlark/selectable_list.j2" %},
     version = "{{ crate.common_attrs.version }}",
@@ -54,6 +61,13 @@
         "noclippy",
         "norustfmt",
     ],
+    {%- if crate.build_script_attrs | get(key="toolchains", default=Null) %}
+    toolchains = [
+        {%- for toolchain in crate.build_script_attrs.toolchains %}
+        "{{ toolchain }}",
+        {%- endfor %}
+    ],
+    {%- endif %}
     visibility = ["//visibility:private"],
 )
 alias(
diff --git a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/common_attrs.j2 b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/common_attrs.j2
index a381f44..c1cccbb 100644
--- a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/common_attrs.j2
+++ b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/crate/common_attrs.j2
@@ -1,11 +1,11 @@
-    compile_data = {% if crate.common_attrs | get(key="compile_data_glob") %}glob({{ crate.common_attrs.compile_data_glob | json_encode | safe }}) + {% endif %}{% set selectable = crate.common_attrs | get(key="compile_data", default=default_select_list) %}{% include "partials/starlark/selectable_list.j2" -%},
+    compile_data = {% if crate.common_attrs | get(key="compile_data_glob") %}glob(include = {{ crate.common_attrs.compile_data_glob | json_encode | safe }}, exclude = ["BUILD", "BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel"]) + {% endif %}{% set selectable = crate.common_attrs | get(key="compile_data", default=default_select_list) %}{% include "partials/starlark/selectable_list.j2" -%},
     crate_root = "{{ target.crate_root }}",
     crate_features = [
         {%- for feature in crate.common_attrs | get(key="crate_features", default=[]) %}
         "{{ feature }}",
         {%- endfor %}
     ],
-    data = {% if crate.common_attrs | get(key="data_glob") %}glob({{ crate.common_attrs.data_glob | json_encode | safe }}) + {% endif %}{% set selectable = crate.common_attrs | get(key="data", default=default_select_list) %}{% include "partials/starlark/selectable_list.j2" -%},
+    data = {% if crate.common_attrs | get(key="data_glob") %}glob(include = {{ crate.common_attrs.data_glob | json_encode | safe }}, exclude = ["BUILD", "BUILD.bazel", "WORKSPACE", "WORKSPACE.bazel"]) + {% endif %}{% set selectable = crate.common_attrs | get(key="data", default=default_select_list) %}{% include "partials/starlark/selectable_list.j2" -%},
     edition = "{{ crate.common_attrs.edition }}",
     {%- if crate.common_attrs | get(key="linker_script", default=Null) %}
     linker_script = "{{ crate.common_attrs.linker_script }}",
@@ -18,7 +18,14 @@
         # warnings. For more details see: 
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + {% set selectable = crate.common_attrs | get(key="rustc_flags", default=Null) %}{% include "partials/starlark/selectable_list.j2" -%},
+        {%- if crate.common_attrs | get(key="rustc_flags", default=Null) %}
+
+        # User provided rustc_flags
+        {%- for rustc_flag in crate.common_attrs.rustc_flags %}
+        "{{ rustc_flag }}",
+        {%- endfor %}
+        {%- endif %}
+    ],
     srcs = {% set glob = target.srcs %}{% include "partials/starlark/glob.j2" -%},
     version = "{{ crate.common_attrs.version }}",
     tags = [
diff --git a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/header.j2 b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/header.j2
index 6f88e85..8e68e49 100644
--- a/third_party/rules_rust/crate_universe/src/rendering/templates/partials/header.j2
+++ b/third_party/rules_rust/crate_universe/src/rendering/templates/partials/header.j2
@@ -1,6 +1,7 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To 
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     {{regen_command}}
 ###############################################################################
\ No newline at end of file
diff --git a/third_party/rules_rust/crate_universe/src/splicing.rs b/third_party/rules_rust/crate_universe/src/splicing.rs
index 0de1daa..8d42e1e 100644
--- a/third_party/rules_rust/crate_universe/src/splicing.rs
+++ b/third_party/rules_rust/crate_universe/src/splicing.rs
@@ -15,26 +15,15 @@
 use serde::{Deserialize, Serialize};
 
 use crate::config::CrateId;
-use crate::metadata::LockGenerator;
+use crate::metadata::{CargoUpdateRequest, LockGenerator};
 use crate::utils::starlark::Label;
 
 use self::cargo_config::CargoConfig;
 pub use self::splicer::*;
 
-#[derive(Debug, Default, Serialize, Deserialize)]
-pub struct ExtraManifestInfo {
-    // The path to a Cargo Manifest
-    pub manifest: PathBuf,
-
-    // The URL where the manifest's package can be downloaded
-    pub url: String,
-
-    // The Sha256 checksum of the downloaded package located at `url`.
-    pub sha256: String,
-}
-
 type DirectPackageManifest = BTreeMap<String, cargo_toml::DependencyDetail>;
 
+/// A collection of information used for splicing together a new Cargo manifest.
 #[derive(Debug, Default, Serialize, Deserialize, Clone)]
 #[serde(deny_unknown_fields)]
 pub struct SplicingManifest {
@@ -65,33 +54,35 @@
         Self::from_str(&content).context("Failed to load SplicingManifest")
     }
 
-    pub fn absoulutize(self, relative_to: &Path) -> Self {
+    pub fn resolve(self, workspace_dir: &Path, output_base: &Path) -> Self {
         let Self {
             manifests,
             cargo_config,
             ..
         } = self;
 
+        let workspace_dir_str = workspace_dir.to_string_lossy();
+        let output_base_str = output_base.to_string_lossy();
+
         // Ensure manifests all have absolute paths
         let manifests = manifests
             .into_iter()
             .map(|(path, label)| {
-                if !path.is_absolute() {
-                    let path = relative_to.join(path);
-                    (path, label)
-                } else {
-                    (path, label)
-                }
+                let resolved_path = path
+                    .to_string_lossy()
+                    .replace("${build_workspace_directory}", &workspace_dir_str)
+                    .replace("${output_base}", &output_base_str);
+                (PathBuf::from(resolved_path), label)
             })
             .collect();
 
         // Ensure the cargo config is located at an absolute path
         let cargo_config = cargo_config.map(|path| {
-            if !path.is_absolute() {
-                relative_to.join(path)
-            } else {
-                path
-            }
+            let resolved_path = path
+                .to_string_lossy()
+                .replace("${build_workspace_directory}", &workspace_dir_str)
+                .replace("${output_base}", &output_base_str);
+            PathBuf::from(resolved_path)
         });
 
         Self {
@@ -102,6 +93,7 @@
     }
 }
 
+/// The result of fully resolving a [SplicingManifest] in preparation for splicing.
 #[derive(Debug, Serialize, Default)]
 pub struct SplicingMetadata {
     /// A set of all packages directly written to the rule
@@ -147,32 +139,6 @@
     }
 }
 
-/// A collection of information required for reproducible "extra worksspace members".
-#[derive(Debug, Default, Serialize, Deserialize)]
-#[serde(deny_unknown_fields)]
-pub struct ExtraManifestsManifest {
-    pub manifests: Vec<ExtraManifestInfo>,
-}
-
-impl FromStr for ExtraManifestsManifest {
-    type Err = serde_json::Error;
-
-    fn from_str(s: &str) -> Result<Self, Self::Err> {
-        serde_json::from_str(s)
-    }
-}
-
-impl ExtraManifestsManifest {
-    pub fn try_from_path<T: AsRef<Path>>(path: T) -> Result<Self> {
-        let content = fs::read_to_string(path.as_ref())?;
-        Self::from_str(&content).context("Failed to load ExtraManifestsManifest")
-    }
-
-    pub fn absoulutize(self) -> Self {
-        self
-    }
-}
-
 #[derive(Debug, Default, Serialize, Deserialize, Clone)]
 pub struct SourceInfo {
     /// A url where to a `.crate` file.
@@ -227,30 +193,9 @@
 impl WorkspaceMetadata {
     fn new(
         splicing_manifest: &SplicingManifest,
-        extra_manifests_manifest: &ExtraManifestsManifest,
-        injected_manifests: HashMap<&PathBuf, String>,
+        member_manifests: HashMap<&PathBuf, String>,
     ) -> Result<Self> {
-        let mut sources = BTreeMap::new();
-
-        for config in extra_manifests_manifest.manifests.iter() {
-            let package = match read_manifest(&config.manifest) {
-                Ok(manifest) => match manifest.package {
-                    Some(pkg) => pkg,
-                    None => continue,
-                },
-                Err(e) => return Err(e),
-            };
-
-            let id = CrateId::new(package.name, package.version);
-            let info = SourceInfo {
-                url: config.url.clone(),
-                sha256: config.sha256.clone(),
-            };
-
-            sources.insert(id, info);
-        }
-
-        let mut package_prefixes: BTreeMap<String, String> = injected_manifests
+        let mut package_prefixes: BTreeMap<String, String> = member_manifests
             .iter()
             .filter_map(|(original_manifest, cargo_pkg_name)| {
                 let label = match splicing_manifest.manifests.get(*original_manifest) {
@@ -285,7 +230,7 @@
             .collect();
 
         Ok(Self {
-            sources,
+            sources: BTreeMap::new(),
             workspace_prefix,
             package_prefixes,
         })
@@ -469,6 +414,7 @@
     existing_lock: &Option<PathBuf>,
     cargo_bin: &Path,
     rustc_bin: &Path,
+    update_request: &Option<CargoUpdateRequest>,
 ) -> Result<cargo_lock::Lockfile> {
     let manifest_dir = manifest_path
         .as_path_buf()
@@ -484,7 +430,7 @@
 
     // Generate the new lockfile
     let lockfile = LockGenerator::new(PathBuf::from(cargo_bin), PathBuf::from(rustc_bin))
-        .generate(manifest_path.as_path_buf(), existing_lock)?;
+        .generate(manifest_path.as_path_buf(), existing_lock, update_request)?;
 
     // Write the lockfile to disk
     if !root_lockfile_path.exists() {
@@ -493,3 +439,107 @@
 
     Ok(lockfile)
 }
+
+#[cfg(test)]
+mod test {
+    use super::*;
+
+    use std::path::PathBuf;
+
+    #[test]
+    fn deserialize_splicing_manifest() {
+        let runfiles = runfiles::Runfiles::create().unwrap();
+        let path = runfiles.rlocation(
+            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json",
+        );
+
+        let content = std::fs::read_to_string(path).unwrap();
+
+        let manifest: SplicingManifest = serde_json::from_str(&content).unwrap();
+
+        // Check manifests
+        assert_eq!(
+            manifest.manifests,
+            BTreeMap::from([
+                (
+                    PathBuf::from("${build_workspace_directory}/submod/Cargo.toml"),
+                    Label::from_str("//submod:Cargo.toml").unwrap()
+                ),
+                (
+                    PathBuf::from("${output_base}/external_crate/Cargo.toml"),
+                    Label::from_str("@external_crate//:Cargo.toml").unwrap()
+                ),
+                (
+                    PathBuf::from("/tmp/abs/path/workspace/Cargo.toml"),
+                    Label::from_str("//:Cargo.toml").unwrap()
+                ),
+            ])
+        );
+
+        // Check splicing configs
+        assert_eq!(manifest.resolver_version, cargo_toml::Resolver::V2);
+
+        // Check packages
+        assert_eq!(manifest.direct_packages.len(), 1);
+        let package = manifest.direct_packages.get("rand").unwrap();
+        assert_eq!(
+            package,
+            &cargo_toml::DependencyDetail {
+                default_features: Some(false),
+                features: vec!["small_rng".to_owned()],
+                version: Some("0.8.5".to_owned()),
+                ..Default::default()
+            }
+        );
+
+        // Check cargo config
+        assert_eq!(
+            manifest.cargo_config,
+            Some(PathBuf::from("/tmp/abs/path/workspace/.cargo/config.toml"))
+        );
+    }
+
+    #[test]
+    fn splicing_manifest_resolve() {
+        let runfiles = runfiles::Runfiles::create().unwrap();
+        let path = runfiles.rlocation(
+            "rules_rust/crate_universe/test_data/serialized_configs/splicing_manifest.json",
+        );
+
+        let content = std::fs::read_to_string(path).unwrap();
+
+        let mut manifest: SplicingManifest = serde_json::from_str(&content).unwrap();
+        manifest.cargo_config = Some(PathBuf::from(
+            "${build_workspace_directory}/.cargo/config.toml",
+        ));
+        manifest = manifest.resolve(
+            &PathBuf::from("/tmp/abs/path/workspace"),
+            &PathBuf::from("/tmp/output_base"),
+        );
+
+        // Check manifests
+        assert_eq!(
+            manifest.manifests,
+            BTreeMap::from([
+                (
+                    PathBuf::from("/tmp/abs/path/workspace/submod/Cargo.toml"),
+                    Label::from_str("//submod:Cargo.toml").unwrap()
+                ),
+                (
+                    PathBuf::from("/tmp/output_base/external_crate/Cargo.toml"),
+                    Label::from_str("@external_crate//:Cargo.toml").unwrap()
+                ),
+                (
+                    PathBuf::from("/tmp/abs/path/workspace/Cargo.toml"),
+                    Label::from_str("//:Cargo.toml").unwrap()
+                ),
+            ])
+        );
+
+        // Check cargo config
+        assert_eq!(
+            manifest.cargo_config.unwrap(),
+            PathBuf::from("/tmp/abs/path/workspace/.cargo/config.toml"),
+        )
+    }
+}
diff --git a/third_party/rules_rust/crate_universe/src/splicing/splicer.rs b/third_party/rules_rust/crate_universe/src/splicing/splicer.rs
index 5e3ef27..8374df4 100644
--- a/third_party/rules_rust/crate_universe/src/splicing/splicer.rs
+++ b/third_party/rules_rust/crate_universe/src/splicing/splicer.rs
@@ -5,16 +5,15 @@
 use std::path::{Path, PathBuf};
 
 use anyhow::{bail, Context, Result};
+use cargo_metadata::MetadataCommand;
 use cargo_toml::{Dependency, Manifest};
+use normpath::PathExt;
 
 use crate::config::CrateId;
 use crate::splicing::{SplicedManifest, SplicingManifest};
 use crate::utils::starlark::Label;
 
-use super::{
-    read_manifest, DirectPackageManifest, ExtraManifestInfo, ExtraManifestsManifest,
-    WorkspaceMetadata,
-};
+use super::{read_manifest, DirectPackageManifest, WorkspaceMetadata};
 
 /// The core splicer implementation. Each style of Bazel workspace should be represented
 /// here and a splicing implementation defined.
@@ -24,7 +23,6 @@
         path: &'a PathBuf,
         manifest: &'a Manifest,
         splicing_manifest: &'a SplicingManifest,
-        extra_manifests_manifest: &'a ExtraManifestsManifest,
     },
     /// Splice a manifest for a single package. This includes cases where
     /// were defined directly in Bazel.
@@ -32,13 +30,11 @@
         path: &'a PathBuf,
         manifest: &'a Manifest,
         splicing_manifest: &'a SplicingManifest,
-        extra_manifests_manifest: &'a ExtraManifestsManifest,
     },
     /// Splice a manifest from multiple disjoint Cargo manifests.
     MultiPackage {
         manifests: &'a HashMap<PathBuf, Manifest>,
         splicing_manifest: &'a SplicingManifest,
-        extra_manifests_manifest: &'a ExtraManifestsManifest,
     },
 }
 
@@ -49,7 +45,7 @@
     pub fn new(
         manifests: &'a HashMap<PathBuf, Manifest>,
         splicing_manifest: &'a SplicingManifest,
-        extra_manifests_manifest: &'a ExtraManifestsManifest,
+        cargo: &Path,
     ) -> Result<Self> {
         // First check for any workspaces in the provided manifests
         let workspace_owned: HashMap<&PathBuf, &Manifest> = manifests
@@ -73,7 +69,33 @@
                 bail!("When splicing manifests, there can only be 1 root workspace manifest");
             }
 
+            // This is an error case - we've detected some manifests are in a workspace, but can't
+            // find it.
+            // This block is just for trying to give as useful an error message as possible in this
+            // case.
+            if workspace_roots.is_empty() {
+                let sorted_manifests: BTreeSet<_> = manifests.keys().collect();
+                for manifest_path in sorted_manifests {
+                    let metadata_result = MetadataCommand::new()
+                        .cargo_path(cargo)
+                        .current_dir(manifest_path.parent().unwrap())
+                        .manifest_path(manifest_path)
+                        .no_deps()
+                        .exec();
+                    if let Ok(metadata) = metadata_result {
+                        let label = Label::from_absolute_path(
+                            metadata.workspace_root.join("Cargo.toml").as_std_path(),
+                        );
+                        if let Ok(label) = label {
+                            bail!("Missing root workspace manifest. Please add the following label to the `manifests` key: \"{}\"", label);
+                        }
+                    }
+                }
+                bail!("Missing root workspace manifest. Please add the label of the workspace root to the `manifests` key");
+            }
+
             // Ensure all workspace owned manifests are members of the one workspace root
+            // UNWRAP: Safe because we've checked workspace_roots isn't empty.
             let (root_manifest_path, root_manifest) = workspace_roots.drain().last().unwrap();
             let external_workspace_members: BTreeSet<String> = workspace_packages
                 .into_iter()
@@ -87,38 +109,22 @@
                 bail!("A package was provided that appears to be a part of another workspace.\nworkspace root: '{}'\nexternal packages: {:#?}", root_manifest_path.display(), external_workspace_members)
             }
 
-            // Ensure all workspace members are present for the given workspace
-            let workspace_members = root_manifest.workspace.as_ref().unwrap().members.clone();
-            let missing_manifests: BTreeSet<String> = workspace_members
-                .into_iter()
-                .filter(|member| {
-                    // Check for any members that are missing from the list of manifests
-                    !manifests.keys().any(|path| {
-                        let path_str = path.to_string_lossy().to_string();
-                        // Account for windows paths.
-                        let path_str = path_str.replace("\\", "/");
-                        // Workspace members are represented as directories.
-                        path_str.trim_end_matches("/Cargo.toml").ends_with(member)
+            // UNWRAP: Safe because a Cargo.toml file must have a parent directory.
+            let root_manifest_dir = root_manifest_path.parent().unwrap();
+            let missing_manifests = Self::find_missing_manifests(
+                root_manifest,
+                root_manifest_dir,
+                &manifests
+                    .keys()
+                    .map(|p| {
+                        p.normalize()
+                            .with_context(|| format!("Failed to normalize path {:?}", p))
                     })
-                })
-                .filter_map(|path_str| {
-                    // UNWRAP: Safe because a Cargo.toml file must have a parent directory.
-                    let cargo_manifest_dir = root_manifest_path.parent().unwrap();
-                    let label = Label::from_absolute_path(
-                        &cargo_manifest_dir.join(path_str).join("Cargo.toml"),
-                    );
-                    match label {
-                        Ok(label) => Some(label.to_string()),
-                        Err(err) => {
-                            eprintln!("Failed to identify label for missing manifest: {}", err);
-                            None
-                        }
-                    }
-                })
-                .collect();
-
+                    .collect::<Result<_, _>>()?,
+            )
+            .context("Identifying missing manifests")?;
             if !missing_manifests.is_empty() {
-                bail!("Some manifests are not being tracked. Please add the following labels to the `manifests` key: {:#?}", missing_manifests)
+                bail!("Some manifests are not being tracked. Please add the following labels to the `manifests` key: {:#?}", missing_manifests);
             }
 
             root_workspace_pair = Some((root_manifest_path, root_manifest));
@@ -129,7 +135,6 @@
                 path,
                 manifest,
                 splicing_manifest,
-                extra_manifests_manifest,
             })
         } else if manifests.len() == 1 {
             let (path, manifest) = manifests.iter().last().unwrap();
@@ -137,17 +142,52 @@
                 path,
                 manifest,
                 splicing_manifest,
-                extra_manifests_manifest,
             })
         } else {
             Ok(Self::MultiPackage {
                 manifests,
                 splicing_manifest,
-                extra_manifests_manifest,
             })
         }
     }
 
+    fn find_missing_manifests(
+        root_manifest: &Manifest,
+        root_manifest_dir: &Path,
+        known_manifest_paths: &BTreeSet<normpath::BasePathBuf>,
+    ) -> Result<BTreeSet<String>> {
+        let workspace_manifest_paths = root_manifest
+            .workspace
+            .as_ref()
+            .unwrap()
+            .members
+            .iter()
+            .map(|member| {
+                let path = root_manifest_dir.join(member).join("Cargo.toml");
+                path.normalize()
+                    .with_context(|| format!("Failed to normalize path {:?}", path))
+            })
+            .collect::<Result<BTreeSet<normpath::BasePathBuf>, _>>()?;
+
+        // Ensure all workspace members are present for the given workspace
+        workspace_manifest_paths
+            .into_iter()
+            .filter(|workspace_manifest_path| {
+                !known_manifest_paths.contains(workspace_manifest_path)
+            })
+            .map(|workspace_manifest_path| {
+                let label = Label::from_absolute_path(workspace_manifest_path.as_path())
+                    .with_context(|| {
+                        format!(
+                            "Failed to identify label for path {:?}",
+                            workspace_manifest_path
+                        )
+                    })?;
+                Ok(label.to_string())
+            })
+            .collect()
+    }
+
     /// Performs splicing based on the current variant.
     pub fn splice(&self, workspace_dir: &Path) -> Result<SplicedManifest> {
         match self {
@@ -155,76 +195,45 @@
                 path,
                 manifest,
                 splicing_manifest,
-                extra_manifests_manifest,
-            } => Self::splice_workspace(
-                workspace_dir,
-                path,
-                manifest,
-                splicing_manifest,
-                extra_manifests_manifest,
-            ),
+            } => Self::splice_workspace(workspace_dir, path, manifest, splicing_manifest),
             SplicerKind::Package {
                 path,
                 manifest,
                 splicing_manifest,
-                extra_manifests_manifest,
-            } => Self::splice_package(
-                workspace_dir,
-                path,
-                manifest,
-                splicing_manifest,
-                extra_manifests_manifest,
-            ),
+            } => Self::splice_package(workspace_dir, path, manifest, splicing_manifest),
             SplicerKind::MultiPackage {
                 manifests,
                 splicing_manifest,
-                extra_manifests_manifest,
-            } => Self::splice_multi_package(
-                workspace_dir,
-                manifests,
-                splicing_manifest,
-                extra_manifests_manifest,
-            ),
+            } => Self::splice_multi_package(workspace_dir, manifests, splicing_manifest),
         }
     }
 
+    /// Implementation for splicing Cargo workspaces
     fn splice_workspace(
         workspace_dir: &Path,
         path: &&PathBuf,
         manifest: &&Manifest,
         splicing_manifest: &&SplicingManifest,
-        extra_manifests_manifest: &&ExtraManifestsManifest,
     ) -> Result<SplicedManifest> {
         let mut manifest = (*manifest).clone();
         let manifest_dir = path
             .parent()
             .expect("Every manifest should havee a parent directory");
 
-        let extra_workspace_manifests =
-            Self::get_extra_workspace_manifests(&extra_manifests_manifest.manifests)?;
-
         // Link the sources of the root manifest into the new workspace
         symlink_roots(manifest_dir, workspace_dir, Some(IGNORE_LIST))?;
 
         // Optionally install the cargo config after contents have been symlinked
         Self::setup_cargo_config(&splicing_manifest.cargo_config, workspace_dir)?;
 
-        // Add additional workspace members to the new manifest
-        let mut installations = Self::inject_workspace_members(
-            &mut manifest,
-            &extra_workspace_manifests,
-            workspace_dir,
-        )?;
-
         // Add any additional depeendencies to the root package
         Self::inject_direct_packages(&mut manifest, &splicing_manifest.direct_packages)?;
 
         let root_manifest_path = workspace_dir.join("Cargo.toml");
-        installations.insert(path, String::new());
+        let member_manifests = HashMap::from([(*path, String::new())]);
 
         // Write the generated metadata to the manifest
-        let workspace_metadata =
-            WorkspaceMetadata::new(splicing_manifest, extra_manifests_manifest, installations)?;
+        let workspace_metadata = WorkspaceMetadata::new(splicing_manifest, member_manifests)?;
         workspace_metadata.inject_into(&mut manifest)?;
 
         // Write the root manifest
@@ -233,20 +242,17 @@
         Ok(SplicedManifest::Workspace(root_manifest_path))
     }
 
+    /// Implementation for splicing individual Cargo packages
     fn splice_package(
         workspace_dir: &Path,
         path: &&PathBuf,
         manifest: &&Manifest,
         splicing_manifest: &&SplicingManifest,
-        extra_manifests_manifest: &&ExtraManifestsManifest,
     ) -> Result<SplicedManifest> {
         let manifest_dir = path
             .parent()
             .expect("Every manifest should havee a parent directory");
 
-        let extra_workspace_manifests =
-            Self::get_extra_workspace_manifests(&extra_manifests_manifest.manifests)?;
-
         // Link the sources of the root manifest into the new workspace
         symlink_roots(manifest_dir, workspace_dir, Some(IGNORE_LIST))?;
 
@@ -260,22 +266,14 @@
                 default_cargo_workspace_manifest(&splicing_manifest.resolver_version).workspace
         }
 
-        // Add additional workspace members to the new manifest
-        let mut installations = Self::inject_workspace_members(
-            &mut manifest,
-            &extra_workspace_manifests,
-            workspace_dir,
-        )?;
-
         // Add any additional depeendencies to the root package
         Self::inject_direct_packages(&mut manifest, &splicing_manifest.direct_packages)?;
 
         let root_manifest_path = workspace_dir.join("Cargo.toml");
-        installations.insert(path, String::new());
+        let member_manifests = HashMap::from([(*path, String::new())]);
 
         // Write the generated metadata to the manifest
-        let workspace_metadata =
-            WorkspaceMetadata::new(splicing_manifest, extra_manifests_manifest, installations)?;
+        let workspace_metadata = WorkspaceMetadata::new(splicing_manifest, member_manifests)?;
         workspace_metadata.inject_into(&mut manifest)?;
 
         // Write the root manifest
@@ -284,37 +282,22 @@
         Ok(SplicedManifest::Package(root_manifest_path))
     }
 
+    /// Implementation for splicing together multiple Cargo packages/workspaces
     fn splice_multi_package(
         workspace_dir: &Path,
         manifests: &&HashMap<PathBuf, Manifest>,
         splicing_manifest: &&SplicingManifest,
-        extra_manifests_manifest: &&ExtraManifestsManifest,
     ) -> Result<SplicedManifest> {
         let mut manifest = default_cargo_workspace_manifest(&splicing_manifest.resolver_version);
 
         // Optionally install a cargo config file into the workspace root.
         Self::setup_cargo_config(&splicing_manifest.cargo_config, workspace_dir)?;
 
-        let extra_workspace_manifests =
-            Self::get_extra_workspace_manifests(&extra_manifests_manifest.manifests)?;
-
-        let manifests: HashMap<PathBuf, Manifest> = manifests
-            .iter()
-            .map(|(p, m)| (p.to_owned(), m.to_owned()))
-            .collect();
-
-        let all_manifests = manifests
-            .iter()
-            .chain(extra_workspace_manifests.iter())
-            .map(|(k, v)| (k.clone(), v.clone()))
-            .collect();
-
         let installations =
-            Self::inject_workspace_members(&mut manifest, &all_manifests, workspace_dir)?;
+            Self::inject_workspace_members(&mut manifest, manifests, workspace_dir)?;
 
         // Write the generated metadata to the manifest
-        let workspace_metadata =
-            WorkspaceMetadata::new(splicing_manifest, extra_manifests_manifest, installations)?;
+        let workspace_metadata = WorkspaceMetadata::new(splicing_manifest, installations)?;
         workspace_metadata.inject_into(&mut manifest)?;
 
         // Add any additional depeendencies to the root package
@@ -327,38 +310,9 @@
         Ok(SplicedManifest::MultiPackage(root_manifest_path))
     }
 
-    /// Extract the set of extra workspace member manifests such that it matches
-    /// how other manifests are passed when creating a new [SplicerKind].
-    fn get_extra_workspace_manifests(
-        extra_manifests: &[ExtraManifestInfo],
-    ) -> Result<HashMap<PathBuf, Manifest>> {
-        extra_manifests
-            .iter()
-            .map(|config| match read_manifest(&config.manifest) {
-                Ok(manifest) => Ok((config.manifest.clone(), manifest)),
-                Err(err) => Err(err),
-            })
-            .collect()
-    }
-
     /// A helper for installing Cargo config files into the spliced workspace while also
     /// ensuring no other linked config file is available
     fn setup_cargo_config(cargo_config_path: &Option<PathBuf>, workspace_dir: &Path) -> Result<()> {
-        // Make sure no other config files exist
-        for config in vec![
-            workspace_dir.join("config"),
-            workspace_dir.join("config.toml"),
-        ] {
-            if config.exists() {
-                fs::remove_file(&config).with_context(|| {
-                    format!(
-                        "Failed to delete existing cargo config: {}",
-                        config.display()
-                    )
-                })?;
-            }
-        }
-
         // If the `.cargo` dir is a symlink, we'll need to relink it and ensure
         // a Cargo config file is omitted
         let dot_cargo_dir = workspace_dir.join(".cargo");
@@ -383,12 +337,53 @@
                     dot_cargo_dir.join("config.toml"),
                 ] {
                     if config.exists() {
-                        fs::remove_file(&config)?;
+                        remove_symlink(&config).with_context(|| {
+                            format!(
+                                "Failed to delete existing cargo config: {}",
+                                config.display()
+                            )
+                        })?;
                     }
                 }
             }
         }
 
+        // Make sure no other config files exist
+        for config in vec![
+            workspace_dir.join("config"),
+            workspace_dir.join("config.toml"),
+            dot_cargo_dir.join("config"),
+            dot_cargo_dir.join("config.toml"),
+        ] {
+            if config.exists() {
+                remove_symlink(&config).with_context(|| {
+                    format!(
+                        "Failed to delete existing cargo config: {}",
+                        config.display()
+                    )
+                })?;
+            }
+        }
+
+        // Ensure no parent directory also has a cargo config
+        let mut current_parent = workspace_dir.parent();
+        while let Some(parent) = current_parent {
+            let dot_cargo_dir = parent.join(".cargo");
+            for config in vec![
+                dot_cargo_dir.join("config.toml"),
+                dot_cargo_dir.join("config"),
+            ] {
+                if config.exists() {
+                    bail!(
+                        "A Cargo config file was found in a parent directory to the current workspace. This is not allowed because these settings will leak into your Bazel build but will not be reproducible on other machines.\nWorkspace = {}\nCargo config = {}",
+                        workspace_dir.display(),
+                        config.display(),
+                    )
+                }
+            }
+            current_parent = parent.parent()
+        }
+
         // Install the new config file after having removed all others
         if let Some(cargo_config_path) = cargo_config_path {
             if !dot_cargo_dir.exists() {
@@ -480,15 +475,10 @@
     workspace_dir: PathBuf,
     manifests: HashMap<PathBuf, Manifest>,
     splicing_manifest: SplicingManifest,
-    extra_manifests_manifest: ExtraManifestsManifest,
 }
 
 impl Splicer {
-    pub fn new(
-        workspace_dir: PathBuf,
-        splicing_manifest: SplicingManifest,
-        extra_manifests_manifest: ExtraManifestsManifest,
-    ) -> Result<Self> {
+    pub fn new(workspace_dir: PathBuf, splicing_manifest: SplicingManifest) -> Result<Self> {
         // Load all manifests
         let manifests = splicing_manifest
             .manifests
@@ -504,18 +494,13 @@
             workspace_dir,
             manifests,
             splicing_manifest,
-            extra_manifests_manifest,
         })
     }
 
     /// Build a new workspace root
-    pub fn splice_workspace(&self) -> Result<SplicedManifest> {
-        SplicerKind::new(
-            &self.manifests,
-            &self.splicing_manifest,
-            &self.extra_manifests_manifest,
-        )?
-        .splice(&self.workspace_dir)
+    pub fn splice_workspace(&self, cargo: &Path) -> Result<SplicedManifest> {
+        SplicerKind::new(&self.manifests, &self.splicing_manifest, cargo)?
+            .splice(&self.workspace_dir)
     }
 }
 
@@ -719,8 +704,8 @@
     use std::str::FromStr;
 
     use cargo_metadata::{MetadataCommand, PackageId};
+    use maplit::btreeset;
 
-    use crate::splicing::ExtraManifestInfo;
     use crate::utils::starlark::Label;
 
     /// Clone and compare two items after calling `.sort()` on them.
@@ -750,6 +735,10 @@
         (PathBuf::from("cargo"), PathBuf::from("rustc"))
     }
 
+    fn cargo() -> PathBuf {
+        get_cargo_and_rustc_paths().0
+    }
+
     fn generate_metadata(manifest_path: &Path) -> cargo_metadata::Metadata {
         let manifest_dir = manifest_path.parent().unwrap_or_else(|| {
             panic!(
@@ -790,16 +779,28 @@
     }
 
     fn mock_cargo_toml(path: &Path, name: &str) -> cargo_toml::Manifest {
+        mock_cargo_toml_with_dependencies(path, name, &[])
+    }
+
+    fn mock_cargo_toml_with_dependencies(
+        path: &Path,
+        name: &str,
+        deps: &[&str],
+    ) -> cargo_toml::Manifest {
         let manifest = cargo_toml::Manifest::from_str(&textwrap::dedent(&format!(
             r#"
             [package]
-            name = "{}"
+            name = "{name}"
             version = "0.0.1"
 
             [lib]
             path = "lib.rs"
+
+            [dependencies]
+            {dependencies}
             "#,
-            name
+            name = name,
+            dependencies = deps.join("\n")
         )))
         .unwrap();
 
@@ -809,23 +810,6 @@
         manifest
     }
 
-    fn mock_extra_manifest_digest(cache_dir: &Path) -> ExtraManifestsManifest {
-        ExtraManifestsManifest {
-            manifests: vec![{
-                let manifest_path = cache_dir.join("extra_pkg").join("Cargo.toml");
-                mock_cargo_toml(&manifest_path, "extra_pkg");
-
-                ExtraManifestInfo {
-                    manifest: manifest_path,
-                    url: "https://crates.io/".to_owned(),
-                    sha256: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
-                        .to_owned(),
-                }
-            }],
-        }
-    }
-
-    /// This json object is tightly coupled to [mock_extra_manifest_digest]
     fn mock_workspace_metadata(
         include_extra_member: bool,
         workspace_prefix: Option<&str>,
@@ -870,7 +854,12 @@
                 .join("root_pkg")
                 .join(pkg)
                 .join("Cargo.toml");
-            mock_cargo_toml(&manifest_path, pkg);
+            let deps = if pkg == &"sub_pkg_b" {
+                vec![r#"sub_pkg_a = { path = "../sub_pkg_a" }"#]
+            } else {
+                vec![]
+            };
+            mock_cargo_toml_with_dependencies(&manifest_path, pkg, &deps);
 
             splicing_manifest.manifests.insert(
                 manifest_path,
@@ -903,6 +892,9 @@
         let manifest_path = root_pkg.join("Cargo.toml");
         fs::create_dir_all(&manifest_path.parent().unwrap()).unwrap();
         fs::write(&manifest_path, toml::to_string(&manifest).unwrap()).unwrap();
+        {
+            File::create(root_pkg.join("BUILD.bazel")).unwrap();
+        }
 
         let sub_pkg_a = root_pkg.join("sub_pkg_a");
         let sub_pkg_b = root_pkg.join("sub_pkg_b");
@@ -916,7 +908,7 @@
 
         splicing_manifest.manifests.insert(
             manifest_path,
-            Label::from_str("//pkg_root:Cargo.toml").unwrap(),
+            Label::from_str("//root_pkg:Cargo.toml").unwrap(),
         );
 
         (splicing_manifest, cache_dir)
@@ -1015,7 +1007,7 @@
         // On windows, make sure we normalize the path to match what Cargo would
         // otherwise use to populate metadata.
         if cfg!(target_os = "windows") {
-            workspace_root = format!("/{}", workspace_root.replace("\\", "/"))
+            workspace_root = format!("/{}", workspace_root.replace('\\', "/"))
         };
 
         if is_root {
@@ -1035,14 +1027,11 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo())
+                .unwrap();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1071,14 +1060,11 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo())
+                .unwrap();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1108,18 +1094,15 @@
         // Remove everything but the root manifest
         splicing_manifest
             .manifests
-            .retain(|_, label| *label == Label::from_str("//pkg_root:Cargo.toml").unwrap());
+            .retain(|_, label| *label == Label::from_str("//root_pkg:Cargo.toml").unwrap());
         assert_eq!(splicing_manifest.manifests.len(), 1);
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo());
 
         assert!(workspace_manifest.is_err());
 
@@ -1133,6 +1116,33 @@
     }
 
     #[test]
+    fn splice_workspace_report_missing_root() {
+        let (mut splicing_manifest, _cache_dir) = mock_splicing_manifest_with_workspace();
+
+        // Remove everything but the root manifest
+        splicing_manifest
+            .manifests
+            .retain(|_, label| *label != Label::from_str("//root_pkg:Cargo.toml").unwrap());
+        assert_eq!(splicing_manifest.manifests.len(), 2);
+
+        // Splice the workspace
+        let workspace_root = tempfile::tempdir().unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo());
+
+        assert!(workspace_manifest.is_err());
+
+        // Ensure both the missing manifests are mentioned in the error string
+        let err_str = format!("{:?}", &workspace_manifest);
+        assert!(
+            err_str.contains("Missing root workspace manifest")
+                && err_str.contains("//root_pkg:Cargo.toml")
+        );
+    }
+
+    #[test]
     fn splice_workspace_report_external_workspace_members() {
         let (mut splicing_manifest, _cache_dir) = mock_splicing_manifest_with_workspace();
 
@@ -1168,13 +1178,10 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo());
 
         assert!(workspace_manifest.is_err());
 
@@ -1194,14 +1201,11 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo())
+                .unwrap();
 
         // Ensure metadata is valid
         let metadata = generate_metadata(workspace_manifest.as_path_buf());
@@ -1226,14 +1230,11 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo())
+                .unwrap();
 
         // Check the default resolver version
         let cargo_manifest = cargo_toml::Manifest::from_str(
@@ -1278,14 +1279,11 @@
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            ExtraManifestsManifest::default(),
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_manifest =
+            Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+                .unwrap()
+                .splice_workspace(&cargo())
+                .unwrap();
 
         // Check the specified resolver version
         let cargo_manifest = cargo_toml::Manifest::from_str(
@@ -1322,122 +1320,292 @@
     }
 
     #[test]
-    fn extra_workspace_member_with_package() {
-        let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_package();
+    fn cargo_config_setup() {
+        let (mut splicing_manifest, _cache_dir) = mock_splicing_manifest_with_workspace_in_root();
 
-        // Add the extra workspace member
-        let extra_manifests_manifest = mock_extra_manifest_digest(cache_dir.as_ref());
+        // Write a cargo config
+        let temp_dir = tempfile::tempdir().unwrap();
+        let external_config = temp_dir.as_ref().join("config.toml");
+        fs::write(&external_config, "# Cargo configuration file").unwrap();
+        splicing_manifest.cargo_config = Some(external_config);
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            extra_manifests_manifest,
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+            .unwrap()
+            .splice_workspace(&cargo())
+            .unwrap();
 
-        // Ensure metadata is valid
-        let metadata = generate_metadata(workspace_manifest.as_path_buf());
-        assert_sort_eq!(
-            metadata.workspace_members,
-            vec![
-                new_package_id("extra_pkg", workspace_root.as_ref(), false),
-                new_package_id("root_pkg", workspace_root.as_ref(), true),
-            ]
-        );
-
-        // Ensure the workspace metadata annotations are populated
+        let cargo_config = workspace_root.as_ref().join(".cargo").join("config.toml");
+        assert!(cargo_config.exists());
         assert_eq!(
-            metadata.workspace_metadata,
-            mock_workspace_metadata(true, None)
+            fs::read_to_string(cargo_config).unwrap().trim(),
+            "# Cargo configuration file"
         );
-
-        // Ensure lockfile was successfully spliced
-        cargo_lock::Lockfile::load(workspace_root.as_ref().join("Cargo.lock")).unwrap();
     }
 
     #[test]
-    fn extra_workspace_member_with_workspace() {
-        let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_workspace();
+    fn unregistered_cargo_config_replaced() {
+        let (mut splicing_manifest, cache_dir) = mock_splicing_manifest_with_workspace_in_root();
 
-        // Add the extra workspace member
-        let extra_manifests_manifest = mock_extra_manifest_digest(cache_dir.as_ref());
+        // Generate a cargo config that is not tracked by the splicing manifest
+        fs::create_dir_all(cache_dir.as_ref().join(".cargo")).unwrap();
+        fs::write(
+            cache_dir.as_ref().join(".cargo").join("config.toml"),
+            "# Untracked Cargo configuration file",
+        )
+        .unwrap();
+
+        // Write a cargo config
+        let temp_dir = tempfile::tempdir().unwrap();
+        let external_config = temp_dir.as_ref().join("config.toml");
+        fs::write(&external_config, "# Cargo configuration file").unwrap();
+        splicing_manifest.cargo_config = Some(external_config);
 
         // Splice the workspace
         let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            extra_manifests_manifest,
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        Splicer::new(workspace_root.as_ref().to_path_buf(), splicing_manifest)
+            .unwrap()
+            .splice_workspace(&cargo())
+            .unwrap();
 
-        // Ensure metadata is valid
-        let metadata = generate_metadata(workspace_manifest.as_path_buf());
-        assert_sort_eq!(
-            metadata.workspace_members,
-            vec![
-                new_package_id("sub_pkg_a", workspace_root.as_ref(), false),
-                new_package_id("sub_pkg_b", workspace_root.as_ref(), false),
-                new_package_id("extra_pkg", workspace_root.as_ref(), false),
-                new_package_id("root_pkg", workspace_root.as_ref(), true),
-            ]
-        );
-
-        // Ensure the workspace metadata annotations are populated
+        let cargo_config = workspace_root.as_ref().join(".cargo").join("config.toml");
+        assert!(cargo_config.exists());
         assert_eq!(
-            metadata.workspace_metadata,
-            mock_workspace_metadata(true, Some("pkg_root"))
+            fs::read_to_string(cargo_config).unwrap().trim(),
+            "# Cargo configuration file"
         );
-
-        // Ensure lockfile was successfully spliced
-        cargo_lock::Lockfile::load(workspace_root.as_ref().join("Cargo.lock")).unwrap();
     }
 
     #[test]
-    fn extra_workspace_member_with_multi_package() {
-        let (splicing_manifest, cache_dir) = mock_splicing_manifest_with_multi_package();
+    fn error_on_cargo_config_in_parent() {
+        let (mut splicing_manifest, _cache_dir) = mock_splicing_manifest_with_workspace_in_root();
 
-        // Add the extra workspace member
-        let extra_manifests_manifest = mock_extra_manifest_digest(cache_dir.as_ref());
+        // Write a cargo config
+        let temp_dir = tempfile::tempdir().unwrap();
+        let dot_cargo_dir = temp_dir.as_ref().join(".cargo");
+        fs::create_dir_all(&dot_cargo_dir).unwrap();
+        let external_config = dot_cargo_dir.join("config.toml");
+        fs::write(&external_config, "# Cargo configuration file").unwrap();
+        splicing_manifest.cargo_config = Some(external_config.clone());
 
         // Splice the workspace
-        let workspace_root = tempfile::tempdir().unwrap();
-        let workspace_manifest = Splicer::new(
-            workspace_root.as_ref().to_path_buf(),
-            splicing_manifest,
-            extra_manifests_manifest,
-        )
-        .unwrap()
-        .splice_workspace()
-        .unwrap();
+        let workspace_root = temp_dir.as_ref().join("workspace_root");
+        let splicing_result = Splicer::new(workspace_root.clone(), splicing_manifest)
+            .unwrap()
+            .splice_workspace(&cargo());
 
-        // Ensure metadata is valid
-        let metadata = generate_metadata(workspace_manifest.as_path_buf());
-        assert_sort_eq!(
-            metadata.workspace_members,
-            vec![
-                new_package_id("pkg_a", workspace_root.as_ref(), false),
-                new_package_id("pkg_b", workspace_root.as_ref(), false),
-                new_package_id("pkg_c", workspace_root.as_ref(), false),
-                new_package_id("extra_pkg", workspace_root.as_ref(), false),
-                // Multi package renderings always add a root package
-                new_package_id("direct-cargo-bazel-deps", workspace_root.as_ref(), true),
+        // Ensure cargo config files in parent directories lead to errors
+        assert!(splicing_result.is_err());
+        let err_str = splicing_result.err().unwrap().to_string();
+        assert!(err_str.starts_with("A Cargo config file was found in a parent directory"));
+        assert!(err_str.contains(&format!("Workspace = {}", workspace_root.display())));
+        assert!(err_str.contains(&format!("Cargo config = {}", external_config.display())));
+    }
+
+    #[test]
+    fn find_missing_manifests_correct_without_root() {
+        let temp_dir = tempfile::tempdir().unwrap();
+        let root_manifest_dir = temp_dir.path();
+        touch(&root_manifest_dir.join("WORKSPACE.bazel"));
+        touch(&root_manifest_dir.join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("Cargo.toml"));
+        touch(&root_manifest_dir.join("foo").join("Cargo.toml"));
+        touch(&root_manifest_dir.join("bar").join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("bar").join("Cargo.toml"));
+
+        let known_manifest_paths = btreeset![
+            root_manifest_dir
+                .join("foo")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+            root_manifest_dir
+                .join("bar")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+        ];
+
+        let root_manifest: cargo_toml::Manifest = toml::toml! {
+            [workspace]
+            members = [
+                "foo",
+                "bar",
             ]
-        );
+            [package]
+            name = "root_pkg"
+            version = "0.0.1"
 
-        // Ensure the workspace metadata annotations are populated
+            [lib]
+            path = "lib.rs"
+        }
+        .try_into()
+        .unwrap();
+        let missing_manifests = SplicerKind::find_missing_manifests(
+            &root_manifest,
+            root_manifest_dir,
+            &known_manifest_paths,
+        )
+        .unwrap();
+        assert_eq!(missing_manifests, btreeset![]);
+    }
+
+    #[test]
+    fn find_missing_manifests_correct_with_root() {
+        let temp_dir = tempfile::tempdir().unwrap();
+        let root_manifest_dir = temp_dir.path();
+        touch(&root_manifest_dir.join("WORKSPACE.bazel"));
+        touch(&root_manifest_dir.join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("Cargo.toml"));
+        touch(&root_manifest_dir.join("foo").join("Cargo.toml"));
+        touch(&root_manifest_dir.join("bar").join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("bar").join("Cargo.toml"));
+
+        let known_manifest_paths = btreeset![
+            root_manifest_dir.join("Cargo.toml").normalize().unwrap(),
+            root_manifest_dir
+                .join("foo")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+            root_manifest_dir
+                .join("bar")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+        ];
+
+        let root_manifest: cargo_toml::Manifest = toml::toml! {
+            [workspace]
+            members = [
+                ".",
+                "foo",
+                "bar",
+            ]
+            [package]
+            name = "root_pkg"
+            version = "0.0.1"
+
+            [lib]
+            path = "lib.rs"
+        }
+        .try_into()
+        .unwrap();
+        let missing_manifests = SplicerKind::find_missing_manifests(
+            &root_manifest,
+            root_manifest_dir,
+            &known_manifest_paths,
+        )
+        .unwrap();
+        assert_eq!(missing_manifests, btreeset![]);
+    }
+
+    #[test]
+    fn find_missing_manifests_missing_root() {
+        let temp_dir = tempfile::tempdir().unwrap();
+        let root_manifest_dir = temp_dir.path();
+        touch(&root_manifest_dir.join("WORKSPACE.bazel"));
+        touch(&root_manifest_dir.join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("Cargo.toml"));
+        touch(&root_manifest_dir.join("foo").join("Cargo.toml"));
+        touch(&root_manifest_dir.join("bar").join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("bar").join("Cargo.toml"));
+
+        let known_manifest_paths = btreeset![
+            root_manifest_dir
+                .join("foo")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+            root_manifest_dir
+                .join("bar")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+        ];
+
+        let root_manifest: cargo_toml::Manifest = toml::toml! {
+            [workspace]
+            members = [
+                ".",
+                "foo",
+                "bar",
+            ]
+            [package]
+            name = "root_pkg"
+            version = "0.0.1"
+
+            [lib]
+            path = "lib.rs"
+        }
+        .try_into()
+        .unwrap();
+        let missing_manifests = SplicerKind::find_missing_manifests(
+            &root_manifest,
+            root_manifest_dir,
+            &known_manifest_paths,
+        )
+        .unwrap();
+        assert_eq!(missing_manifests, btreeset![String::from("//:Cargo.toml")]);
+    }
+
+    #[test]
+    fn find_missing_manifests_missing_nonroot() {
+        let temp_dir = tempfile::tempdir().unwrap();
+        let root_manifest_dir = temp_dir.path();
+        touch(&root_manifest_dir.join("WORKSPACE.bazel"));
+        touch(&root_manifest_dir.join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("Cargo.toml"));
+        touch(&root_manifest_dir.join("foo").join("Cargo.toml"));
+        touch(&root_manifest_dir.join("bar").join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("bar").join("Cargo.toml"));
+        touch(&root_manifest_dir.join("baz").join("BUILD.bazel"));
+        touch(&root_manifest_dir.join("baz").join("Cargo.toml"));
+
+        let known_manifest_paths = btreeset![
+            root_manifest_dir
+                .join("foo")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+            root_manifest_dir
+                .join("bar")
+                .join("Cargo.toml")
+                .normalize()
+                .unwrap(),
+        ];
+
+        let root_manifest: cargo_toml::Manifest = toml::toml! {
+            [workspace]
+            members = [
+                "foo",
+                "bar",
+                "baz",
+            ]
+            [package]
+            name = "root_pkg"
+            version = "0.0.1"
+
+            [lib]
+            path = "lib.rs"
+        }
+        .try_into()
+        .unwrap();
+        let missing_manifests = SplicerKind::find_missing_manifests(
+            &root_manifest,
+            root_manifest_dir,
+            &known_manifest_paths,
+        )
+        .unwrap();
         assert_eq!(
-            metadata.workspace_metadata,
-            mock_workspace_metadata(true, None)
+            missing_manifests,
+            btreeset![String::from("//baz:Cargo.toml")]
         );
+    }
 
-        // Ensure lockfile was successfully spliced
-        cargo_lock::Lockfile::load(workspace_root.as_ref().join("Cargo.lock")).unwrap();
+    fn touch(path: &Path) {
+        std::fs::create_dir_all(path.parent().unwrap()).unwrap();
+        std::fs::write(path, &[]).unwrap();
     }
 }
diff --git a/third_party/rules_rust/crate_universe/src/utils/starlark/label.rs b/third_party/rules_rust/crate_universe/src/utils/starlark/label.rs
index 1716944..a21c81e 100644
--- a/third_party/rules_rust/crate_universe/src/utils/starlark/label.rs
+++ b/third_party/rules_rust/crate_universe/src/utils/starlark/label.rs
@@ -7,6 +7,8 @@
 use serde::de::Visitor;
 use serde::{Deserialize, Serialize, Serializer};
 
+// Note that this type assumes there's no such thing as a relative label;
+// `:foo` is assumed to be relative to the repo root, and parses out to equivalent to `//:foo`.
 #[derive(Debug, Default, PartialEq, Eq, PartialOrd, Ord, Clone)]
 pub struct Label {
     pub repository: Option<String>,
@@ -52,19 +54,21 @@
 
 impl Display for Label {
     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
-        let mut label = String::new();
-
         // Add the repository
         if let Some(repo) = &self.repository {
-            label = format!("@{}", repo);
+            write!(f, "@{}", repo)?;
         }
 
+        write!(f, "//")?;
+
         // Add the package
         if let Some(pkg) = &self.package {
-            label = format!("{}//{}", label, pkg);
+            write!(f, "{}", pkg)?;
         }
 
-        write!(f, "{}:{}", &label, &self.target,)
+        write!(f, ":{}", self.target)?;
+
+        Ok(())
     }
 }
 
@@ -190,6 +194,7 @@
     #[test]
     fn full_label() {
         let label = Label::from_str("@repo//package/sub_package:target").unwrap();
+        assert_eq!(label.to_string(), "@repo//package/sub_package:target");
         assert_eq!(label.repository.unwrap(), "repo");
         assert_eq!(label.package.unwrap(), "package/sub_package");
         assert_eq!(label.target, "target");
@@ -198,6 +203,7 @@
     #[test]
     fn no_repository() {
         let label = Label::from_str("//package:target").unwrap();
+        assert_eq!(label.to_string(), "//package:target");
         assert_eq!(label.repository, None);
         assert_eq!(label.package.unwrap(), "package");
         assert_eq!(label.target, "target");
@@ -206,6 +212,7 @@
     #[test]
     fn no_slashes() {
         let label = Label::from_str("package:target").unwrap();
+        assert_eq!(label.to_string(), "//package:target");
         assert_eq!(label.repository, None);
         assert_eq!(label.package.unwrap(), "package");
         assert_eq!(label.target, "target");
@@ -214,6 +221,7 @@
     #[test]
     fn root_label() {
         let label = Label::from_str("@repo//:target").unwrap();
+        assert_eq!(label.to_string(), "@repo//:target");
         assert_eq!(label.repository.unwrap(), "repo");
         assert_eq!(label.package, None);
         assert_eq!(label.target, "target");
@@ -222,6 +230,7 @@
     #[test]
     fn root_label_no_repository() {
         let label = Label::from_str("//:target").unwrap();
+        assert_eq!(label.to_string(), "//:target");
         assert_eq!(label.repository, None);
         assert_eq!(label.package, None);
         assert_eq!(label.target, "target");
@@ -230,6 +239,7 @@
     #[test]
     fn root_label_no_slashes() {
         let label = Label::from_str(":target").unwrap();
+        assert_eq!(label.to_string(), "//:target");
         assert_eq!(label.repository, None);
         assert_eq!(label.package, None);
         assert_eq!(label.target, "target");
@@ -238,6 +248,10 @@
     #[test]
     fn full_label_with_slash_after_colon() {
         let label = Label::from_str("@repo//package/sub_package:subdir/target").unwrap();
+        assert_eq!(
+            label.to_string(),
+            "@repo//package/sub_package:subdir/target"
+        );
         assert_eq!(label.repository.unwrap(), "repo");
         assert_eq!(label.package.unwrap(), "package/sub_package");
         assert_eq!(label.target, "subdir/target");
diff --git a/third_party/rules_rust/crate_universe/test_data/private/BUILD.bazel b/third_party/rules_rust/crate_universe/test_data/private/BUILD.bazel
index e0a9bbe..8e0993f 100644
--- a/third_party/rules_rust/crate_universe/test_data/private/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/test_data/private/BUILD.bazel
@@ -4,11 +4,11 @@
     name = "metadata_generator",
     srcs = ["metadata_generator.py"],
     data = [
-        "@rules_rust//rust/toolchain:current_exec_cargo_files",
-        "@rules_rust//rust/toolchain:current_exec_rustc_files",
+        "@rules_rust//rust/toolchain:current_cargo_files",
+        "@rules_rust//rust/toolchain:current_rustc_files",
     ],
     env = {
-        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_exec_cargo_files)",
-        "RUSTC": "$(rootpath @rules_rust//rust/toolchain:current_exec_rustc_files)",
+        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_cargo_files)",
+        "RUSTC": "$(rootpath @rules_rust//rust/toolchain:current_rustc_files)",
     },
 )
diff --git a/third_party/rules_rust/crate_universe/test_data/serialized_configs/BUILD.bazel b/third_party/rules_rust/crate_universe/test_data/serialized_configs/BUILD.bazel
new file mode 100644
index 0000000..33241df
--- /dev/null
+++ b/third_party/rules_rust/crate_universe/test_data/serialized_configs/BUILD.bazel
@@ -0,0 +1,69 @@
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
+load("//crate_universe:defs.bzl", "crate", "render_config", "splicing_config")
+
+# buildifier: disable=bzl-visibility
+load("//crate_universe/private:generate_utils.bzl", "compile_config")
+
+# buildifier: disable=bzl-visibility
+load("//crate_universe/private:splicing_utils.bzl", "compile_splicing_manifest")
+
+write_file(
+    name = "config",
+    out = "config.json",
+    content = [json.encode(
+        compile_config(
+            cargo_config = None,
+            crate_annotations = {
+                "rand": [crate.annotation(
+                    crate_features = ["small_rng"],
+                    version = "0.8.5",
+                )],
+            },
+            generate_build_scripts = False,
+            render_config = json.decode(render_config(
+                platforms_template = "//custom/platform:{triple}",
+                regen_command = "cargo_bazel_regen_command",
+            )),
+            repository_name = "mock_config",
+            supported_platform_triples = [
+                "x86_64-unknown-linux-gnu",
+                "x86_64-pc-windows-msvc",
+                "x86_64-apple-darwin",
+            ],
+        ),
+    ).strip()],
+    newline = "unix",
+)
+
+write_file(
+    name = "splicing_manifest",
+    out = "splicing_manifest.json",
+    content = [json.encode(compile_splicing_manifest(
+        cargo_config_path = "/tmp/abs/path/workspace/.cargo/config.toml",
+        manifests = {
+            "${build_workspace_directory}/submod/Cargo.toml": "//submod:Cargo.toml",
+            "${output_base}/external_crate/Cargo.toml": "@external_crate//:Cargo.toml",
+            "/tmp/abs/path/workspace/Cargo.toml": "//:Cargo.toml",
+        },
+        packages = {
+            "rand": crate.spec(
+                default_features = False,
+                features = ["small_rng"],
+                version = "0.8.5",
+            ),
+        },
+        splicing_config = dict(json.decode(splicing_config(
+            resolver_version = "2",
+        ))),
+    )).strip()],
+    newline = "unix",
+)
+
+filegroup(
+    name = "serialized_configs",
+    srcs = [
+        "config.json",
+        "splicing_manifest.json",
+    ],
+    visibility = ["//crate_universe:__pkg__"],
+)
diff --git a/third_party/rules_rust/crate_universe/tools/BUILD.bazel b/third_party/rules_rust/crate_universe/tools/BUILD.bazel
index d465c4d..1677d9e 100644
--- a/third_party/rules_rust/crate_universe/tools/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/tools/BUILD.bazel
@@ -1,8 +1,7 @@
 filegroup(
-    name = "distro",
+    name = "bzl_srcs",
     srcs = [
-        "//crate_universe/tools/cross_installer:distro",
-        "//crate_universe/tools/urls_generator:distro",
+        "//crate_universe/tools/cross_installer:bzl_srcs",
     ],
     visibility = ["//crate_universe:__subpackages__"],
 )
diff --git a/third_party/rules_rust/crate_universe/tools/cross_installer/BUILD.bazel b/third_party/rules_rust/crate_universe/tools/cross_installer/BUILD.bazel
index 46aa087..d436f8a 100644
--- a/third_party/rules_rust/crate_universe/tools/cross_installer/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/tools/cross_installer/BUILD.bazel
@@ -1,4 +1,4 @@
-load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
+load("@cui//:defs.bzl", "aliases", "all_crate_deps")
 load("@rules_rust//rust:defs.bzl", "rust_binary")
 load(":cross_installer_deps.bzl", "cross_binary")
 
@@ -14,11 +14,12 @@
     data = [
         "Cross.toml",
         ":cross",
-        "@rules_rust//rust/toolchain:current_exec_cargo_files",
+        "@rules_rust//rust/toolchain:current_cargo_files",
     ],
+    edition = "2018",
     proc_macro_deps = all_crate_deps(proc_macro = True),
     rustc_env = {
-        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_exec_cargo_files)",
+        "CARGO": "$(rootpath @rules_rust//rust/toolchain:current_cargo_files)",
         "CROSS_BIN": "$(rootpath :cross)",
         "CROSS_CONFIG": "$(rootpath :Cross.toml)",
     },
@@ -28,10 +29,7 @@
 cross_binary(name = "cross")
 
 filegroup(
-    name = "distro",
-    srcs = [
-        "BUILD.bazel",
-        "Cargo.toml",
-    ],
+    name = "bzl_srcs",
+    srcs = glob(["**/*.bzl"]),
     visibility = ["//crate_universe/tools:__pkg__"],
 )
diff --git a/third_party/rules_rust/crate_universe/tools/cross_installer/src/main.rs b/third_party/rules_rust/crate_universe/tools/cross_installer/src/main.rs
index 552ea0b..23d0b17 100644
--- a/third_party/rules_rust/crate_universe/tools/cross_installer/src/main.rs
+++ b/third_party/rules_rust/crate_universe/tools/cross_installer/src/main.rs
@@ -86,7 +86,8 @@
     let workspace_root = PathBuf::from(
         env::var("BUILD_WORKSPACE_DIRECTORY")
             .expect("cross_installer is designed to run under Bazel"),
-    );
+    )
+    .join("crate_universe");
 
     // Do some setup
     prepare_workspace(&workspace_root);
diff --git a/third_party/rules_rust/crate_universe/tools/urls_generator/BUILD.bazel b/third_party/rules_rust/crate_universe/tools/urls_generator/BUILD.bazel
index a461e9b..2d536d9 100644
--- a/third_party/rules_rust/crate_universe/tools/urls_generator/BUILD.bazel
+++ b/third_party/rules_rust/crate_universe/tools/urls_generator/BUILD.bazel
@@ -1,4 +1,4 @@
-load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
+load("@cui//:defs.bzl", "aliases", "all_crate_deps")
 load("@rules_rust//rust:defs.bzl", "rust_binary")
 
 exports_files(
@@ -6,15 +6,6 @@
     visibility = ["//visibility:public"],
 )
 
-filegroup(
-    name = "distro",
-    srcs = [
-        "BUILD.bazel",
-        "Cargo.toml",
-    ],
-    visibility = ["//crate_universe/tools:__pkg__"],
-)
-
 rust_binary(
     name = "urls_generator",
     srcs = glob(["src/**/*.rs"]),
@@ -22,6 +13,7 @@
     compile_data = [
         "//crate_universe/private:urls.bzl",
     ],
+    edition = "2018",
     proc_macro_deps = all_crate_deps(proc_macro = True),
     rustc_env = {
         "MODULE_ROOT_PATH": "$(rootpath //crate_universe/private:urls.bzl)",
diff --git a/third_party/rules_rust/crate_universe/tools/urls_generator/src/main.rs b/third_party/rules_rust/crate_universe/tools/urls_generator/src/main.rs
index c595745..e06671a 100644
--- a/third_party/rules_rust/crate_universe/tools/urls_generator/src/main.rs
+++ b/third_party/rules_rust/crate_universe/tools/urls_generator/src/main.rs
@@ -73,8 +73,12 @@
                 .map(|f_entry| {
                     let f_path = f_entry.path();
                     let stem = f_path.file_stem().unwrap().to_string_lossy();
+                    let extension = f_path
+                        .extension()
+                        .map(|ext| format!(".{}", ext.to_string_lossy()))
+                        .unwrap_or_default();
                     Artifact {
-                        url: format!("{}/{}-{}", url_prefix, stem, triple),
+                        url: format!("{}/{}-{}{}", url_prefix, stem, triple, extension),
                         triple: triple.to_string(),
                         sha256: calculate_sha256(&f_entry.path()),
                     }
diff --git a/third_party/rules_rust/crate_universe/version.bzl b/third_party/rules_rust/crate_universe/version.bzl
index 3b46e3a..471a662 100644
--- a/third_party/rules_rust/crate_universe/version.bzl
+++ b/third_party/rules_rust/crate_universe/version.bzl
@@ -1,3 +1,3 @@
 """ Version info for the `cargo-bazel` repository """
 
-VERSION = "0.0.28"
+VERSION = "0.4.0"
diff --git a/third_party/rules_rust/docs/BUILD.bazel b/third_party/rules_rust/docs/BUILD.bazel
index 6c7e39c..ebca2dc 100644
--- a/third_party/rules_rust/docs/BUILD.bazel
+++ b/third_party/rules_rust/docs/BUILD.bazel
@@ -8,11 +8,12 @@
     name = "docs_deps",
     srcs = [
         "@bazel_tools//tools:bzl_srcs",
-        "@build_bazel_rules_nodejs//:bzl",
         "@com_google_protobuf//:bzl_srcs",
+        "@rules_nodejs//nodejs:bzl",
     ],
     deps = [
         "@bazel_skylib//lib:paths",
+        "@bazel_skylib//lib:selects",
         "@bazel_skylib//rules:common_settings",
         "@rules_proto//proto:defs",
         "@rules_proto//proto:repositories",
@@ -53,6 +54,7 @@
             "rust_test",
             "rust_test_suite",
             "error_format",
+            "extra_rustc_flag",
             "extra_rustc_flags",
             "capture_clippy_output",
         ],
@@ -69,15 +71,17 @@
         name = "rust_analyzer",
         header_template = ":rust_analyzer.vm",
         symbols = [
-            "rust_analyzer",
             "rust_analyzer_aspect",
+            "rust_analyzer_toolchain",
         ],
     ),
     page(
         name = "rust_bindgen",
+        header_template = ":rust_bindgen.vm",
         symbols = [
             "rust_bindgen_library",
-            "rust_bindgen_repositories",
+            "rust_bindgen_dependencies",
+            "rust_bindgen_register_toolchains",
             "rust_bindgen_toolchain",
             "rust_bindgen",
         ],
@@ -126,6 +130,7 @@
             "rust_stdlib_filegroup",
             "rust_toolchain_repository_proxy",
             "rust_toolchain_repository",
+            "rust_toolchain_tools_repository",
             "rust_toolchain",
         ],
     ),
@@ -133,7 +138,8 @@
         name = "rust_wasm_bindgen",
         header_template = ":rust_wasm_bindgen.vm",
         symbols = [
-            "rust_wasm_bindgen_repositories",
+            "rust_wasm_bindgen_dependencies",
+            "rust_wasm_bindgen_register_toolchains",
             "rust_wasm_bindgen_toolchain",
             "rust_wasm_bindgen",
         ],
@@ -183,7 +189,7 @@
 stardoc(
     name = "crate_universe",
     out = "crate_universe.md",
-    input = "@rules_rust//crate_universe:defs.bzl",
+    input = "@rules_rust//crate_universe:docs.bzl",
     deps = [":all_docs"],
 )
 
diff --git a/third_party/rules_rust/docs/WORKSPACE.bazel b/third_party/rules_rust/docs/WORKSPACE.bazel
index 1c5a736..8d6181b 100644
--- a/third_party/rules_rust/docs/WORKSPACE.bazel
+++ b/third_party/rules_rust/docs/WORKSPACE.bazel
@@ -11,9 +11,9 @@
 
 rust_register_toolchains(include_rustc_srcs = True)
 
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
 
-crate_deps_repository()
+crate_universe_dependencies()
 
 load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
 
@@ -23,22 +23,24 @@
 
 rust_proto_transitive_repositories()
 
-load("@rules_rust//wasm_bindgen:repositories.bzl", "rust_wasm_bindgen_repositories")
+load(
+    "@rules_rust//wasm_bindgen:repositories.bzl",
+    "rust_wasm_bindgen_dependencies",
+    "rust_wasm_bindgen_register_toolchains",
+)
 
-rust_wasm_bindgen_repositories()
+rust_wasm_bindgen_dependencies()
 
-load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
-
-node_repositories()
+rust_wasm_bindgen_register_toolchains()
 
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
 http_archive(
     name = "io_bazel_stardoc",
-    sha256 = "c9794dcc8026a30ff67cf7cf91ebe245ca294b20b071845d12c192afe243ad72",
+    sha256 = "aa814dae0ac400bbab2e8881f9915c6f47c49664bf087c409a15f90438d2c23e",
     urls = [
-        "https://mirror.bazel.build/github.com/bazelbuild/stardoc/releases/download/0.5.0/stardoc-0.5.0.tar.gz",
-        "https://github.com/bazelbuild/stardoc/releases/download/0.5.0/stardoc-0.5.0.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz",
+        "https://github.com/bazelbuild/stardoc/releases/download/0.5.1/stardoc-0.5.1.tar.gz",
     ],
 )
 
diff --git a/third_party/rules_rust/docs/cargo.md b/third_party/rules_rust/docs/cargo.md
index 146e9e1..21aad2a 100644
--- a/third_party/rules_rust/docs/cargo.md
+++ b/third_party/rules_rust/docs/cargo.md
@@ -5,7 +5,7 @@
 * [cargo_build_script](#cargo_build_script)
 * [cargo_env](#cargo_env)
 
-<a id="#cargo_bootstrap_repository"></a>
+<a id="cargo_bootstrap_repository"></a>
 
 ## cargo_bootstrap_repository
 
@@ -32,15 +32,15 @@
 | <a id="cargo_bootstrap_repository-env_label"></a>env_label |  A mapping of platform triple to a set of environment variables. This attribute differs from <code>env</code> in that all variables passed here must be fully qualified labels of files. See [cargo_env](#cargo_env) for usage details. Additionally, the platform triple <code>*</code> applies to all platforms.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="cargo_bootstrap_repository-iso_date"></a>iso_date |  The iso_date of cargo binary the resolver should use. Note: This can only be set if <code>version</code> is <code>beta</code> or <code>nightly</code>   | String | optional | "" |
 | <a id="cargo_bootstrap_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="cargo_bootstrap_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
+| <a id="cargo_bootstrap_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
 | <a id="cargo_bootstrap_repository-rust_toolchain_repository_template"></a>rust_toolchain_repository_template |  **Deprecated**: Please use <code>rust_toolchain_cargo_template</code> and <code>rust_toolchain_rustc_template</code>   | String | optional | "" |
-| <a id="cargo_bootstrap_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
+| <a id="cargo_bootstrap_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
 | <a id="cargo_bootstrap_repository-srcs"></a>srcs |  Souce files of the crate to build. Passing source files here can be used to trigger rebuilds when changes are made   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="cargo_bootstrap_repository-timeout"></a>timeout |  Maximum duration of the Cargo build command in seconds   | Integer | optional | 600 |
-| <a id="cargo_bootstrap_repository-version"></a>version |  The version of cargo the resolver should use   | String | optional | "1.59.0" |
+| <a id="cargo_bootstrap_repository-version"></a>version |  The version of cargo the resolver should use   | String | optional | "1.62.1" |
 
 
-<a id="#cargo_build_script"></a>
+<a id="cargo_build_script"></a>
 
 ## cargo_build_script
 
@@ -127,7 +127,7 @@
 | <a id="cargo_build_script-kwargs"></a>kwargs |  Forwards to the underlying <code>rust_binary</code> rule.   |  none |
 
 
-<a id="#cargo_env"></a>
+<a id="cargo_env"></a>
 
 ## cargo_env
 
diff --git a/third_party/rules_rust/docs/crate_universe.md b/third_party/rules_rust/docs/crate_universe.md
index 4dfcd5d..3964457 100644
--- a/third_party/rules_rust/docs/crate_universe.md
+++ b/third_party/rules_rust/docs/crate_universe.md
@@ -4,33 +4,47 @@
 
 Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
 
-## Experimental
+## Setup
 
-`crate_universe` is experimental, and may have breaking API changes at any time. These instructions may also change without notice.
+After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
+
+```python
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
+
+crate_universe_dependencies()
+```
+
+Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
+flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
+call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
 
 ## Rules
 
 - [crates_repository](#crates_repository)
 - [crates_vendor](#crates_vendor)
+
+## Utility Macros
+
+- [crate_universe_dependencies](#crate_universe_dependencies)
+- [crate.annotation](#crateannotation)
 - [crate.spec](#cratespec)
 - [crate.workspace_member](#crateworkspace_member)
-- [crate.annotation](#crateannotation)
 - [render_config](#render_config)
 - [splicing_config](#splicing_config)
 
-## `crates_repository` Workflows
+## Workflows
 
-The [`crates_repository`](#crates_repository) rule (the primary repository rule of `cargo-bazel`) supports a number of different ways users
-can express and organize their dependencies. The most common are listed below though there are more to be found in
+The [`crates_repository`](#crates_repository) rule (the primary repository rule of `rules_rust`'s cargo support) supports a number of different
+ways users can express and organize their dependencies. The most common are listed below though there are more to be found in
 the [./examples/crate_universe](https://github.com/bazelbuild/rules_rust/tree/main/examples/crate_universe) directory.
 
 ### Cargo Workspaces
 
 One of the simpler ways to wire up dependencies would be to first structure your project into a [Cargo workspace][cw].
-The `crates_repository` rule can ingest a the root `Cargo.toml` file and generate dependencies from there.
+The `crates_repository` rule can ingest a root `Cargo.toml` file and generate dependencies from there.
 
 ```python
-load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository")
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository")
 
 crates_repository(
     name = "crate_index",
@@ -44,9 +58,9 @@
 ```
 
 The generated `crates_repository` contains helper macros which make collecting dependencies for Bazel targets simpler.
-Notably, the `all_crate_deps` and `aliases` macros commonly allow the `Cargo.toml` files to be the single source of
-truth for dependencies. Since these macros come from the generated repository, the dependencies and alias definitions
-they return will automatically update BUILD targets.
+Notably, the `all_crate_deps` and `aliases` macros (see [Dependencies API](#dependencies-api)) commonly allow the
+`Cargo.toml` files to be the single source of truth for dependencies. Since these macros come from the generated
+repository, the dependencies and alias definitions they return will automatically update BUILD targets.
 
 ```python
 load("@crate_index//:defs.bzl", "aliases", "all_crate_deps")
@@ -140,26 +154,40 @@
 )
 ```
 
+## Dependencies API
+
+After rendering dependencies, convenience macros may also be generated to provide
+convenient accessors to larger sections of the dependency graph.
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+---
+
+---
+
 [cw]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html
 [cc]: https://docs.bazel.build/versions/main/be/c-cpp.html
 [proto]: https://rules-proto-grpc.com/en/latest/lang/rust.html
 [ra]: https://rust-analyzer.github.io/
 
 
-<a id="#crates_repository"></a>
+<a id="crates_repository"></a>
 
 ## crates_repository
 
 <pre>
-crates_repository(<a href="#crates_repository-name">name</a>, <a href="#crates_repository-annotations">annotations</a>, <a href="#crates_repository-cargo_config">cargo_config</a>, <a href="#crates_repository-extra_workspace_member_url_template">extra_workspace_member_url_template</a>,
-                  <a href="#crates_repository-extra_workspace_members">extra_workspace_members</a>, <a href="#crates_repository-generate_build_scripts">generate_build_scripts</a>, <a href="#crates_repository-generator">generator</a>, <a href="#crates_repository-generator_sha256s">generator_sha256s</a>,
-                  <a href="#crates_repository-generator_urls">generator_urls</a>, <a href="#crates_repository-isolated">isolated</a>, <a href="#crates_repository-lockfile">lockfile</a>, <a href="#crates_repository-lockfile_kind">lockfile_kind</a>, <a href="#crates_repository-manifests">manifests</a>, <a href="#crates_repository-packages">packages</a>, <a href="#crates_repository-quiet">quiet</a>,
-                  <a href="#crates_repository-render_config">render_config</a>, <a href="#crates_repository-repo_mapping">repo_mapping</a>, <a href="#crates_repository-rust_toolchain_cargo_template">rust_toolchain_cargo_template</a>,
+crates_repository(<a href="#crates_repository-name">name</a>, <a href="#crates_repository-annotations">annotations</a>, <a href="#crates_repository-cargo_config">cargo_config</a>, <a href="#crates_repository-cargo_lockfile">cargo_lockfile</a>, <a href="#crates_repository-generate_build_scripts">generate_build_scripts</a>,
+                  <a href="#crates_repository-generator">generator</a>, <a href="#crates_repository-generator_sha256s">generator_sha256s</a>, <a href="#crates_repository-generator_urls">generator_urls</a>, <a href="#crates_repository-isolated">isolated</a>, <a href="#crates_repository-lockfile">lockfile</a>, <a href="#crates_repository-manifests">manifests</a>,
+                  <a href="#crates_repository-packages">packages</a>, <a href="#crates_repository-quiet">quiet</a>, <a href="#crates_repository-render_config">render_config</a>, <a href="#crates_repository-repo_mapping">repo_mapping</a>, <a href="#crates_repository-rust_toolchain_cargo_template">rust_toolchain_cargo_template</a>,
                   <a href="#crates_repository-rust_toolchain_rustc_template">rust_toolchain_rustc_template</a>, <a href="#crates_repository-rust_version">rust_version</a>, <a href="#crates_repository-splicing_config">splicing_config</a>,
                   <a href="#crates_repository-supported_platform_triples">supported_platform_triples</a>)
 </pre>
 
-A rule for defining and downloading Rust dependencies (crates).
+A rule for defining and downloading Rust dependencies (crates). This rule
+handles all the same [workflows](#workflows) `crate_universe` rules do.
 
 Environment Variables:
 
@@ -168,7 +196,75 @@
 | `CARGO_BAZEL_GENERATOR_SHA256` | The sha256 checksum of the file located at `CARGO_BAZEL_GENERATOR_URL` |
 | `CARGO_BAZEL_GENERATOR_URL` | The URL of a cargo-bazel binary. This variable takes precedence over attributes and can use `file://` for local paths |
 | `CARGO_BAZEL_ISOLATED` | An authorative flag as to whether or not the `CARGO_HOME` environment variable should be isolated from the host configuration |
-| `CARGO_BAZEL_REPIN` | An indicator that the dependencies represented by the rule should be regenerated. `REPIN` may also be used. |
+| `CARGO_BAZEL_REPIN` | An indicator that the dependencies represented by the rule should be regenerated. `REPIN` may also be used. See [Repinning / Updating Dependencies](#crates_repository_repinning_updating_dependencies) for more details. |
+
+Example:
+
+Given the following workspace structure:
+
+```text
+[workspace]/
+    WORKSPACE
+    BUILD
+    Cargo.toml
+    Cargo.Bazel.lock
+    src/
+        main.rs
+```
+
+The following is something that'd be found in the `WORKSPACE` file:
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_repository", "crate")
+
+crates_repository(
+    name = "crate_index",
+    annotations = annotations = {
+        "rand": [crate.annotation(
+            default_features = False,
+            features = ["small_rng"],
+        )],
+    },
+    cargo_lockfile = "//:Cargo.Bazel.lock",
+    lockfile = "//:cargo-bazel-lock.json",
+    manifests = ["//:Cargo.toml"],
+    # Should match the version represented by the currently registered `rust_toolchain`.
+    rust_version = "1.60.0",
+)
+```
+
+The above will create an external repository which contains aliases and macros for accessing
+Rust targets found in the dependency graph defined by the given manifests.
+
+**NOTE**: The `lockfile` must be manually created. The rule unfortunately does not yet create
+it on its own. When initially setting up this rule, an empty file should be created and then
+populated by repinning dependencies.
+
+<a id="#crates_repository_repinning_updating_dependencies"></a>
+
+### Repinning / Updating Dependencies
+
+Dependency syncing and updating is done in the repository rule which means it's done during the
+analysis phase of builds. As mentioned in the environments variable table above, the `CARGO_BAZEL_REPIN`
+(or `REPIN`) environment variables can be used to force the rule to update dependencies and potentially
+render a new lockfile. Given an instance of this repository rule named `crate_index`, the easiest way to
+repin dependencies is to run:
+
+```shell
+CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index
+```
+
+This will result in all dependencies being updated for a project. The `CARGO_BAZEL_REPIN` environment variable
+can also be used to customize how dependencies are updated. The following table shows translations from environment
+variable values to the equivilant [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html) command
+that is called behind the scenes to update dependencies.
+
+| Value | Cargo command |
+| --- | --- |
+| Any of [`true`, `1`, `yes`, `on`] | `cargo update` |
+| `workspace` | `cargo update --workspace` |
+| `package_name` | `cargo upgrade --package package_name` |
+| `package_name@1.2.3` | `cargo upgrade --package package_name --precise 1.2.3` |
 
 
 
@@ -178,39 +274,108 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="crates_repository-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="crates_repository-annotations"></a>annotations |  Extra settings to apply to crates. See [crate.annotations](#crateannotations).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> List of strings</a> | optional | {} |
+| <a id="crates_repository-annotations"></a>annotations |  Extra settings to apply to crates. See [crate.annotation](#crateannotation).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> List of strings</a> | optional | {} |
 | <a id="crates_repository-cargo_config"></a>cargo_config |  A [Cargo configuration](https://doc.rust-lang.org/cargo/reference/config.html) file   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
-| <a id="crates_repository-extra_workspace_member_url_template"></a>extra_workspace_member_url_template |  The registry url to use when fetching extra workspace members   | String | optional | "https://crates.io/api/v1/crates/{name}/{version}/download" |
-| <a id="crates_repository-extra_workspace_members"></a>extra_workspace_members |  Additional crates to download and include as a workspace member. This is unfortunately required in order to add information about "binary-only" crates so that a <code>rust_binary</code> may be generated for it. [rust-lang/cargo#9096](https://github.com/rust-lang/cargo/issues/9096) tracks an RFC which may solve for this.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="crates_repository-cargo_lockfile"></a>cargo_lockfile |  The path used to store the <code>crates_repository</code> specific [Cargo.lock](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html) file. In the case that your <code>crates_repository</code> corresponds directly with an existing <code>Cargo.toml</code> file which has a paired <code>Cargo.lock</code> file, that <code>Cargo.lock</code> file should be used here, which will keep the versions used by cargo and bazel in sync.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
 | <a id="crates_repository-generate_build_scripts"></a>generate_build_scripts |  Whether or not to generate [cargo build scripts](https://doc.rust-lang.org/cargo/reference/build-scripts.html) by default.   | Boolean | optional | True |
 | <a id="crates_repository-generator"></a>generator |  The absolute label of a generator. Eg. <code>@cargo_bazel_bootstrap//:cargo-bazel</code>. This is typically used when bootstrapping   | String | optional | "" |
 | <a id="crates_repository-generator_sha256s"></a>generator_sha256s |  Dictionary of <code>host_triple</code> -&gt; <code>sha256</code> for a <code>cargo-bazel</code> binary.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="crates_repository-generator_urls"></a>generator_urls |  URL template from which to download the <code>cargo-bazel</code> binary. <code>{host_triple}</code> and will be filled in according to the host platform.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="crates_repository-isolated"></a>isolated |  If true, <code>CARGO_HOME</code> will be overwritten to a directory within the generated repository in order to prevent other uses of Cargo from impacting having any effect on the generated targets produced by this rule. For users who either have multiple <code>crate_repository</code> definitions in a WORKSPACE or rapidly re-pin dependencies, setting this to false may improve build times. This variable is also controled by <code>CARGO_BAZEL_ISOLATED</code> environment variable.   | Boolean | optional | True |
-| <a id="crates_repository-lockfile"></a>lockfile |  The path to a file to use for reproducible renderings. Two kinds of lock files are supported, Cargo (<code>Cargo.lock</code> files) and Bazel (custom files generated by this rule, naming is irrelevant). Bazel lockfiles should be the prefered kind as they're desigend with Bazel's notions of reporducibility in mind. Cargo lockfiles can be used in cases where it's intended to be the source of truth, but more work will need to be done to generate BUILD files which are not guaranteed to be determinsitic.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
-| <a id="crates_repository-lockfile_kind"></a>lockfile_kind |  Two different kinds of lockfiles are supported, the custom "Bazel" lockfile, which is generated by this rule, and Cargo lockfiles (<code>Cargo.lock</code>). This attribute allows for explicitly defining the type in cases where it may not be auto-detectable.   | String | optional | "auto" |
+| <a id="crates_repository-lockfile"></a>lockfile |  The path to a file to use for reproducible renderings. If set, this file must exist within the workspace (but can be empty) before this rule will work.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="crates_repository-manifests"></a>manifests |  A list of Cargo manifests (<code>Cargo.toml</code> files).   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="crates_repository-packages"></a>packages |  A set of crates (packages) specifications to depend on. See [crate.spec](#crate.spec).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="crates_repository-quiet"></a>quiet |  If stdout and stderr should not be printed to the terminal.   | Boolean | optional | True |
 | <a id="crates_repository-render_config"></a>render_config |  The configuration flags to use for rendering. Use <code>//crate_universe:defs.bzl\%render_config</code> to generate the value for this field. If unset, the defaults defined there will be used.   | String | optional | "" |
 | <a id="crates_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="crates_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), <code>{cfg}</code> (eg. 'exec'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
-| <a id="crates_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), <code>{cfg}</code> (eg. 'exec'), and <code>{tool}</code> (eg. 'cargo.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
-| <a id="crates_repository-rust_version"></a>rust_version |  The version of Rust the currently registered toolchain is using. Eg. <code>1.56.0</code>, or <code>nightly-2021-09-08</code>   | String | optional | "1.59.0" |
+| <a id="crates_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), <code>{cfg}</code> (eg. 'exec'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
+| <a id="crates_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), <code>{cfg}</code> (eg. 'exec'), and <code>{tool}</code> (eg. 'cargo.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
+| <a id="crates_repository-rust_version"></a>rust_version |  The version of Rust the currently registered toolchain is using. Eg. <code>1.56.0</code>, or <code>nightly-2021-09-08</code>   | String | optional | "1.62.1" |
 | <a id="crates_repository-splicing_config"></a>splicing_config |  The configuration flags to use for splicing Cargo maniests. Use <code>//crate_universe:defs.bzl\%rsplicing_config</code> to generate the value for this field. If unset, the defaults defined there will be used.   | String | optional | "" |
-| <a id="crates_repository-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
+| <a id="crates_repository-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "armv7-linux-androideabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "riscv32imc-unknown-none-elf"] |
 
 
-<a id="#crates_vendor"></a>
+<a id="crates_vendor"></a>
 
 ## crates_vendor
 
 <pre>
-crates_vendor(<a href="#crates_vendor-name">name</a>, <a href="#crates_vendor-annotations">annotations</a>, <a href="#crates_vendor-buildifier">buildifier</a>, <a href="#crates_vendor-cargo_bazel">cargo_bazel</a>, <a href="#crates_vendor-generate_build_scripts">generate_build_scripts</a>, <a href="#crates_vendor-manifests">manifests</a>, <a href="#crates_vendor-mode">mode</a>,
-              <a href="#crates_vendor-packages">packages</a>, <a href="#crates_vendor-repository_name">repository_name</a>, <a href="#crates_vendor-splicing_config">splicing_config</a>, <a href="#crates_vendor-supported_platform_triples">supported_platform_triples</a>, <a href="#crates_vendor-vendor_path">vendor_path</a>)
+crates_vendor(<a href="#crates_vendor-name">name</a>, <a href="#crates_vendor-annotations">annotations</a>, <a href="#crates_vendor-buildifier">buildifier</a>, <a href="#crates_vendor-cargo_bazel">cargo_bazel</a>, <a href="#crates_vendor-cargo_config">cargo_config</a>, <a href="#crates_vendor-cargo_lockfile">cargo_lockfile</a>,
+              <a href="#crates_vendor-generate_build_scripts">generate_build_scripts</a>, <a href="#crates_vendor-manifests">manifests</a>, <a href="#crates_vendor-mode">mode</a>, <a href="#crates_vendor-packages">packages</a>, <a href="#crates_vendor-repository_name">repository_name</a>, <a href="#crates_vendor-splicing_config">splicing_config</a>,
+              <a href="#crates_vendor-supported_platform_triples">supported_platform_triples</a>, <a href="#crates_vendor-vendor_path">vendor_path</a>)
 </pre>
 
-A rule for defining Rust dependencies (crates) and writing targets for them to the current workspace
+A rule for defining Rust dependencies (crates) and writing targets for them to the current workspace.
+This rule is useful for users whose workspaces are expected to be consumed in other workspaces as the
+rendered `BUILD` files reduce the number of workspace dependencies, allowing for easier loads. This rule
+handles all the same [workflows](#workflows) `crate_universe` rules do.
+
+Example: 
+
+Given the following workspace structure:
+
+```text
+[workspace]/
+    WORKSPACE
+    BUILD
+    Cargo.toml
+    3rdparty/
+        BUILD
+    src/
+        main.rs
+```
+
+The following is something that'd be found in `3rdparty/BUILD`:
+
+```python
+load("@rules_rust//crate_universe:defs.bzl", "crates_vendor", "crate")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "rand": [crate.annotation(
+            default_features = False,
+            features = ["small_rng"],
+        )],
+    },
+    cargo_lockfile = "//:Cargo.Bazel.lock",
+    manifests = ["//:Cargo.toml"],
+    mode = "remote",
+    vendor_path = "crates",
+    tags = ["manual"],
+)
+```
+
+The above creates a target that can be run to write `BUILD` files into the `3rdparty`
+directory next to where the target is defined. To run it, simply call:
+
+```shell
+bazel run //3rdparty:crates_vendor
+```
+
+<a id="#crates_vendor_repinning_updating_dependencies"></a>
+
+### Repinning / Updating Dependencies
+
+Repinning dependencies is controlled by both the `CARGO_BAZEL_REPIN` environment variable or the `--repin`
+flag to the `crates_vendor` binary. To update dependencies, simply add the flag ro your `bazel run` invocation.
+
+```shell
+bazel run //3rdparty:crates_vendor -- --repin
+```
+
+Under the hood, `--repin` will trigger a [cargo update](https://doc.rust-lang.org/cargo/commands/cargo-update.html)
+call against the generated workspace. The following table describes how to controll particular values passed to the
+`cargo update` command.
+
+| Value | Cargo command |
+| --- | --- |
+| Any of [`true`, `1`, `yes`, `on`] | `cargo update` |
+| `workspace` | `cargo update --workspace` |
+| `package_name` | `cargo upgrade --package package_name` |
+| `package_name@1.2.3` | `cargo upgrade --package package_name --precise 1.2.3` |
+
+
 
 **ATTRIBUTES**
 
@@ -218,20 +383,87 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="crates_vendor-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="crates_vendor-annotations"></a>annotations |  Extra settings to apply to crates. See [crate.annotations](#crateannotations).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> List of strings</a> | optional | {} |
+| <a id="crates_vendor-annotations"></a>annotations |  Extra settings to apply to crates. See [crate.annotation](#crateannotation).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> List of strings</a> | optional | {} |
 | <a id="crates_vendor-buildifier"></a>buildifier |  The path to a [buildifier](https://github.com/bazelbuild/buildtools/blob/5.0.1/buildifier/README.md) binary used to format generated BUILD files.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //crate_universe/private/vendor:buildifier |
 | <a id="crates_vendor-cargo_bazel"></a>cargo_bazel |  The cargo-bazel binary to use for vendoring. If this attribute is not set, then a <code>CARGO_BAZEL_GENERATOR_PATH</code> action env will be used.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | @cargo_bazel_bootstrap//:binary |
+| <a id="crates_vendor-cargo_config"></a>cargo_config |  A [Cargo configuration](https://doc.rust-lang.org/cargo/reference/config.html) file.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="crates_vendor-cargo_lockfile"></a>cargo_lockfile |  The path to an existing <code>Cargo.lock</code> file   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="crates_vendor-generate_build_scripts"></a>generate_build_scripts |  Whether or not to generate [cargo build scripts](https://doc.rust-lang.org/cargo/reference/build-scripts.html) by default.   | Boolean | optional | True |
 | <a id="crates_vendor-manifests"></a>manifests |  A list of Cargo manifests (<code>Cargo.toml</code> files).   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="crates_vendor-mode"></a>mode |  Flags determining how crates should be vendored. <code>local</code> is where crate source and BUILD files are written to the repository. <code>remote</code> is where only BUILD files are written and repository rules used to fetch source code.   | String | optional | "remote" |
 | <a id="crates_vendor-packages"></a>packages |  A set of crates (packages) specifications to depend on. See [crate.spec](#crate.spec).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="crates_vendor-repository_name"></a>repository_name |  The name of the repository to generate for <code>remote</code> vendor modes. If unset, the label name will be used   | String | optional | "" |
 | <a id="crates_vendor-splicing_config"></a>splicing_config |  The configuration flags to use for splicing Cargo maniests. Use <code>//crate_universe:defs.bzl\%rsplicing_config</code> to generate the value for this field. If unset, the defaults defined there will be used.   | String | optional | "" |
-| <a id="crates_vendor-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd"] |
+| <a id="crates_vendor-supported_platform_triples"></a>supported_platform_triples |  A set of all platform triples to consider when generating dependencies.   | List of strings | optional | ["i686-apple-darwin", "i686-pc-windows-msvc", "i686-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-pc-windows-msvc", "x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "armv7-linux-androideabi", "i686-linux-android", "i686-unknown-freebsd", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "riscv32imc-unknown-none-elf"] |
 | <a id="crates_vendor-vendor_path"></a>vendor_path |  The path to a directory to write files into. Absolute paths will be treated as relative to the workspace root   | String | optional | "crates" |
 
 
-<a id="#crate.spec"></a>
+<a id="aliases"></a>
+
+## aliases
+
+<pre>
+aliases(<a href="#aliases-normal">normal</a>, <a href="#aliases-normal_dev">normal_dev</a>, <a href="#aliases-proc_macro">proc_macro</a>, <a href="#aliases-proc_macro_dev">proc_macro_dev</a>, <a href="#aliases-build">build</a>, <a href="#aliases-build_proc_macro">build_proc_macro</a>, <a href="#aliases-package_name">package_name</a>)
+</pre>
+
+Produces a map of Crate alias names to their original label
+
+If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+Setting any one flag will otherwise determine the contents of the returned dict.
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="aliases-normal"></a>normal |  If True, normal dependencies are included in the output list.   |  <code>False</code> |
+| <a id="aliases-normal_dev"></a>normal_dev |  If True, normla dev dependencies will be included in the output list..   |  <code>False</code> |
+| <a id="aliases-proc_macro"></a>proc_macro |  If True, proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="aliases-proc_macro_dev"></a>proc_macro_dev |  If True, dev proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="aliases-build"></a>build |  If True, build dependencies are included in the output list.   |  <code>False</code> |
+| <a id="aliases-build_proc_macro"></a>build_proc_macro |  If True, build proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="aliases-package_name"></a>package_name |  The package name of the set of dependencies to look up. Defaults to <code>native.package_name()</code> when unset.   |  <code>None</code> |
+
+**RETURNS**
+
+dict: The aliases of all associated packages
+
+
+<a id="all_crate_deps"></a>
+
+## all_crate_deps
+
+<pre>
+all_crate_deps(<a href="#all_crate_deps-normal">normal</a>, <a href="#all_crate_deps-normal_dev">normal_dev</a>, <a href="#all_crate_deps-proc_macro">proc_macro</a>, <a href="#all_crate_deps-proc_macro_dev">proc_macro_dev</a>, <a href="#all_crate_deps-build">build</a>, <a href="#all_crate_deps-build_proc_macro">build_proc_macro</a>,
+               <a href="#all_crate_deps-package_name">package_name</a>)
+</pre>
+
+Finds the fully qualified label of all requested direct crate dependencies     for the package where this macro is called.
+
+If no parameters are set, all normal dependencies are returned. Setting any one flag will
+otherwise impact the contents of the returned list.
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="all_crate_deps-normal"></a>normal |  If True, normal dependencies are included in the output list.   |  <code>False</code> |
+| <a id="all_crate_deps-normal_dev"></a>normal_dev |  If True, normla dev dependencies will be included in the output list..   |  <code>False</code> |
+| <a id="all_crate_deps-proc_macro"></a>proc_macro |  If True, proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="all_crate_deps-proc_macro_dev"></a>proc_macro_dev |  If True, dev proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="all_crate_deps-build"></a>build |  If True, build dependencies are included in the output list.   |  <code>False</code> |
+| <a id="all_crate_deps-build_proc_macro"></a>build_proc_macro |  If True, build proc_macro dependencies are included in the output list.   |  <code>False</code> |
+| <a id="all_crate_deps-package_name"></a>package_name |  The package name of the set of dependencies to look up. Defaults to <code>native.package_name()</code> when unset.   |  <code>None</code> |
+
+**RETURNS**
+
+list: A list of labels to generated rust targets (str)
+
+
+<a id="crate.spec"></a>
 
 ## crate.spec
 
@@ -263,17 +495,17 @@
 string: A json encoded string of all inputs
 
 
-<a id="#crate.annotation"></a>
+<a id="crate.annotation"></a>
 
 ## crate.annotation
 
 <pre>
 crate.annotation(<a href="#crate.annotation-version">version</a>, <a href="#crate.annotation-additive_build_file">additive_build_file</a>, <a href="#crate.annotation-additive_build_file_content">additive_build_file_content</a>, <a href="#crate.annotation-build_script_data">build_script_data</a>,
-                 <a href="#crate.annotation-build_script_data_glob">build_script_data_glob</a>, <a href="#crate.annotation-build_script_deps">build_script_deps</a>, <a href="#crate.annotation-build_script_env">build_script_env</a>,
-                 <a href="#crate.annotation-build_script_proc_macro_deps">build_script_proc_macro_deps</a>, <a href="#crate.annotation-build_script_rustc_env">build_script_rustc_env</a>, <a href="#crate.annotation-compile_data">compile_data</a>,
-                 <a href="#crate.annotation-compile_data_glob">compile_data_glob</a>, <a href="#crate.annotation-crate_features">crate_features</a>, <a href="#crate.annotation-data">data</a>, <a href="#crate.annotation-data_glob">data_glob</a>, <a href="#crate.annotation-deps">deps</a>, <a href="#crate.annotation-gen_build_script">gen_build_script</a>,
-                 <a href="#crate.annotation-patch_args">patch_args</a>, <a href="#crate.annotation-patch_tool">patch_tool</a>, <a href="#crate.annotation-patches">patches</a>, <a href="#crate.annotation-proc_macro_deps">proc_macro_deps</a>, <a href="#crate.annotation-rustc_env">rustc_env</a>, <a href="#crate.annotation-rustc_env_files">rustc_env_files</a>,
-                 <a href="#crate.annotation-rustc_flags">rustc_flags</a>, <a href="#crate.annotation-shallow_since">shallow_since</a>)
+                 <a href="#crate.annotation-build_script_tools">build_script_tools</a>, <a href="#crate.annotation-build_script_data_glob">build_script_data_glob</a>, <a href="#crate.annotation-build_script_deps">build_script_deps</a>, <a href="#crate.annotation-build_script_env">build_script_env</a>,
+                 <a href="#crate.annotation-build_script_proc_macro_deps">build_script_proc_macro_deps</a>, <a href="#crate.annotation-build_script_rustc_env">build_script_rustc_env</a>, <a href="#crate.annotation-build_script_toolchains">build_script_toolchains</a>,
+                 <a href="#crate.annotation-compile_data">compile_data</a>, <a href="#crate.annotation-compile_data_glob">compile_data_glob</a>, <a href="#crate.annotation-crate_features">crate_features</a>, <a href="#crate.annotation-data">data</a>, <a href="#crate.annotation-data_glob">data_glob</a>, <a href="#crate.annotation-deps">deps</a>,
+                 <a href="#crate.annotation-gen_build_script">gen_build_script</a>, <a href="#crate.annotation-patch_args">patch_args</a>, <a href="#crate.annotation-patch_tool">patch_tool</a>, <a href="#crate.annotation-patches">patches</a>, <a href="#crate.annotation-proc_macro_deps">proc_macro_deps</a>, <a href="#crate.annotation-rustc_env">rustc_env</a>,
+                 <a href="#crate.annotation-rustc_env_files">rustc_env_files</a>, <a href="#crate.annotation-rustc_flags">rustc_flags</a>, <a href="#crate.annotation-shallow_since">shallow_since</a>)
 </pre>
 
 A collection of extra attributes and settings for a particular crate
@@ -287,11 +519,13 @@
 | <a id="crate.annotation-additive_build_file"></a>additive_build_file |  A file containing extra contents to write to the bottom of generated BUILD files.   |  <code>None</code> |
 | <a id="crate.annotation-additive_build_file_content"></a>additive_build_file_content |  Extra contents to write to the bottom of generated BUILD files.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_data"></a>build_script_data |  A list of labels to add to a crate's <code>cargo_build_script::data</code> attribute.   |  <code>None</code> |
+| <a id="crate.annotation-build_script_tools"></a>build_script_tools |  A list of labels to add to a crate's <code>cargo_build_script::tools</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_data_glob"></a>build_script_data_glob |  A list of glob patterns to add to a crate's <code>cargo_build_script::data</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_deps"></a>build_script_deps |  A list of labels to add to a crate's <code>cargo_build_script::deps</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_env"></a>build_script_env |  Additional environment variables to set on a crate's <code>cargo_build_script::env</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_proc_macro_deps"></a>build_script_proc_macro_deps |  A list of labels to add to a crate's <code>cargo_build_script::proc_macro_deps</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-build_script_rustc_env"></a>build_script_rustc_env |  Additional environment variables to set on a crate's <code>cargo_build_script::env</code> attribute.   |  <code>None</code> |
+| <a id="crate.annotation-build_script_toolchains"></a>build_script_toolchains |  A list of labels to set on a crates's <code>cargo_build_script::toolchains</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-compile_data"></a>compile_data |  A list of labels to add to a crate's <code>rust_library::compile_data</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-compile_data_glob"></a>compile_data_glob |  A list of glob patterns to add to a crate's <code>rust_library::compile_data</code> attribute.   |  <code>None</code> |
 | <a id="crate.annotation-crate_features"></a>crate_features |  A list of strings to add to a crate's <code>rust_library::crate_features</code> attribute.   |  <code>None</code> |
@@ -313,7 +547,7 @@
 string: A json encoded string containing the specified version and separately all other inputs.
 
 
-<a id="#crate.workspace_member"></a>
+<a id="crate.workspace_member"></a>
 
 ## crate.workspace_member
 
@@ -336,13 +570,68 @@
 string: A json encoded string of all inputs
 
 
-<a id="#render_config"></a>
+<a id="crate_deps"></a>
+
+## crate_deps
+
+<pre>
+crate_deps(<a href="#crate_deps-deps">deps</a>, <a href="#crate_deps-package_name">package_name</a>)
+</pre>
+
+Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="crate_deps-deps"></a>deps |  The desired list of crate targets.   |  none |
+| <a id="crate_deps-package_name"></a>package_name |  The package name of the set of dependencies to look up. Defaults to <code>native.package_name()</code>.   |  <code>None</code> |
+
+**RETURNS**
+
+list: A list of labels to generated rust targets (str)
+
+
+<a id="crate_repositories"></a>
+
+## crate_repositories
+
+<pre>
+crate_repositories()
+</pre>
+
+A macro for defining repositories for all generated crates
+
+
+
+<a id="crate_universe_dependencies"></a>
+
+## crate_universe_dependencies
+
+<pre>
+crate_universe_dependencies(<a href="#crate_universe_dependencies-rust_version">rust_version</a>, <a href="#crate_universe_dependencies-bootstrap">bootstrap</a>)
+</pre>
+
+Define dependencies of the `cargo-bazel` Rust target
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="crate_universe_dependencies-rust_version"></a>rust_version |  The version of rust to use when generating dependencies.   |  <code>"1.62.1"</code> |
+| <a id="crate_universe_dependencies-bootstrap"></a>bootstrap |  If true, a <code>cargo_bootstrap_repository</code> target will be generated.   |  <code>False</code> |
+
+
+<a id="render_config"></a>
 
 ## render_config
 
 <pre>
 render_config(<a href="#render_config-build_file_template">build_file_template</a>, <a href="#render_config-crate_label_template">crate_label_template</a>, <a href="#render_config-crate_repository_template">crate_repository_template</a>,
-              <a href="#render_config-crates_module_template">crates_module_template</a>, <a href="#render_config-default_package_name">default_package_name</a>, <a href="#render_config-platforms_template">platforms_template</a>, <a href="#render_config-vendor_mode">vendor_mode</a>)
+              <a href="#render_config-crates_module_template">crates_module_template</a>, <a href="#render_config-default_package_name">default_package_name</a>, <a href="#render_config-platforms_template">platforms_template</a>, <a href="#render_config-regen_command">regen_command</a>,
+              <a href="#render_config-vendor_mode">vendor_mode</a>)
 </pre>
 
 Various settings used to configure rendered outputs
@@ -369,8 +658,9 @@
 | <a id="render_config-crate_label_template"></a>crate_label_template |  The base template to use for crate labels. The available format keys are [<code>{repository}</code>, <code>{name}</code>, <code>{version}</code>, <code>{target}</code>].   |  <code>"@{repository}__{name}-{version}//:{target}"</code> |
 | <a id="render_config-crate_repository_template"></a>crate_repository_template |  The base template to use for Crate label repository names. The available format keys are [<code>{repository}</code>, <code>{name}</code>, <code>{version}</code>].   |  <code>"{repository}__{name}-{version}"</code> |
 | <a id="render_config-crates_module_template"></a>crates_module_template |  The pattern to use for the <code>defs.bzl</code> and <code>BUILD.bazel</code> file names used for the crates module. The available format keys are [<code>{file}</code>].   |  <code>"//:{file}"</code> |
-| <a id="render_config-default_package_name"></a>default_package_name |  The default package name to in the rendered macros. This affects the auto package detection of things like <code>all_crate_deps</code>.   |  <code>None</code> |
+| <a id="render_config-default_package_name"></a>default_package_name |  The default package name to use in the rendered macros. This affects the auto package detection of things like <code>all_crate_deps</code>.   |  <code>None</code> |
 | <a id="render_config-platforms_template"></a>platforms_template |  The base template to use for platform names. See [platforms documentation](https://docs.bazel.build/versions/main/platforms.html). The available format keys are [<code>{triple}</code>].   |  <code>"@rules_rust//rust/platform:{triple}"</code> |
+| <a id="render_config-regen_command"></a>regen_command |  An optional command to demonstrate how generated files should be regenerated.   |  <code>None</code> |
 | <a id="render_config-vendor_mode"></a>vendor_mode |  An optional configuration for rendirng content to be rendered into repositories.   |  <code>None</code> |
 
 **RETURNS**
@@ -378,7 +668,7 @@
 string: A json encoded struct to match the Rust `config::RenderConfig` struct
 
 
-<a id="#splicing_config"></a>
+<a id="splicing_config"></a>
 
 ## splicing_config
 
@@ -386,7 +676,7 @@
 splicing_config(<a href="#splicing_config-resolver_version">resolver_version</a>)
 </pre>
 
-arious settings used to configure Cargo manifest splicing behavior.
+Various settings used to configure Cargo manifest splicing behavior.
 
 [rv]: https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
 
diff --git a/third_party/rules_rust/docs/defs.md b/third_party/rules_rust/docs/defs.md
index 6d56201..577c7f6 100644
--- a/third_party/rules_rust/docs/defs.md
+++ b/third_party/rules_rust/docs/defs.md
@@ -9,10 +9,11 @@
 * [rust_test](#rust_test)
 * [rust_test_suite](#rust_test_suite)
 * [error_format](#error_format)
+* [extra_rustc_flag](#extra_rustc_flag)
 * [extra_rustc_flags](#extra_rustc_flags)
 * [capture_clippy_output](#capture_clippy_output)
 
-<a id="#capture_clippy_output"></a>
+<a id="capture_clippy_output"></a>
 
 ## capture_clippy_output
 
@@ -30,7 +31,7 @@
 | <a id="capture_clippy_output-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#error_format"></a>
+<a id="error_format"></a>
 
 ## error_format
 
@@ -48,7 +49,25 @@
 | <a id="error_format-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#extra_rustc_flags"></a>
+<a id="extra_rustc_flag"></a>
+
+## extra_rustc_flag
+
+<pre>
+extra_rustc_flag(<a href="#extra_rustc_flag-name">name</a>)
+</pre>
+
+Add additional rustc_flag from the command line with `--@rules_rust//:extra_rustc_flag`. Multiple uses are accumulated and appended after the extra_rustc_flags.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="extra_rustc_flag-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+
+
+<a id="extra_rustc_flags"></a>
 
 ## extra_rustc_flags
 
@@ -66,14 +85,14 @@
 | <a id="extra_rustc_flags-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#rust_binary"></a>
+<a id="rust_binary"></a>
 
 ## rust_binary
 
 <pre>
 rust_binary(<a href="#rust_binary-name">name</a>, <a href="#rust_binary-aliases">aliases</a>, <a href="#rust_binary-compile_data">compile_data</a>, <a href="#rust_binary-crate_features">crate_features</a>, <a href="#rust_binary-crate_name">crate_name</a>, <a href="#rust_binary-crate_root">crate_root</a>, <a href="#rust_binary-crate_type">crate_type</a>, <a href="#rust_binary-data">data</a>,
-            <a href="#rust_binary-deps">deps</a>, <a href="#rust_binary-edition">edition</a>, <a href="#rust_binary-linker_script">linker_script</a>, <a href="#rust_binary-out_binary">out_binary</a>, <a href="#rust_binary-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_binary-rustc_env">rustc_env</a>, <a href="#rust_binary-rustc_env_files">rustc_env_files</a>,
-            <a href="#rust_binary-rustc_flags">rustc_flags</a>, <a href="#rust_binary-srcs">srcs</a>, <a href="#rust_binary-stamp">stamp</a>, <a href="#rust_binary-version">version</a>)
+            <a href="#rust_binary-deps">deps</a>, <a href="#rust_binary-edition">edition</a>, <a href="#rust_binary-experimental_use_cc_common_link">experimental_use_cc_common_link</a>, <a href="#rust_binary-linker_script">linker_script</a>, <a href="#rust_binary-out_binary">out_binary</a>,
+            <a href="#rust_binary-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_binary-rustc_env">rustc_env</a>, <a href="#rust_binary-rustc_env_files">rustc_env_files</a>, <a href="#rust_binary-rustc_flags">rustc_flags</a>, <a href="#rust_binary-srcs">srcs</a>, <a href="#rust_binary-stamp">stamp</a>, <a href="#rust_binary-version">version</a>)
 </pre>
 
 Builds a Rust binary crate.
@@ -178,6 +197,7 @@
 | <a id="rust_binary-data"></a>data |  List of files used by this rule at compile time and runtime.<br><br>If including data at compile time with include_str!() and similar, prefer <code>compile_data</code> over <code>data</code>, to prevent the data also being included in the runfiles.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_binary-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_binary-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
+| <a id="rust_binary-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Whether to use cc_common.link to link rust binaries. Possible values: [-1, 0, 1]. -1 means use the value of the toolchain.experimental_use_cc_common_link boolean build setting to determine. 0 means do not use cc_common.link (use rustc instead). 1 means use cc_common.link.   | Integer | optional | -1 |
 | <a id="rust_binary-linker_script"></a>linker_script |  Link script to forward into linker via rustc options.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_binary-out_binary"></a>out_binary |  Force a target, regardless of it's <code>crate_type</code>, to always mark the file as executable. This attribute is only used to support wasm targets but is expected to be removed following a resolution to https://github.com/bazelbuild/rules_rust/issues/771.   | Boolean | optional | False |
 | <a id="rust_binary-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
@@ -189,13 +209,14 @@
 | <a id="rust_binary-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_library"></a>
+<a id="rust_library"></a>
 
 ## rust_library
 
 <pre>
 rust_library(<a href="#rust_library-name">name</a>, <a href="#rust_library-aliases">aliases</a>, <a href="#rust_library-compile_data">compile_data</a>, <a href="#rust_library-crate_features">crate_features</a>, <a href="#rust_library-crate_name">crate_name</a>, <a href="#rust_library-crate_root">crate_root</a>, <a href="#rust_library-data">data</a>, <a href="#rust_library-deps">deps</a>,
-             <a href="#rust_library-edition">edition</a>, <a href="#rust_library-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_library-rustc_env">rustc_env</a>, <a href="#rust_library-rustc_env_files">rustc_env_files</a>, <a href="#rust_library-rustc_flags">rustc_flags</a>, <a href="#rust_library-srcs">srcs</a>, <a href="#rust_library-stamp">stamp</a>, <a href="#rust_library-version">version</a>)
+             <a href="#rust_library-disable_pipelining">disable_pipelining</a>, <a href="#rust_library-edition">edition</a>, <a href="#rust_library-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_library-rustc_env">rustc_env</a>, <a href="#rust_library-rustc_env_files">rustc_env_files</a>, <a href="#rust_library-rustc_flags">rustc_flags</a>,
+             <a href="#rust_library-srcs">srcs</a>, <a href="#rust_library-stamp">stamp</a>, <a href="#rust_library-version">version</a>)
 </pre>
 
 Builds a Rust library crate.
@@ -275,17 +296,18 @@
 | <a id="rust_library-crate_root"></a>crate_root |  The file that will be passed to <code>rustc</code> to be used for building this crate.<br><br>If <code>crate_root</code> is not set, then this rule will look for a <code>lib.rs</code> file (or <code>main.rs</code> for rust_binary) or the single file in <code>srcs</code> if <code>srcs</code> contains only one file.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_library-data"></a>data |  List of files used by this rule at compile time and runtime.<br><br>If including data at compile time with include_str!() and similar, prefer <code>compile_data</code> over <code>data</code>, to prevent the data also being included in the runfiles.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_library-disable_pipelining"></a>disable_pipelining |  Disables pipelining for this rule if it is globally enabled. This will cause this rule to not produce a <code>.rmeta</code> file and all the dependent crates will instead use the <code>.rlib</code> file.   | Boolean | optional | False |
 | <a id="rust_library-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
 | <a id="rust_library-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-rustc_env"></a>rustc_env |  Dictionary of additional <code>"key": "value"</code> environment variables to set for rustc.<br><br>rust_test()/rust_binary() rules can use $(rootpath //package:target) to pass in the location of a generated file or external tool. Cargo build scripts that wish to expand locations should use cargo_build_script()'s build_script_env argument instead, as build scripts are run in a different environment - see cargo_build_script()'s documentation for more.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_proc_macro"></a>
+<a id="rust_proc_macro"></a>
 
 ## rust_proc_macro
 
@@ -317,11 +339,11 @@
 | <a id="rust_proc_macro-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_proc_macro-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_proc_macro-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_proc_macro-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_proc_macro-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_proc_macro-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_shared_library"></a>
+<a id="rust_shared_library"></a>
 
 ## rust_shared_library
 
@@ -361,11 +383,11 @@
 | <a id="rust_shared_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_shared_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_shared_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_shared_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_shared_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_shared_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_static_library"></a>
+<a id="rust_static_library"></a>
 
 ## rust_static_library
 
@@ -405,18 +427,18 @@
 | <a id="rust_static_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_static_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_static_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_static_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_static_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_static_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_test"></a>
+<a id="rust_test"></a>
 
 ## rust_test
 
 <pre>
 rust_test(<a href="#rust_test-name">name</a>, <a href="#rust_test-aliases">aliases</a>, <a href="#rust_test-compile_data">compile_data</a>, <a href="#rust_test-crate">crate</a>, <a href="#rust_test-crate_features">crate_features</a>, <a href="#rust_test-crate_name">crate_name</a>, <a href="#rust_test-crate_root">crate_root</a>, <a href="#rust_test-data">data</a>, <a href="#rust_test-deps">deps</a>,
-          <a href="#rust_test-edition">edition</a>, <a href="#rust_test-env">env</a>, <a href="#rust_test-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_test-rustc_env">rustc_env</a>, <a href="#rust_test-rustc_env_files">rustc_env_files</a>, <a href="#rust_test-rustc_flags">rustc_flags</a>, <a href="#rust_test-srcs">srcs</a>, <a href="#rust_test-stamp">stamp</a>,
-          <a href="#rust_test-use_libtest_harness">use_libtest_harness</a>, <a href="#rust_test-version">version</a>)
+          <a href="#rust_test-edition">edition</a>, <a href="#rust_test-env">env</a>, <a href="#rust_test-experimental_use_cc_common_link">experimental_use_cc_common_link</a>, <a href="#rust_test-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_test-rustc_env">rustc_env</a>, <a href="#rust_test-rustc_env_files">rustc_env_files</a>,
+          <a href="#rust_test-rustc_flags">rustc_flags</a>, <a href="#rust_test-srcs">srcs</a>, <a href="#rust_test-stamp">stamp</a>, <a href="#rust_test-use_libtest_harness">use_libtest_harness</a>, <a href="#rust_test-version">version</a>)
 </pre>
 
 Builds a Rust test crate.
@@ -462,7 +484,9 @@
 }
 ```
 
-To build and run the tests, simply add a `rust_test` rule with no `srcs` and         only depends on the `hello_lib` `rust_library` target:
+To build and run the tests, simply add a `rust_test` rule with no `srcs`
+and only depends on the `hello_lib` `rust_library` target via the
+`crate` attribute:
 
 `hello_lib/BUILD`:
 ```python
@@ -475,23 +499,15 @@
 
 rust_test(
     name = "hello_lib_test",
-    deps = [":hello_lib"],
-)
-```
-
-Run the test with `bazel build //hello_lib:hello_lib_test`.
-
-To run a crate or lib with the `#[cfg(test)]` configuration, handling inline         tests, you should specify the crate directly like so.
-
-```python
-rust_test(
-    name = "hello_lib_test",
     crate = ":hello_lib",
     # You may add other deps that are specific to the test configuration
     deps = ["//some/dev/dep"],
-)
 ```
 
+Run the test with `bazel test //hello_lib:hello_lib_test`. The crate
+will be built using the same crate name as the underlying ":hello_lib"
+crate.
+
 ### Example: `test` directory
 
 Integration tests that live in the [`tests` directory][int-tests], they are         essentially built as separate crates. Suppose you have the following directory         structure where `greeting.rs` is an integration test for the `hello_lib`         library crate:
@@ -541,7 +557,7 @@
 )
 ```
 
-Run the test with `bazel build //hello_lib:hello_lib_test`.
+Run the test with `bazel test //hello_lib:greeting_test`.
 
 **ATTRIBUTES**
 
@@ -559,17 +575,18 @@
 | <a id="rust_test-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
 | <a id="rust_test-env"></a>env |  Specifies additional environment variables to set when the test is executed by bazel test. Values are subject to <code>$(rootpath)</code>, <code>$(execpath)</code>, location, and ["Make variable"](https://docs.bazel.build/versions/master/be/make-variables.html) substitution.<br><br>Execpath returns absolute path, and in order to be able to construct the absolute path we need to wrap the test binary in a launcher. Using a launcher comes with complications, such as more complicated debugger attachment.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_test-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Whether to use cc_common.link to link rust binaries. Possible values: [-1, 0, 1]. -1 means use the value of the toolchain.experimental_use_cc_common_link boolean build setting to determine. 0 means do not use cc_common.link (use rustc instead). 1 means use cc_common.link.   | Integer | optional | -1 |
 | <a id="rust_test-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-rustc_env"></a>rustc_env |  Dictionary of additional <code>"key": "value"</code> environment variables to set for rustc.<br><br>rust_test()/rust_binary() rules can use $(rootpath //package:target) to pass in the location of a generated file or external tool. Cargo build scripts that wish to expand locations should use cargo_build_script()'s build_script_env argument instead, as build scripts are run in a different environment - see cargo_build_script()'s documentation for more.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_test-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_test-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_test-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_test-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_test-use_libtest_harness"></a>use_libtest_harness |  Whether to use <code>libtest</code>. For targets using this flag, individual tests can be run by using the [--test_arg](https://docs.bazel.build/versions/4.0.0/command-line-reference.html#flag--test_arg) flag. E.g. <code>bazel test //src:rust_test --test_arg=foo::test::test_fn</code>.   | Boolean | optional | True |
 | <a id="rust_test-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_test_suite"></a>
+<a id="rust_test_suite"></a>
 
 ## rust_test_suite
 
diff --git a/third_party/rules_rust/docs/flatten.md b/third_party/rules_rust/docs/flatten.md
index 18fee16..1646c21 100644
--- a/third_party/rules_rust/docs/flatten.md
+++ b/third_party/rules_rust/docs/flatten.md
@@ -8,16 +8,18 @@
 * [cargo_build_script](#cargo_build_script)
 * [cargo_env](#cargo_env)
 * [error_format](#error_format)
+* [extra_rustc_flag](#extra_rustc_flag)
 * [extra_rustc_flags](#extra_rustc_flags)
 * [fail_when_enabled](#fail_when_enabled)
 * [incompatible_flag](#incompatible_flag)
 * [rules_rust_dependencies](#rules_rust_dependencies)
-* [rust_analyzer](#rust_analyzer)
 * [rust_analyzer_aspect](#rust_analyzer_aspect)
+* [rust_analyzer_toolchain](#rust_analyzer_toolchain)
 * [rust_binary](#rust_binary)
 * [rust_bindgen](#rust_bindgen)
+* [rust_bindgen_dependencies](#rust_bindgen_dependencies)
 * [rust_bindgen_library](#rust_bindgen_library)
-* [rust_bindgen_repositories](#rust_bindgen_repositories)
+* [rust_bindgen_register_toolchains](#rust_bindgen_register_toolchains)
 * [rust_bindgen_toolchain](#rust_bindgen_toolchain)
 * [rust_clippy](#rust_clippy)
 * [rust_clippy_aspect](#rust_clippy_aspect)
@@ -41,14 +43,16 @@
 * [rust_toolchain](#rust_toolchain)
 * [rust_toolchain_repository](#rust_toolchain_repository)
 * [rust_toolchain_repository_proxy](#rust_toolchain_repository_proxy)
+* [rust_toolchain_tools_repository](#rust_toolchain_tools_repository)
 * [rust_wasm_bindgen](#rust_wasm_bindgen)
-* [rust_wasm_bindgen_repositories](#rust_wasm_bindgen_repositories)
+* [rust_wasm_bindgen_dependencies](#rust_wasm_bindgen_dependencies)
+* [rust_wasm_bindgen_register_toolchains](#rust_wasm_bindgen_register_toolchains)
 * [rust_wasm_bindgen_toolchain](#rust_wasm_bindgen_toolchain)
 * [rustfmt_aspect](#rustfmt_aspect)
 * [rustfmt_test](#rustfmt_test)
 
 
-<a id="#capture_clippy_output"></a>
+<a id="capture_clippy_output"></a>
 
 ## capture_clippy_output
 
@@ -66,7 +70,7 @@
 | <a id="capture_clippy_output-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#cargo_bootstrap_repository"></a>
+<a id="cargo_bootstrap_repository"></a>
 
 ## cargo_bootstrap_repository
 
@@ -93,15 +97,15 @@
 | <a id="cargo_bootstrap_repository-env_label"></a>env_label |  A mapping of platform triple to a set of environment variables. This attribute differs from <code>env</code> in that all variables passed here must be fully qualified labels of files. See [cargo_env](#cargo_env) for usage details. Additionally, the platform triple <code>*</code> applies to all platforms.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="cargo_bootstrap_repository-iso_date"></a>iso_date |  The iso_date of cargo binary the resolver should use. Note: This can only be set if <code>version</code> is <code>beta</code> or <code>nightly</code>   | String | optional | "" |
 | <a id="cargo_bootstrap_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="cargo_bootstrap_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
+| <a id="cargo_bootstrap_repository-rust_toolchain_cargo_template"></a>rust_toolchain_cargo_template |  The template to use for finding the host <code>cargo</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
 | <a id="cargo_bootstrap_repository-rust_toolchain_repository_template"></a>rust_toolchain_repository_template |  **Deprecated**: Please use <code>rust_toolchain_cargo_template</code> and <code>rust_toolchain_rustc_template</code>   | String | optional | "" |
-| <a id="cargo_bootstrap_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}//:bin/{tool}" |
+| <a id="cargo_bootstrap_repository-rust_toolchain_rustc_template"></a>rust_toolchain_rustc_template |  The template to use for finding the host <code>rustc</code> binary. <code>{version}</code> (eg. '1.53.0'), <code>{triple}</code> (eg. 'x86_64-unknown-linux-gnu'), <code>{arch}</code> (eg. 'aarch64'), <code>{vendor}</code> (eg. 'unknown'), <code>{system}</code> (eg. 'darwin'), and <code>{tool}</code> (eg. 'rustc.exe') will be replaced in the string if present.   | String | optional | "@rust_{system}_{arch}__{triple}_tools//:bin/{tool}" |
 | <a id="cargo_bootstrap_repository-srcs"></a>srcs |  Souce files of the crate to build. Passing source files here can be used to trigger rebuilds when changes are made   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="cargo_bootstrap_repository-timeout"></a>timeout |  Maximum duration of the Cargo build command in seconds   | Integer | optional | 600 |
-| <a id="cargo_bootstrap_repository-version"></a>version |  The version of cargo the resolver should use   | String | optional | "1.59.0" |
+| <a id="cargo_bootstrap_repository-version"></a>version |  The version of cargo the resolver should use   | String | optional | "1.62.1" |
 
 
-<a id="#error_format"></a>
+<a id="error_format"></a>
 
 ## error_format
 
@@ -119,7 +123,25 @@
 | <a id="error_format-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#extra_rustc_flags"></a>
+<a id="extra_rustc_flag"></a>
+
+## extra_rustc_flag
+
+<pre>
+extra_rustc_flag(<a href="#extra_rustc_flag-name">name</a>)
+</pre>
+
+Add additional rustc_flag from the command line with `--@rules_rust//:extra_rustc_flag`. Multiple uses are accumulated and appended after the extra_rustc_flags.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="extra_rustc_flag-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+
+
+<a id="extra_rustc_flags"></a>
 
 ## extra_rustc_flags
 
@@ -137,7 +159,7 @@
 | <a id="extra_rustc_flags-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 
 
-<a id="#incompatible_flag"></a>
+<a id="incompatible_flag"></a>
 
 ## incompatible_flag
 
@@ -156,34 +178,33 @@
 | <a id="incompatible_flag-issue"></a>issue |  The link to the github issue associated with this flag   | String | required |  |
 
 
-<a id="#rust_analyzer"></a>
+<a id="rust_analyzer_toolchain"></a>
 
-## rust_analyzer
+## rust_analyzer_toolchain
 
 <pre>
-rust_analyzer(<a href="#rust_analyzer-name">name</a>, <a href="#rust_analyzer-targets">targets</a>)
+rust_analyzer_toolchain(<a href="#rust_analyzer_toolchain-name">name</a>, <a href="#rust_analyzer_toolchain-rustc_srcs">rustc_srcs</a>)
 </pre>
 
-Deprecated: gen_rust_project can now create a rust-project.json without a rust_analyzer rule.
-
+A toolchain for [rust-analyzer](https://rust-analyzer.github.io/).
 
 **ATTRIBUTES**
 
 
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
-| <a id="rust_analyzer-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_analyzer-targets"></a>targets |  List of all targets to be included in the index   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_analyzer_toolchain-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+| <a id="rust_analyzer_toolchain-rustc_srcs"></a>rustc_srcs |  The source code of rustc.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
 
 
-<a id="#rust_binary"></a>
+<a id="rust_binary"></a>
 
 ## rust_binary
 
 <pre>
 rust_binary(<a href="#rust_binary-name">name</a>, <a href="#rust_binary-aliases">aliases</a>, <a href="#rust_binary-compile_data">compile_data</a>, <a href="#rust_binary-crate_features">crate_features</a>, <a href="#rust_binary-crate_name">crate_name</a>, <a href="#rust_binary-crate_root">crate_root</a>, <a href="#rust_binary-crate_type">crate_type</a>, <a href="#rust_binary-data">data</a>,
-            <a href="#rust_binary-deps">deps</a>, <a href="#rust_binary-edition">edition</a>, <a href="#rust_binary-linker_script">linker_script</a>, <a href="#rust_binary-out_binary">out_binary</a>, <a href="#rust_binary-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_binary-rustc_env">rustc_env</a>, <a href="#rust_binary-rustc_env_files">rustc_env_files</a>,
-            <a href="#rust_binary-rustc_flags">rustc_flags</a>, <a href="#rust_binary-srcs">srcs</a>, <a href="#rust_binary-stamp">stamp</a>, <a href="#rust_binary-version">version</a>)
+            <a href="#rust_binary-deps">deps</a>, <a href="#rust_binary-edition">edition</a>, <a href="#rust_binary-experimental_use_cc_common_link">experimental_use_cc_common_link</a>, <a href="#rust_binary-linker_script">linker_script</a>, <a href="#rust_binary-out_binary">out_binary</a>,
+            <a href="#rust_binary-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_binary-rustc_env">rustc_env</a>, <a href="#rust_binary-rustc_env_files">rustc_env_files</a>, <a href="#rust_binary-rustc_flags">rustc_flags</a>, <a href="#rust_binary-srcs">srcs</a>, <a href="#rust_binary-stamp">stamp</a>, <a href="#rust_binary-version">version</a>)
 </pre>
 
 Builds a Rust binary crate.
@@ -288,6 +309,7 @@
 | <a id="rust_binary-data"></a>data |  List of files used by this rule at compile time and runtime.<br><br>If including data at compile time with include_str!() and similar, prefer <code>compile_data</code> over <code>data</code>, to prevent the data also being included in the runfiles.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_binary-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_binary-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
+| <a id="rust_binary-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Whether to use cc_common.link to link rust binaries. Possible values: [-1, 0, 1]. -1 means use the value of the toolchain.experimental_use_cc_common_link boolean build setting to determine. 0 means do not use cc_common.link (use rustc instead). 1 means use cc_common.link.   | Integer | optional | -1 |
 | <a id="rust_binary-linker_script"></a>linker_script |  Link script to forward into linker via rustc options.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_binary-out_binary"></a>out_binary |  Force a target, regardless of it's <code>crate_type</code>, to always mark the file as executable. This attribute is only used to support wasm targets but is expected to be removed following a resolution to https://github.com/bazelbuild/rules_rust/issues/771.   | Boolean | optional | False |
 | <a id="rust_binary-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
@@ -299,7 +321,7 @@
 | <a id="rust_binary-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_bindgen"></a>
+<a id="rust_bindgen"></a>
 
 ## rust_bindgen
 
@@ -316,13 +338,13 @@
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_bindgen-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 | <a id="rust_bindgen-bindgen_flags"></a>bindgen_flags |  Flags to pass directly to the bindgen executable. See https://rust-lang.github.io/rust-bindgen/ for details.   | List of strings | optional | [] |
-| <a id="rust_bindgen-cc_lib"></a>cc_lib |  The cc_library that contains the .h file. This is used to find the transitive includes.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_bindgen-cc_lib"></a>cc_lib |  The cc_library that contains the <code>.h</code> file. This is used to find the transitive includes.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_bindgen-clang_flags"></a>clang_flags |  Flags to pass directly to the clang executable.   | List of strings | optional | [] |
-| <a id="rust_bindgen-header"></a>header |  The .h file to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_bindgen-header"></a>header |  The <code>.h</code> file to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_bindgen-rustfmt"></a>rustfmt |  Enable or disable running rustfmt on the generated file.   | Boolean | optional | True |
 
 
-<a id="#rust_bindgen_toolchain"></a>
+<a id="rust_bindgen_toolchain"></a>
 
 ## rust_bindgen_toolchain
 
@@ -332,6 +354,32 @@
 
 The tools required for the `rust_bindgen` rule.
 
+This rule depends on the [`bindgen`](https://crates.io/crates/bindgen) binary crate, and it 
+in turn depends on both a clang binary and the clang library. To obtain these dependencies,
+`rust_bindgen_dependencies` imports bindgen and its dependencies.
+
+```python
+load("@rules_rust//bindgen:bindgen.bzl", "rust_bindgen_toolchain")
+
+rust_bindgen_toolchain(
+    name = "bindgen_toolchain_impl",
+    bindgen = "//my/rust:bindgen",
+    clang = "//my/clang:clang",
+    libclang = "//my/clang:libclang.so",
+    libstdcxx = "//my/cpp:libstdc++",
+)
+
+toolchain(
+    name = "bindgen_toolchain",
+    toolchain = "bindgen_toolchain_impl",
+    toolchain_type = "@rules_rust//bindgen:toolchain_type",
+)
+```
+
+This toolchain will then need to be registered in the current `WORKSPACE`.
+For additional information, see the [Bazel toolchains documentation](https://docs.bazel.build/versions/master/toolchains.html).
+
+
 **ATTRIBUTES**
 
 
@@ -345,7 +393,7 @@
 | <a id="rust_bindgen_toolchain-rustfmt"></a>rustfmt |  The label of a <code>rustfmt</code> executable. If this is not provided, falls back to the rust_toolchain rustfmt.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 
 
-<a id="#rust_clippy"></a>
+<a id="rust_clippy"></a>
 
 ## rust_clippy
 
@@ -399,12 +447,13 @@
 | <a id="rust_clippy-deps"></a>deps |  Rust targets to run clippy on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_doc"></a>
+<a id="rust_doc"></a>
 
 ## rust_doc
 
 <pre>
-rust_doc(<a href="#rust_doc-name">name</a>, <a href="#rust_doc-crate">crate</a>, <a href="#rust_doc-html_after_content">html_after_content</a>, <a href="#rust_doc-html_before_content">html_before_content</a>, <a href="#rust_doc-html_in_header">html_in_header</a>, <a href="#rust_doc-markdown_css">markdown_css</a>)
+rust_doc(<a href="#rust_doc-name">name</a>, <a href="#rust_doc-crate">crate</a>, <a href="#rust_doc-html_after_content">html_after_content</a>, <a href="#rust_doc-html_before_content">html_before_content</a>, <a href="#rust_doc-html_in_header">html_in_header</a>, <a href="#rust_doc-markdown_css">markdown_css</a>,
+         <a href="#rust_doc-rustc_flags">rustc_flags</a>)
 </pre>
 
 Generates code documentation.
@@ -455,14 +504,15 @@
 | <a id="rust_doc-html_before_content"></a>html_before_content |  File to add in <code>&lt;body&gt;</code>, before content.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_doc-html_in_header"></a>html_in_header |  File to add to <code>&lt;head&gt;</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_doc-markdown_css"></a>markdown_css |  CSS files to include via <code>&lt;link&gt;</code> in a rendered Markdown file.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_doc-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 
 
-<a id="#rust_doc_test"></a>
+<a id="rust_doc_test"></a>
 
 ## rust_doc_test
 
 <pre>
-rust_doc_test(<a href="#rust_doc_test-name">name</a>, <a href="#rust_doc_test-crate">crate</a>)
+rust_doc_test(<a href="#rust_doc_test-name">name</a>, <a href="#rust_doc_test-crate">crate</a>, <a href="#rust_doc_test-deps">deps</a>)
 </pre>
 
 Runs Rust documentation tests.
@@ -510,9 +560,10 @@
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_doc_test-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 | <a id="rust_doc_test-crate"></a>crate |  The label of the target to generate code documentation for. <code>rust_doc_test</code> can generate HTML code documentation for the source files of <code>rust_library</code> or <code>rust_binary</code> targets.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
+| <a id="rust_doc_test-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_grpc_library"></a>
+<a id="rust_grpc_library"></a>
 
 ## rust_grpc_library
 
@@ -555,13 +606,14 @@
 | <a id="rust_grpc_library-rust_deps"></a>rust_deps |  The crates the generated library depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_library"></a>
+<a id="rust_library"></a>
 
 ## rust_library
 
 <pre>
 rust_library(<a href="#rust_library-name">name</a>, <a href="#rust_library-aliases">aliases</a>, <a href="#rust_library-compile_data">compile_data</a>, <a href="#rust_library-crate_features">crate_features</a>, <a href="#rust_library-crate_name">crate_name</a>, <a href="#rust_library-crate_root">crate_root</a>, <a href="#rust_library-data">data</a>, <a href="#rust_library-deps">deps</a>,
-             <a href="#rust_library-edition">edition</a>, <a href="#rust_library-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_library-rustc_env">rustc_env</a>, <a href="#rust_library-rustc_env_files">rustc_env_files</a>, <a href="#rust_library-rustc_flags">rustc_flags</a>, <a href="#rust_library-srcs">srcs</a>, <a href="#rust_library-stamp">stamp</a>, <a href="#rust_library-version">version</a>)
+             <a href="#rust_library-disable_pipelining">disable_pipelining</a>, <a href="#rust_library-edition">edition</a>, <a href="#rust_library-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_library-rustc_env">rustc_env</a>, <a href="#rust_library-rustc_env_files">rustc_env_files</a>, <a href="#rust_library-rustc_flags">rustc_flags</a>,
+             <a href="#rust_library-srcs">srcs</a>, <a href="#rust_library-stamp">stamp</a>, <a href="#rust_library-version">version</a>)
 </pre>
 
 Builds a Rust library crate.
@@ -641,17 +693,18 @@
 | <a id="rust_library-crate_root"></a>crate_root |  The file that will be passed to <code>rustc</code> to be used for building this crate.<br><br>If <code>crate_root</code> is not set, then this rule will look for a <code>lib.rs</code> file (or <code>main.rs</code> for rust_binary) or the single file in <code>srcs</code> if <code>srcs</code> contains only one file.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_library-data"></a>data |  List of files used by this rule at compile time and runtime.<br><br>If including data at compile time with include_str!() and similar, prefer <code>compile_data</code> over <code>data</code>, to prevent the data also being included in the runfiles.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_library-disable_pipelining"></a>disable_pipelining |  Disables pipelining for this rule if it is globally enabled. This will cause this rule to not produce a <code>.rmeta</code> file and all the dependent crates will instead use the <code>.rlib</code> file.   | Boolean | optional | False |
 | <a id="rust_library-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
 | <a id="rust_library-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-rustc_env"></a>rustc_env |  Dictionary of additional <code>"key": "value"</code> environment variables to set for rustc.<br><br>rust_test()/rust_binary() rules can use $(rootpath //package:target) to pass in the location of a generated file or external tool. Cargo build scripts that wish to expand locations should use cargo_build_script()'s build_script_env argument instead, as build scripts are run in a different environment - see cargo_build_script()'s documentation for more.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_proc_macro"></a>
+<a id="rust_proc_macro"></a>
 
 ## rust_proc_macro
 
@@ -683,11 +736,11 @@
 | <a id="rust_proc_macro-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_proc_macro-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_proc_macro-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_proc_macro-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_proc_macro-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_proc_macro-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_proto_library"></a>
+<a id="rust_proto_library"></a>
 
 ## rust_proto_library
 
@@ -730,7 +783,7 @@
 | <a id="rust_proto_library-rust_deps"></a>rust_deps |  The crates the generated library depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_proto_toolchain"></a>
+<a id="rust_proto_toolchain"></a>
 
 ## rust_proto_toolchain
 
@@ -779,15 +832,15 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_proto_toolchain-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_proto_toolchain-edition"></a>edition |  The edition used by the generated rust source.   | String | optional | "2018" |
-| <a id="rust_proto_toolchain-grpc_compile_deps"></a>grpc_compile_deps |  The crates the generated grpc libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/raze:protobuf"), Label("//proto/raze:grpc"), Label("//proto/raze:tls_api"), Label("//proto/raze:tls_api_stub")] |
+| <a id="rust_proto_toolchain-edition"></a>edition |  The edition used by the generated rust source.   | String | optional | "" |
+| <a id="rust_proto_toolchain-grpc_compile_deps"></a>grpc_compile_deps |  The crates the generated grpc libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/3rdparty/crates:protobuf"), Label("//proto/3rdparty/crates:grpc"), Label("//proto/3rdparty/crates:tls-api"), Label("//proto/3rdparty/crates:tls-api-stub")] |
 | <a id="rust_proto_toolchain-grpc_plugin"></a>grpc_plugin |  The location of the Rust protobuf compiler plugin to generate rust gRPC stubs.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //proto:protoc_gen_rust_grpc |
-| <a id="rust_proto_toolchain-proto_compile_deps"></a>proto_compile_deps |  The crates the generated protobuf libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/raze:protobuf")] |
+| <a id="rust_proto_toolchain-proto_compile_deps"></a>proto_compile_deps |  The crates the generated protobuf libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/3rdparty/crates:protobuf")] |
 | <a id="rust_proto_toolchain-proto_plugin"></a>proto_plugin |  The location of the Rust protobuf compiler plugin used to generate rust sources.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //proto:protoc_gen_rust |
 | <a id="rust_proto_toolchain-protoc"></a>protoc |  The location of the <code>protoc</code> binary. It should be an executable target.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | @com_google_protobuf//:protoc |
 
 
-<a id="#rust_shared_library"></a>
+<a id="rust_shared_library"></a>
 
 ## rust_shared_library
 
@@ -827,11 +880,11 @@
 | <a id="rust_shared_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_shared_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_shared_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_shared_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_shared_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_shared_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_static_library"></a>
+<a id="rust_static_library"></a>
 
 ## rust_static_library
 
@@ -871,11 +924,11 @@
 | <a id="rust_static_library-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_static_library-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_static_library-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_static_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_static_library-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_static_library-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_stdlib_filegroup"></a>
+<a id="rust_stdlib_filegroup"></a>
 
 ## rust_stdlib_filegroup
 
@@ -894,14 +947,14 @@
 | <a id="rust_stdlib_filegroup-srcs"></a>srcs |  The list of targets/files that are components of the rust-stdlib file group   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | required |  |
 
 
-<a id="#rust_test"></a>
+<a id="rust_test"></a>
 
 ## rust_test
 
 <pre>
 rust_test(<a href="#rust_test-name">name</a>, <a href="#rust_test-aliases">aliases</a>, <a href="#rust_test-compile_data">compile_data</a>, <a href="#rust_test-crate">crate</a>, <a href="#rust_test-crate_features">crate_features</a>, <a href="#rust_test-crate_name">crate_name</a>, <a href="#rust_test-crate_root">crate_root</a>, <a href="#rust_test-data">data</a>, <a href="#rust_test-deps">deps</a>,
-          <a href="#rust_test-edition">edition</a>, <a href="#rust_test-env">env</a>, <a href="#rust_test-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_test-rustc_env">rustc_env</a>, <a href="#rust_test-rustc_env_files">rustc_env_files</a>, <a href="#rust_test-rustc_flags">rustc_flags</a>, <a href="#rust_test-srcs">srcs</a>, <a href="#rust_test-stamp">stamp</a>,
-          <a href="#rust_test-use_libtest_harness">use_libtest_harness</a>, <a href="#rust_test-version">version</a>)
+          <a href="#rust_test-edition">edition</a>, <a href="#rust_test-env">env</a>, <a href="#rust_test-experimental_use_cc_common_link">experimental_use_cc_common_link</a>, <a href="#rust_test-proc_macro_deps">proc_macro_deps</a>, <a href="#rust_test-rustc_env">rustc_env</a>, <a href="#rust_test-rustc_env_files">rustc_env_files</a>,
+          <a href="#rust_test-rustc_flags">rustc_flags</a>, <a href="#rust_test-srcs">srcs</a>, <a href="#rust_test-stamp">stamp</a>, <a href="#rust_test-use_libtest_harness">use_libtest_harness</a>, <a href="#rust_test-version">version</a>)
 </pre>
 
 Builds a Rust test crate.
@@ -947,7 +1000,9 @@
 }
 ```
 
-To build and run the tests, simply add a `rust_test` rule with no `srcs` and         only depends on the `hello_lib` `rust_library` target:
+To build and run the tests, simply add a `rust_test` rule with no `srcs`
+and only depends on the `hello_lib` `rust_library` target via the
+`crate` attribute:
 
 `hello_lib/BUILD`:
 ```python
@@ -960,23 +1015,15 @@
 
 rust_test(
     name = "hello_lib_test",
-    deps = [":hello_lib"],
-)
-```
-
-Run the test with `bazel build //hello_lib:hello_lib_test`.
-
-To run a crate or lib with the `#[cfg(test)]` configuration, handling inline         tests, you should specify the crate directly like so.
-
-```python
-rust_test(
-    name = "hello_lib_test",
     crate = ":hello_lib",
     # You may add other deps that are specific to the test configuration
     deps = ["//some/dev/dep"],
-)
 ```
 
+Run the test with `bazel test //hello_lib:hello_lib_test`. The crate
+will be built using the same crate name as the underlying ":hello_lib"
+crate.
+
 ### Example: `test` directory
 
 Integration tests that live in the [`tests` directory][int-tests], they are         essentially built as separate crates. Suppose you have the following directory         structure where `greeting.rs` is an integration test for the `hello_lib`         library crate:
@@ -1026,7 +1073,7 @@
 )
 ```
 
-Run the test with `bazel build //hello_lib:hello_lib_test`.
+Run the test with `bazel test //hello_lib:greeting_test`.
 
 **ATTRIBUTES**
 
@@ -1044,25 +1091,27 @@
 | <a id="rust_test-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-edition"></a>edition |  The rust edition to use for this crate. Defaults to the edition specified in the rust_toolchain.   | String | optional | "" |
 | <a id="rust_test-env"></a>env |  Specifies additional environment variables to set when the test is executed by bazel test. Values are subject to <code>$(rootpath)</code>, <code>$(execpath)</code>, location, and ["Make variable"](https://docs.bazel.build/versions/master/be/make-variables.html) substitution.<br><br>Execpath returns absolute path, and in order to be able to construct the absolute path we need to wrap the test binary in a launcher. Using a launcher comes with complications, such as more complicated debugger attachment.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_test-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Whether to use cc_common.link to link rust binaries. Possible values: [-1, 0, 1]. -1 means use the value of the toolchain.experimental_use_cc_common_link boolean build setting to determine. 0 means do not use cc_common.link (use rustc instead). 1 means use cc_common.link.   | Integer | optional | -1 |
 | <a id="rust_test-proc_macro_deps"></a>proc_macro_deps |  List of <code>rust_library</code> targets with kind <code>proc-macro</code> used to help build this library target.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-rustc_env"></a>rustc_env |  Dictionary of additional <code>"key": "value"</code> environment variables to set for rustc.<br><br>rust_test()/rust_binary() rules can use $(rootpath //package:target) to pass in the location of a generated file or external tool. Cargo build scripts that wish to expand locations should use cargo_build_script()'s build_script_env argument instead, as build scripts are run in a different environment - see cargo_build_script()'s documentation for more.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_test-rustc_env_files"></a>rustc_env_files |  Files containing additional environment variables to set for rustc.<br><br>These files should  contain a single variable per line, of format <code>NAME=value</code>, and newlines may be included in a value by ending a line with a trailing back-slash (<code>\\</code>).<br><br>The order that these files will be processed is unspecified, so multiple definitions of a particular variable are discouraged.<br><br>Note that the variables here are subject to [workspace status](https://docs.bazel.build/versions/main/user-manual.html#workspace_status) stamping should the <code>stamp</code> attribute be enabled. Stamp variables should be wrapped in brackets in order to be resolved. E.g. <code>NAME={WORKSPACE_STATUS_VARIABLE}</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 | <a id="rust_test-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 | <a id="rust_test-srcs"></a>srcs |  List of Rust <code>.rs</code> source files used to build the library.<br><br>If <code>srcs</code> contains more than one file, then there must be a file either named <code>lib.rs</code>. Otherwise, <code>crate_root</code> must be set to the source file that is the root of the crate to be passed to rustc to build this crate.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
-| <a id="rust_test-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | -1 |
+| <a id="rust_test-stamp"></a>stamp |  Whether to encode build information into the <code>Rustc</code> action. Possible values:<br><br>- <code>stamp = 1</code>: Always stamp the build information into the <code>Rustc</code> action, even in             [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds.             This setting should be avoided, since it potentially kills remote caching for the target and             any downstream actions that depend on it.<br><br>- <code>stamp = 0</code>: Always replace build information by constant values. This gives good build result caching.<br><br>- <code>stamp = -1</code>: Embedding of build information is controlled by the             [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.<br><br>Stamped targets are not rebuilt unless their dependencies change.<br><br>For example if a <code>rust_library</code> is stamped, and a <code>rust_binary</code> depends on that library, the stamped library won't be rebuilt when we change sources of the <code>rust_binary</code>. This is different from how [<code>cc_library.linkstamps</code>](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp) behaves.   | Integer | optional | 0 |
 | <a id="rust_test-use_libtest_harness"></a>use_libtest_harness |  Whether to use <code>libtest</code>. For targets using this flag, individual tests can be run by using the [--test_arg](https://docs.bazel.build/versions/4.0.0/command-line-reference.html#flag--test_arg) flag. E.g. <code>bazel test //src:rust_test --test_arg=foo::test::test_fn</code>.   | Boolean | optional | True |
 | <a id="rust_test-version"></a>version |  A version to inject in the cargo environment variable.   | String | optional | "0.0.0" |
 
 
-<a id="#rust_toolchain"></a>
+<a id="rust_toolchain"></a>
 
 ## rust_toolchain
 
 <pre>
 rust_toolchain(<a href="#rust_toolchain-name">name</a>, <a href="#rust_toolchain-allocator_library">allocator_library</a>, <a href="#rust_toolchain-binary_ext">binary_ext</a>, <a href="#rust_toolchain-cargo">cargo</a>, <a href="#rust_toolchain-clippy_driver">clippy_driver</a>, <a href="#rust_toolchain-debug_info">debug_info</a>,
-               <a href="#rust_toolchain-default_edition">default_edition</a>, <a href="#rust_toolchain-dylib_ext">dylib_ext</a>, <a href="#rust_toolchain-exec_triple">exec_triple</a>, <a href="#rust_toolchain-llvm_tools">llvm_tools</a>, <a href="#rust_toolchain-opt_level">opt_level</a>, <a href="#rust_toolchain-os">os</a>, <a href="#rust_toolchain-rust_doc">rust_doc</a>, <a href="#rust_toolchain-rust_lib">rust_lib</a>,
-               <a href="#rust_toolchain-rust_std">rust_std</a>, <a href="#rust_toolchain-rustc">rustc</a>, <a href="#rust_toolchain-rustc_lib">rustc_lib</a>, <a href="#rust_toolchain-rustc_srcs">rustc_srcs</a>, <a href="#rust_toolchain-rustfmt">rustfmt</a>, <a href="#rust_toolchain-staticlib_ext">staticlib_ext</a>, <a href="#rust_toolchain-stdlib_linkflags">stdlib_linkflags</a>,
-               <a href="#rust_toolchain-target_json">target_json</a>, <a href="#rust_toolchain-target_triple">target_triple</a>)
+               <a href="#rust_toolchain-default_edition">default_edition</a>, <a href="#rust_toolchain-dylib_ext">dylib_ext</a>, <a href="#rust_toolchain-env">env</a>, <a href="#rust_toolchain-exec_triple">exec_triple</a>, <a href="#rust_toolchain-experimental_use_cc_common_link">experimental_use_cc_common_link</a>,
+               <a href="#rust_toolchain-llvm_cov">llvm_cov</a>, <a href="#rust_toolchain-llvm_profdata">llvm_profdata</a>, <a href="#rust_toolchain-llvm_tools">llvm_tools</a>, <a href="#rust_toolchain-opt_level">opt_level</a>, <a href="#rust_toolchain-os">os</a>, <a href="#rust_toolchain-rust_doc">rust_doc</a>, <a href="#rust_toolchain-rust_lib">rust_lib</a>, <a href="#rust_toolchain-rust_std">rust_std</a>,
+               <a href="#rust_toolchain-rustc">rustc</a>, <a href="#rust_toolchain-rustc_lib">rustc_lib</a>, <a href="#rust_toolchain-rustc_srcs">rustc_srcs</a>, <a href="#rust_toolchain-rustfmt">rustfmt</a>, <a href="#rust_toolchain-staticlib_ext">staticlib_ext</a>, <a href="#rust_toolchain-stdlib_linkflags">stdlib_linkflags</a>, <a href="#rust_toolchain-target_json">target_json</a>,
+               <a href="#rust_toolchain-target_triple">target_triple</a>)
 </pre>
 
 Declares a Rust toolchain for use.
@@ -1117,9 +1166,13 @@
 | <a id="rust_toolchain-cargo"></a>cargo |  The location of the <code>cargo</code> binary. Can be a direct source or a filegroup containing one item.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-clippy_driver"></a>clippy_driver |  The location of the <code>clippy-driver</code> binary. Can be a direct source or a filegroup containing one item.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-debug_info"></a>debug_info |  Rustc debug info levels per opt level   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {"dbg": "2", "fastbuild": "0", "opt": "0"} |
-| <a id="rust_toolchain-default_edition"></a>default_edition |  The edition to use for rust_* rules that don't specify an edition.   | String | optional | "2018" |
+| <a id="rust_toolchain-default_edition"></a>default_edition |  The edition to use for rust_* rules that don't specify an edition. If absent, every rule is required to specify its <code>edition</code> attribute.   | String | optional | "" |
 | <a id="rust_toolchain-dylib_ext"></a>dylib_ext |  The extension for dynamic libraries created from rustc.   | String | required |  |
+| <a id="rust_toolchain-env"></a>env |  Environment variables to set in actions.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_toolchain-exec_triple"></a>exec_triple |  The platform triple for the toolchains execution environment. For more details see: https://docs.bazel.build/versions/master/skylark/rules.html#configurations   | String | required |  |
+| <a id="rust_toolchain-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Label to a boolean build setting that controls whether cc_common.link is used to link rust binaries.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //rust/settings:experimental_use_cc_common_link |
+| <a id="rust_toolchain-llvm_cov"></a>llvm_cov |  The location of the <code>llvm-cov</code> binary. Can be a direct source or a filegroup containing one item. If None, rust code is not instrumented for coverage.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_toolchain-llvm_profdata"></a>llvm_profdata |  The location of the <code>llvm-profdata</code> binary. Can be a direct source or a filegroup containing one item. If <code>llvm_cov</code> is None, this can be None as well and rust code is not instrumented for coverage.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-llvm_tools"></a>llvm_tools |  LLVM tools that are shipped with the Rust toolchain.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-opt_level"></a>opt_level |  Rustc optimization levels.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {"dbg": "0", "fastbuild": "0", "opt": "3"} |
 | <a id="rust_toolchain-os"></a>os |  The operating system for the current toolchain   | String | required |  |
@@ -1136,49 +1189,13 @@
 | <a id="rust_toolchain-target_triple"></a>target_triple |  The platform triple for the toolchains target environment. For more details see: https://docs.bazel.build/versions/master/skylark/rules.html#configurations   | String | optional | "" |
 
 
-<a id="#rust_toolchain_repository"></a>
-
-## rust_toolchain_repository
-
-<pre>
-rust_toolchain_repository(<a href="#rust_toolchain_repository-name">name</a>, <a href="#rust_toolchain_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_repository-auth">auth</a>, <a href="#rust_toolchain_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_repository-edition">edition</a>, <a href="#rust_toolchain_repository-exec_triple">exec_triple</a>,
-                          <a href="#rust_toolchain_repository-extra_target_triples">extra_target_triples</a>, <a href="#rust_toolchain_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_repository-iso_date">iso_date</a>, <a href="#rust_toolchain_repository-repo_mapping">repo_mapping</a>,
-                          <a href="#rust_toolchain_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_repository-sha256s">sha256s</a>, <a href="#rust_toolchain_repository-toolchain_name_prefix">toolchain_name_prefix</a>, <a href="#rust_toolchain_repository-urls">urls</a>, <a href="#rust_toolchain_repository-version">version</a>)
-</pre>
-
-Composes a single workspace containing the toolchain components for compiling on a given platform to a series of target platforms.
-
-A given instance of this rule should be accompanied by a rust_toolchain_repository_proxy invocation to declare its toolchains to Bazel; the indirection allows separating toolchain selection from toolchain fetching.
-
-**ATTRIBUTES**
-
-
-| Name  | Description | Type | Mandatory | Default |
-| :------------- | :------------- | :------------- | :------------- | :------------- |
-| <a id="rust_toolchain_repository-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_toolchain_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   | String | optional | "" |
-| <a id="rust_toolchain_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
-| <a id="rust_toolchain_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   | Boolean | optional | False |
-| <a id="rust_toolchain_repository-edition"></a>edition |  The rust edition to be used by default.   | String | optional | "2018" |
-| <a id="rust_toolchain_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on   | String | required |  |
-| <a id="rust_toolchain_repository-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that this set of toolchains should support.   | List of strings | optional | [] |
-| <a id="rust_toolchain_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download and unpack the rustc source files. These are very large, and slow to unpack, but are required to support rust analyzer. An environment variable <code>RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS</code> can also be used to control this attribute. This variable will take precedence over the hard coded attribute. Setting it to <code>true</code> to activates this attribute where all other values deactivate it.   | Boolean | optional | False |
-| <a id="rust_toolchain_repository-iso_date"></a>iso_date |  The date of the tool (or None, if the version is a specific version).   | String | optional | "" |
-| <a id="rust_toolchain_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="rust_toolchain_repository-rustfmt_version"></a>rustfmt_version |  The version of the tool among "nightly", "beta", or an exact version.   | String | optional | "" |
-| <a id="rust_toolchain_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
-| <a id="rust_toolchain_repository-toolchain_name_prefix"></a>toolchain_name_prefix |  The per-target prefix expected for the rust_toolchain declarations in the parent workspace.   | String | optional | "" |
-| <a id="rust_toolchain_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   | List of strings | optional | ["https://static.rust-lang.org/dist/{}.tar.gz"] |
-| <a id="rust_toolchain_repository-version"></a>version |  The version of the tool among "nightly", "beta", or an exact version.   | String | required |  |
-
-
-<a id="#rust_toolchain_repository_proxy"></a>
+<a id="rust_toolchain_repository_proxy"></a>
 
 ## rust_toolchain_repository_proxy
 
 <pre>
-rust_toolchain_repository_proxy(<a href="#rust_toolchain_repository_proxy-name">name</a>, <a href="#rust_toolchain_repository_proxy-exec_triple">exec_triple</a>, <a href="#rust_toolchain_repository_proxy-extra_target_triples">extra_target_triples</a>, <a href="#rust_toolchain_repository_proxy-parent_workspace_name">parent_workspace_name</a>,
-                                <a href="#rust_toolchain_repository_proxy-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_repository_proxy-toolchain_name_prefix">toolchain_name_prefix</a>)
+rust_toolchain_repository_proxy(<a href="#rust_toolchain_repository_proxy-name">name</a>, <a href="#rust_toolchain_repository_proxy-exec_compatible_with">exec_compatible_with</a>, <a href="#rust_toolchain_repository_proxy-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_repository_proxy-target_compatible_with">target_compatible_with</a>,
+                                <a href="#rust_toolchain_repository_proxy-toolchain">toolchain</a>, <a href="#rust_toolchain_repository_proxy-toolchain_type">toolchain_type</a>)
 </pre>
 
 Generates a toolchain-bearing repository that declares the toolchains from some other rust_toolchain_repository.
@@ -1189,14 +1206,49 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_toolchain_repository_proxy-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_toolchain_repository_proxy-exec_triple"></a>exec_triple |  The Rust-style target triple for the compilation platform   | String | required |  |
-| <a id="rust_toolchain_repository_proxy-extra_target_triples"></a>extra_target_triples |  The Rust-style triples for extra compilation targets   | List of strings | optional | [] |
-| <a id="rust_toolchain_repository_proxy-parent_workspace_name"></a>parent_workspace_name |  The name of the other rust_toolchain_repository   | String | required |  |
+| <a id="rust_toolchain_repository_proxy-exec_compatible_with"></a>exec_compatible_with |  A list of constraints for the execution platform for this toolchain.   | List of strings | optional | [] |
 | <a id="rust_toolchain_repository_proxy-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="rust_toolchain_repository_proxy-toolchain_name_prefix"></a>toolchain_name_prefix |  The per-target prefix expected for the rust_toolchain declarations in the parent workspace.   | String | optional | "" |
+| <a id="rust_toolchain_repository_proxy-target_compatible_with"></a>target_compatible_with |  A list of constraints for the target platform for this toolchain.   | List of strings | optional | [] |
+| <a id="rust_toolchain_repository_proxy-toolchain"></a>toolchain |  The name of the toolchain implementation target.   | String | required |  |
+| <a id="rust_toolchain_repository_proxy-toolchain_type"></a>toolchain_type |  The toolchain type of the toolchain to declare   | String | required |  |
 
 
-<a id="#rust_wasm_bindgen"></a>
+<a id="rust_toolchain_tools_repository"></a>
+
+## rust_toolchain_tools_repository
+
+<pre>
+rust_toolchain_tools_repository(<a href="#rust_toolchain_tools_repository-name">name</a>, <a href="#rust_toolchain_tools_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_tools_repository-auth">auth</a>, <a href="#rust_toolchain_tools_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_tools_repository-edition">edition</a>, <a href="#rust_toolchain_tools_repository-exec_triple">exec_triple</a>,
+                                <a href="#rust_toolchain_tools_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_tools_repository-iso_date">iso_date</a>, <a href="#rust_toolchain_tools_repository-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_tools_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_tools_repository-sha256s">sha256s</a>,
+                                <a href="#rust_toolchain_tools_repository-target_triple">target_triple</a>, <a href="#rust_toolchain_tools_repository-urls">urls</a>, <a href="#rust_toolchain_tools_repository-version">version</a>)
+</pre>
+
+Composes a single workspace containing the toolchain components for compiling on a given platform to a series of target platforms.
+
+A given instance of this rule should be accompanied by a toolchain_repository_proxy invocation to declare its toolchains to Bazel; the indirection allows separating toolchain selection from toolchain fetching.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="rust_toolchain_tools_repository-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+| <a id="rust_toolchain_tools_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_toolchain_tools_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   | Boolean | optional | False |
+| <a id="rust_toolchain_tools_repository-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on   | String | required |  |
+| <a id="rust_toolchain_tools_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download and unpack the rustc source files. These are very large, and slow to unpack, but are required to support rust analyzer. An environment variable <code>RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS</code> can also be used to control this attribute. This variable will take precedence over the hard coded attribute. Setting it to <code>true</code> to activates this attribute where all other values deactivate it.   | Boolean | optional | False |
+| <a id="rust_toolchain_tools_repository-iso_date"></a>iso_date |  The date of the tool (or None, if the version is a specific version).   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
+| <a id="rust_toolchain_tools_repository-rustfmt_version"></a>rustfmt_version |  The version of the tool among "nightly", "beta", or an exact version.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_toolchain_tools_repository-target_triple"></a>target_triple |  The Rust-style target that this compiler builds for   | String | required |  |
+| <a id="rust_toolchain_tools_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   | List of strings | optional | ["https://static.rust-lang.org/dist/{}.tar.gz"] |
+| <a id="rust_toolchain_tools_repository-version"></a>version |  The version of the tool among "nightly", "beta", or an exact version.   | String | required |  |
+
+
+<a id="rust_wasm_bindgen"></a>
 
 ## rust_wasm_bindgen
 
@@ -1233,7 +1285,7 @@
 | <a id="rust_wasm_bindgen-wasm_file"></a>wasm_file |  The <code>.wasm</code> file or crate to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
 
 
-<a id="#rust_wasm_bindgen_toolchain"></a>
+<a id="rust_wasm_bindgen_toolchain"></a>
 
 ## rust_wasm_bindgen_toolchain
 
@@ -1256,7 +1308,7 @@
 toolchain(
     name = "wasm_bindgen_toolchain",
     toolchain = "wasm_bindgen_toolchain_impl",
-    toolchain_type = "@rules_rust//wasm_bindgen:wasm_bindgen_toolchain",
+    toolchain_type = "@rules_rust//wasm_bindgen:toolchain_type",
 )
 ```
 
@@ -1281,7 +1333,7 @@
 | <a id="rust_wasm_bindgen_toolchain-bindgen"></a>bindgen |  The label of a <code>wasm-bindgen-cli</code> executable.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 
 
-<a id="#rustfmt_test"></a>
+<a id="rustfmt_test"></a>
 
 ## rustfmt_test
 
@@ -1300,13 +1352,13 @@
 | <a id="rustfmt_test-targets"></a>targets |  Rust targets to run <code>rustfmt --check</code> on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#CrateInfo"></a>
+<a id="CrateInfo"></a>
 
 ## CrateInfo
 
 <pre>
-CrateInfo(<a href="#CrateInfo-aliases">aliases</a>, <a href="#CrateInfo-compile_data">compile_data</a>, <a href="#CrateInfo-deps">deps</a>, <a href="#CrateInfo-edition">edition</a>, <a href="#CrateInfo-is_test">is_test</a>, <a href="#CrateInfo-name">name</a>, <a href="#CrateInfo-output">output</a>, <a href="#CrateInfo-owner">owner</a>, <a href="#CrateInfo-proc_macro_deps">proc_macro_deps</a>, <a href="#CrateInfo-root">root</a>,
-          <a href="#CrateInfo-rustc_env">rustc_env</a>, <a href="#CrateInfo-rustc_env_files">rustc_env_files</a>, <a href="#CrateInfo-srcs">srcs</a>, <a href="#CrateInfo-type">type</a>, <a href="#CrateInfo-wrapped_crate_type">wrapped_crate_type</a>)
+CrateInfo(<a href="#CrateInfo-aliases">aliases</a>, <a href="#CrateInfo-compile_data">compile_data</a>, <a href="#CrateInfo-deps">deps</a>, <a href="#CrateInfo-edition">edition</a>, <a href="#CrateInfo-is_test">is_test</a>, <a href="#CrateInfo-metadata">metadata</a>, <a href="#CrateInfo-name">name</a>, <a href="#CrateInfo-output">output</a>, <a href="#CrateInfo-owner">owner</a>,
+          <a href="#CrateInfo-proc_macro_deps">proc_macro_deps</a>, <a href="#CrateInfo-root">root</a>, <a href="#CrateInfo-rustc_env">rustc_env</a>, <a href="#CrateInfo-rustc_env_files">rustc_env_files</a>, <a href="#CrateInfo-srcs">srcs</a>, <a href="#CrateInfo-type">type</a>, <a href="#CrateInfo-wrapped_crate_type">wrapped_crate_type</a>)
 </pre>
 
 A provider containing general Crate information.
@@ -1321,6 +1373,7 @@
 | <a id="CrateInfo-deps"></a>deps |  depset[DepVariantInfo]: This crate's (rust or cc) dependencies' providers.    |
 | <a id="CrateInfo-edition"></a>edition |  str: The edition of this crate.    |
 | <a id="CrateInfo-is_test"></a>is_test |  bool: If the crate is being compiled in a test context    |
+| <a id="CrateInfo-metadata"></a>metadata |  File: The rmeta file produced for this crate. It is optional.    |
 | <a id="CrateInfo-name"></a>name |  str: The name of this crate.    |
 | <a id="CrateInfo-output"></a>output |  File: The output File that will be produced, depends on crate type.    |
 | <a id="CrateInfo-owner"></a>owner |  Label: The label of the target that produced this CrateInfo    |
@@ -1333,13 +1386,14 @@
 | <a id="CrateInfo-wrapped_crate_type"></a>wrapped_crate_type |  str, optional: The original crate type for targets generated using a previously defined crate (typically tests using the <code>rust_test::crate</code> attribute)    |
 
 
-<a id="#DepInfo"></a>
+<a id="DepInfo"></a>
 
 ## DepInfo
 
 <pre>
 DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-link_search_path_files">link_search_path_files</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>,
-        <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
+        <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>, <a href="#DepInfo-transitive_metadata_outputs">transitive_metadata_outputs</a>,
+        <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
 </pre>
 
 A provider containing information about a Crate's dependencies.
@@ -1355,16 +1409,17 @@
 | <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos |  depset[BuildInfo]    |
 | <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs |  depset[File]: All transitive crate outputs.    |
 | <a id="DepInfo-transitive_crates"></a>transitive_crates |  depset[CrateInfo]    |
+| <a id="DepInfo-transitive_metadata_outputs"></a>transitive_metadata_outputs |  depset[File]: All transitive metadata dependencies (.rmeta, for crates that provide them) and all transitive object dependencies (.rlib) for crates that don't provide metadata.    |
 | <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates |  depset[LinkerInput]: All transitive dependencies that aren't crates.    |
 
 
-<a id="#StdLibInfo"></a>
+<a id="StdLibInfo"></a>
 
 ## StdLibInfo
 
 <pre>
 StdLibInfo(<a href="#StdLibInfo-alloc_files">alloc_files</a>, <a href="#StdLibInfo-between_alloc_and_core_files">between_alloc_and_core_files</a>, <a href="#StdLibInfo-between_core_and_std_files">between_core_and_std_files</a>, <a href="#StdLibInfo-core_files">core_files</a>,
-           <a href="#StdLibInfo-dot_a_files">dot_a_files</a>, <a href="#StdLibInfo-memchr_files">memchr_files</a>, <a href="#StdLibInfo-self_contained_files">self_contained_files</a>, <a href="#StdLibInfo-srcs">srcs</a>, <a href="#StdLibInfo-std_files">std_files</a>, <a href="#StdLibInfo-std_rlibs">std_rlibs</a>)
+           <a href="#StdLibInfo-dot_a_files">dot_a_files</a>, <a href="#StdLibInfo-memchr_files">memchr_files</a>, <a href="#StdLibInfo-self_contained_files">self_contained_files</a>, <a href="#StdLibInfo-srcs">srcs</a>, <a href="#StdLibInfo-std_files">std_files</a>, <a href="#StdLibInfo-std_rlibs">std_rlibs</a>, <a href="#StdLibInfo-test_files">test_files</a>)
 </pre>
 
 A collection of files either found within the `rust-stdlib` artifact or generated based on existing files.
@@ -1384,9 +1439,10 @@
 | <a id="StdLibInfo-srcs"></a>srcs |  List[Target]: All targets from the original <code>srcs</code> attribute.    |
 | <a id="StdLibInfo-std_files"></a>std_files |  Depset[File]: <code>.a</code> files associated with the <code>std</code> module.    |
 | <a id="StdLibInfo-std_rlibs"></a>std_rlibs |  List[File]: All <code>.rlib</code> files    |
+| <a id="StdLibInfo-test_files"></a>test_files |  Depset[File]: <code>.a</code> files associated with the <code>test</code> module.    |
 
 
-<a id="#cargo_build_script"></a>
+<a id="cargo_build_script"></a>
 
 ## cargo_build_script
 
@@ -1473,7 +1529,7 @@
 | <a id="cargo_build_script-kwargs"></a>kwargs |  Forwards to the underlying <code>rust_binary</code> rule.   |  none |
 
 
-<a id="#cargo_env"></a>
+<a id="cargo_env"></a>
 
 ## cargo_env
 
@@ -1520,7 +1576,31 @@
 str: A json encoded string of the environment variables
 
 
-<a id="#rust_bindgen_library"></a>
+<a id="rules_rust_dependencies"></a>
+
+## rules_rust_dependencies
+
+<pre>
+rules_rust_dependencies()
+</pre>
+
+Dependencies used in the implementation of `rules_rust`.
+
+
+
+<a id="rust_bindgen_dependencies"></a>
+
+## rust_bindgen_dependencies
+
+<pre>
+rust_bindgen_dependencies()
+</pre>
+
+Declare dependencies needed for bindgen.
+
+
+
+<a id="rust_bindgen_library"></a>
 
 ## rust_bindgen_library
 
@@ -1547,19 +1627,28 @@
 | <a id="rust_bindgen_library-kwargs"></a>kwargs |  Arguments to forward to the underlying <code>rust_library</code> rule.   |  none |
 
 
-<a id="#rust_bindgen_repositories"></a>
+<a id="rust_bindgen_register_toolchains"></a>
 
-## rust_bindgen_repositories
+## rust_bindgen_register_toolchains
 
 <pre>
-rust_bindgen_repositories()
+rust_bindgen_register_toolchains(<a href="#rust_bindgen_register_toolchains-register_toolchains">register_toolchains</a>)
 </pre>
 
-Declare dependencies needed for bindgen.
+Registers the default toolchains for the `rules_rust` [bindgen][bg] rules.
+
+[bg]: https://rust-lang.github.io/rust-bindgen/
 
 
+**PARAMETERS**
 
-<a id="#rust_proto_repositories"></a>
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_bindgen_register_toolchains-register_toolchains"></a>register_toolchains |  Whether or not to register toolchains.   |  <code>True</code> |
+
+
+<a id="rust_proto_repositories"></a>
 
 ## rust_proto_repositories
 
@@ -1577,7 +1666,7 @@
 | <a id="rust_proto_repositories-register_default_toolchain"></a>register_default_toolchain |  If True, the default [rust_proto_toolchain](#rust_proto_toolchain) (<code>@rules_rust//proto:default-proto-toolchain</code>) is registered. This toolchain requires a set of dependencies that were generated using [cargo raze](https://github.com/google/cargo-raze). These will also be loaded.   |  <code>True</code> |
 
 
-<a id="#rust_proto_transitive_repositories"></a>
+<a id="rust_proto_transitive_repositories"></a>
 
 ## rust_proto_transitive_repositories
 
@@ -1591,7 +1680,52 @@
 
 
 
-<a id="#rust_repositories"></a>
+<a id="rust_register_toolchains"></a>
+
+## rust_register_toolchains
+
+<pre>
+rust_register_toolchains(<a href="#rust_register_toolchains-dev_components">dev_components</a>, <a href="#rust_register_toolchains-edition">edition</a>, <a href="#rust_register_toolchains-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_register_toolchains-allocator_library">allocator_library</a>, <a href="#rust_register_toolchains-iso_date">iso_date</a>,
+                         <a href="#rust_register_toolchains-register_toolchains">register_toolchains</a>, <a href="#rust_register_toolchains-rustfmt_version">rustfmt_version</a>, <a href="#rust_register_toolchains-sha256s">sha256s</a>, <a href="#rust_register_toolchains-extra_target_triples">extra_target_triples</a>, <a href="#rust_register_toolchains-urls">urls</a>,
+                         <a href="#rust_register_toolchains-version">version</a>)
+</pre>
+
+Emits a default set of toolchains for Linux, MacOS, and Freebsd
+
+Skip this macro and call the `rust_repository_set` macros directly if you need a compiler for     other hosts or for additional target triples.
+
+The `sha256` attribute represents a dict associating tool subdirectories to sha256 hashes. As an example:
+```python
+{
+    "rust-1.46.0-x86_64-unknown-linux-gnu": "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5",
+    "rustfmt-1.4.12-x86_64-unknown-linux-gnu": "1894e76913303d66bf40885a601462844eec15fca9e76a6d13c390d7000d64b0",
+    "rust-std-1.46.0-x86_64-unknown-linux-gnu": "ac04aef80423f612c0079829b504902de27a6997214eb58ab0765d02f7ec1dbc",
+}
+```
+This would match for `exec_triple = "x86_64-unknown-linux-gnu"`.  If not specified, rules_rust pulls from a non-exhaustive     list of known checksums..
+
+See `load_arbitrary_tool` in `@rules_rust//rust:repositories.bzl` for more details.
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_register_toolchains-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   |  <code>False</code> |
+| <a id="rust_register_toolchains-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every target is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
+| <a id="rust_register_toolchains-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download rustc's src code. This is required in order to use rust-analyzer support. See [rust_toolchain_repository.include_rustc_srcs](#rust_toolchain_repository-include_rustc_srcs). for more details   |  <code>False</code> |
+| <a id="rust_register_toolchains-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   |  <code>None</code> |
+| <a id="rust_register_toolchains-iso_date"></a>iso_date |  The date of the nightly or beta release (ignored if the version is a specific version).   |  <code>None</code> |
+| <a id="rust_register_toolchains-register_toolchains"></a>register_toolchains |  If true, repositories will be generated to produce and register <code>rust_toolchain</code> targets.   |  <code>True</code> |
+| <a id="rust_register_toolchains-rustfmt_version"></a>rustfmt_version |  The version of rustfmt. Either "nightly", "beta", or an exact version. Defaults to <code>version</code> if not specified.   |  <code>None</code> |
+| <a id="rust_register_toolchains-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes.   |  <code>None</code> |
+| <a id="rust_register_toolchains-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that rust toolchains should support.   |  <code>["wasm32-unknown-unknown", "wasm32-wasi"]</code> |
+| <a id="rust_register_toolchains-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
+| <a id="rust_register_toolchains-version"></a>version |  The version of Rust. Either "nightly", "beta", or an exact version. Defaults to a modern version.   |  <code>"1.62.1"</code> |
+
+
+<a id="rust_repositories"></a>
 
 ## rust_repositories
 
@@ -1609,7 +1743,7 @@
 | <a id="rust_repositories-kwargs"></a>kwargs |  Keyword arguments for the <code>rust_register_toolchains</code> macro.   |  none |
 
 
-<a id="#rust_repository_set"></a>
+<a id="rust_repository_set"></a>
 
 ## rust_repository_set
 
@@ -1637,7 +1771,7 @@
 | <a id="rust_repository_set-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that this set of toolchains should support. Defaults to [].   |  <code>[]</code> |
 | <a id="rust_repository_set-iso_date"></a>iso_date |  The date of the tool. Defaults to None.   |  <code>None</code> |
 | <a id="rust_repository_set-rustfmt_version"></a>rustfmt_version |  The version of rustfmt to be associated with the toolchain. Defaults to None.   |  <code>None</code> |
-| <a id="rust_repository_set-edition"></a>edition |  The rust edition to be used by default (2015, 2018 (if None), or 2021).   |  <code>None</code> |
+| <a id="rust_repository_set-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
 | <a id="rust_repository_set-dev_components"></a>dev_components |  Whether to download the rustc-dev components. Requires version to be "nightly". Defaults to False.   |  <code>False</code> |
 | <a id="rust_repository_set-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   |  <code>None</code> |
 | <a id="rust_repository_set-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
@@ -1645,7 +1779,7 @@
 | <a id="rust_repository_set-register_toolchain"></a>register_toolchain |  If True, the generated <code>rust_toolchain</code> target will become a registered toolchain.   |  <code>True</code> |
 
 
-<a id="#rust_test_suite"></a>
+<a id="rust_test_suite"></a>
 
 ## rust_test_suite
 
@@ -1709,25 +1843,83 @@
 | <a id="rust_test_suite-kwargs"></a>kwargs |  Additional keyword arguments for the underyling [rust_test](#rust_test) targets. The <code>tags</code> argument is also passed to the generated <code>test_suite</code> target.   |  none |
 
 
-<a id="#rust_wasm_bindgen_repositories"></a>
+<a id="rust_toolchain_repository"></a>
 
-## rust_wasm_bindgen_repositories
+## rust_toolchain_repository
 
 <pre>
-rust_wasm_bindgen_repositories(<a href="#rust_wasm_bindgen_repositories-register_default_toolchain">register_default_toolchain</a>)
+rust_toolchain_repository(<a href="#rust_toolchain_repository-name">name</a>, <a href="#rust_toolchain_repository-version">version</a>, <a href="#rust_toolchain_repository-exec_triple">exec_triple</a>, <a href="#rust_toolchain_repository-target_triple">target_triple</a>, <a href="#rust_toolchain_repository-exec_compatible_with">exec_compatible_with</a>,
+                          <a href="#rust_toolchain_repository-target_compatible_with">target_compatible_with</a>, <a href="#rust_toolchain_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_repository-iso_date">iso_date</a>,
+                          <a href="#rust_toolchain_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_repository-edition">edition</a>, <a href="#rust_toolchain_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_repository-sha256s">sha256s</a>, <a href="#rust_toolchain_repository-urls">urls</a>, <a href="#rust_toolchain_repository-auth">auth</a>)
 </pre>
 
-Declare dependencies needed for [rust_wasm_bindgen](#rust_wasm_bindgen).
+Assembles a remote repository for the given toolchain params, produces a proxy repository     to contain the toolchain declaration, and registers the toolchains.
+
+N.B. A "proxy repository" is needed to allow for registering the toolchain (with constraints)     without actually downloading the toolchain.
+
 
 **PARAMETERS**
 
 
 | Name  | Description | Default Value |
 | :------------- | :------------- | :------------- |
-| <a id="rust_wasm_bindgen_repositories-register_default_toolchain"></a>register_default_toolchain |  If True, the default [rust_wasm_bindgen_toolchain](#rust_wasm_bindgen_toolchain) (<code>@rules_rust//wasm_bindgen:default_wasm_bindgen_toolchain</code>) is registered. This toolchain requires a set of dependencies that were generated using [cargo raze](https://github.com/google/cargo-raze). These will also be loaded.   |  <code>True</code> |
+| <a id="rust_toolchain_repository-name"></a>name |  The name of the generated repository   |  none |
+| <a id="rust_toolchain_repository-version"></a>version |  The version of the tool among "nightly", "beta', or an exact version.   |  none |
+| <a id="rust_toolchain_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on.   |  none |
+| <a id="rust_toolchain_repository-target_triple"></a>target_triple |  The Rust-style target to build for.   |  none |
+| <a id="rust_toolchain_repository-exec_compatible_with"></a>exec_compatible_with |  A list of constraints for the execution platform for this toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-target_compatible_with"></a>target_compatible_with |  A list of constraints for the target platform for this toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download rustc's src code. This is required in order to use rust-analyzer support.   |  <code>False</code> |
+| <a id="rust_toolchain_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-iso_date"></a>iso_date |  The date of the tool.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-rustfmt_version"></a>rustfmt_version |  The version of rustfmt to be associated with the toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components. Requires version to be "nightly". Defaults to False.   |  <code>False</code> |
+| <a id="rust_toolchain_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
+| <a id="rust_toolchain_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   |  <code>None</code> |
+
+**RETURNS**
+
+str: The name of the registerable toolchain created by this rule.
 
 
-<a id="#rust_analyzer_aspect"></a>
+<a id="rust_wasm_bindgen_dependencies"></a>
+
+## rust_wasm_bindgen_dependencies
+
+<pre>
+rust_wasm_bindgen_dependencies()
+</pre>
+
+Declare dependencies needed for the `rules_rust` [wasm-bindgen][wb] rules.
+
+[wb]: https://github.com/rustwasm/wasm-bindgen
+
+
+
+<a id="rust_wasm_bindgen_register_toolchains"></a>
+
+## rust_wasm_bindgen_register_toolchains
+
+<pre>
+rust_wasm_bindgen_register_toolchains(<a href="#rust_wasm_bindgen_register_toolchains-register_toolchains">register_toolchains</a>)
+</pre>
+
+Registers the default toolchains for the `rules_rust` [wasm-bindgen][wb] rules.
+
+[wb]: https://github.com/rustwasm/wasm-bindgen
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_wasm_bindgen_register_toolchains-register_toolchains"></a>register_toolchains |  Whether or not to register toolchains.   |  <code>True</code> |
+
+
+<a id="rust_analyzer_aspect"></a>
 
 ## rust_analyzer_aspect
 
@@ -1745,6 +1937,7 @@
 | deps| String |
 | proc_macro_deps| String |
 | crate| String |
+| actual| String |
 
 
 **ATTRIBUTES**
@@ -1755,7 +1948,7 @@
 | <a id="rust_analyzer_aspect-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |   |
 
 
-<a id="#rust_clippy_aspect"></a>
+<a id="rust_clippy_aspect"></a>
 
 ## rust_clippy_aspect
 
@@ -1803,7 +1996,7 @@
 | <a id="rust_clippy_aspect-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |   |
 
 
-<a id="#rustfmt_aspect"></a>
+<a id="rustfmt_aspect"></a>
 
 ## rustfmt_aspect
 
@@ -1824,8 +2017,8 @@
 [cs]: https://rust-lang.github.io/rustfmt/
 
 This aspect is executed on any target which provides the `CrateInfo` provider. However
-users may tag a target with `norustfmt` to have it skipped. Additionally, generated
-source files are also ignored by this aspect.
+users may tag a target with `no-rustfmt` or `no-format` to have it skipped. Additionally,
+generated source files are also ignored by this aspect.
 
 
 **ASPECT ATTRIBUTES**
diff --git a/third_party/rules_rust/docs/index.md b/third_party/rules_rust/docs/index.md
index 022d88c..6bce30e 100644
--- a/third_party/rules_rust/docs/index.md
+++ b/third_party/rules_rust/docs/index.md
@@ -18,13 +18,14 @@
 ```python
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
+# To find additional information on this release or newer ones visit:
+# https://github.com/bazelbuild/rules_rust/releases
 http_archive(
     name = "rules_rust",
-    sha256 = "531bdd470728b61ce41cf7604dc4f9a115983e455d46ac1d0c1632f613ab9fc3",
-    strip_prefix = "rules_rust-d8238877c0e552639d3e057aadd6bfcf37592408",
+    sha256 = "6bfe75125e74155955d8a9854a8811365e6c0f3d33ed700bc17f39e32522c822",
     urls = [
-        # `main` branch as of 2021-08-23
-        "https://github.com/bazelbuild/rules_rust/archive/d8238877c0e552639d3e057aadd6bfcf37592408.tar.gz",
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_rust/releases/download/0.9.0/rules_rust-v0.9.0.tar.gz",
+        "https://github.com/bazelbuild/rules_rust/releases/download/0.9.0/rules_rust-v0.9.0.tar.gz",
     ],
 )
 
@@ -36,7 +37,7 @@
 ```
 
 The rules are under active development, as such the lastest commit on the
-`main` branch should be used. `main` is only tested against `4.0.0` as the
+`main` branch should be used. `main` is only tested against `5.0.0` as the
 minimum supported version of Bazel. Though previous versions may still be
 functional in certain environments.
 
@@ -46,40 +47,38 @@
 - [rust_doc](rust_doc.md): rules for generating and testing rust documentation.
 - [rust_clippy](rust_clippy.md): rules for running [clippy](https://github.com/rust-lang/rust-clippy#readme).
 - [rust_fmt](rust_fmt.md): rules for running [rustfmt](https://github.com/rust-lang/rustfmt#readme).
-- [rust_proto](rust_proto.md): rules for generating [protobuf](https://developers.google.com/protocol-buffers).
-  and [gRPC](https://grpc.io) stubs.
+- [rust_proto](rust_proto.md): rules for generating [protobuf](https://developers.google.com/protocol-buffers) and [gRPC](https://grpc.io) stubs.
 - [rust_bindgen](rust_bindgen.md): rules for generating C++ bindings.
 - [rust_wasm_bindgen](rust_wasm_bindgen.md): rules for generating [WebAssembly](https://www.rust-lang.org/what/wasm) bindings.
 - [cargo](cargo.md): Rules dedicated to Cargo compatibility. ie: [`build.rs` scripts](https://doc.rust-lang.org/cargo/reference/build-scripts.html).
+- [crate_universe](crate_universe.md): Rules for generating Bazel targets for external crate depednencies.
 
 You can also browse the [full API in one page](flatten.md).
 
 ### Experimental rules
 
-- [crate_universe](crate_universe.md): A repository rule for fetching dependencies from a crate registry.
 - [rust_analyzer](rust_analyzer.md): rules for generating `rust-project.json` files for [rust-analyzer](https://rust-analyzer.github.io/)
 
 ## Specifying Rust version
 
-To build with a particular version of the Rust compiler, pass that version to [`rust_repositories`](flatten.md#rust_repositories):
+To build with a particular version of the Rust compiler, pass that version to [`rust_register_toolchains`](flatten.md#rust_register_toolchains):
 
 ```python
-rust_repositories(version = "1.53.0", edition="2018")
+rust_register_toolchains(version = "1.62.1", edition="2018")
 ```
 
 As well as an exact version, `version` can be set to `"nightly"` or `"beta"`. If set to these values, `iso_date` must also be set:
 
 ```python
-rust_repositories(version = "nightly", iso_date = "2021-06-16", edition="2018")
+rust_register_toolchains(version = "nightly", iso_date = "2022-07-18", edition="2018")
 ```
 
 Similarly, `rustfmt_version` may also be configured:
 
 ```python
-rust_repositories(rustfmt_version = "1.53.0")
+rust_register_toolchains(rustfmt_version = "1.62.1")
 ```
 
 ## External Dependencies
 
-Currently, the most common approach to managing external dependencies is using
-[cargo-raze](https://github.com/google/cargo-raze) to generate `BUILD` files for Cargo crates.
+[crate_universe](crate_universe.md) is a tool built into `rules_rust` that can be used to fetch dependencies. Additionally, [cargo-raze](https://github.com/google/cargo-raze) is an older third-party which can also fetch dependencies.
diff --git a/third_party/rules_rust/docs/providers.md b/third_party/rules_rust/docs/providers.md
index 713d618..11f77b7 100644
--- a/third_party/rules_rust/docs/providers.md
+++ b/third_party/rules_rust/docs/providers.md
@@ -5,13 +5,13 @@
 * [DepInfo](#DepInfo)
 * [StdLibInfo](#StdLibInfo)
 
-<a id="#CrateInfo"></a>
+<a id="CrateInfo"></a>
 
 ## CrateInfo
 
 <pre>
-CrateInfo(<a href="#CrateInfo-aliases">aliases</a>, <a href="#CrateInfo-compile_data">compile_data</a>, <a href="#CrateInfo-deps">deps</a>, <a href="#CrateInfo-edition">edition</a>, <a href="#CrateInfo-is_test">is_test</a>, <a href="#CrateInfo-name">name</a>, <a href="#CrateInfo-output">output</a>, <a href="#CrateInfo-owner">owner</a>, <a href="#CrateInfo-proc_macro_deps">proc_macro_deps</a>, <a href="#CrateInfo-root">root</a>,
-          <a href="#CrateInfo-rustc_env">rustc_env</a>, <a href="#CrateInfo-rustc_env_files">rustc_env_files</a>, <a href="#CrateInfo-srcs">srcs</a>, <a href="#CrateInfo-type">type</a>, <a href="#CrateInfo-wrapped_crate_type">wrapped_crate_type</a>)
+CrateInfo(<a href="#CrateInfo-aliases">aliases</a>, <a href="#CrateInfo-compile_data">compile_data</a>, <a href="#CrateInfo-deps">deps</a>, <a href="#CrateInfo-edition">edition</a>, <a href="#CrateInfo-is_test">is_test</a>, <a href="#CrateInfo-metadata">metadata</a>, <a href="#CrateInfo-name">name</a>, <a href="#CrateInfo-output">output</a>, <a href="#CrateInfo-owner">owner</a>,
+          <a href="#CrateInfo-proc_macro_deps">proc_macro_deps</a>, <a href="#CrateInfo-root">root</a>, <a href="#CrateInfo-rustc_env">rustc_env</a>, <a href="#CrateInfo-rustc_env_files">rustc_env_files</a>, <a href="#CrateInfo-srcs">srcs</a>, <a href="#CrateInfo-type">type</a>, <a href="#CrateInfo-wrapped_crate_type">wrapped_crate_type</a>)
 </pre>
 
 A provider containing general Crate information.
@@ -26,6 +26,7 @@
 | <a id="CrateInfo-deps"></a>deps |  depset[DepVariantInfo]: This crate's (rust or cc) dependencies' providers.    |
 | <a id="CrateInfo-edition"></a>edition |  str: The edition of this crate.    |
 | <a id="CrateInfo-is_test"></a>is_test |  bool: If the crate is being compiled in a test context    |
+| <a id="CrateInfo-metadata"></a>metadata |  File: The rmeta file produced for this crate. It is optional.    |
 | <a id="CrateInfo-name"></a>name |  str: The name of this crate.    |
 | <a id="CrateInfo-output"></a>output |  File: The output File that will be produced, depends on crate type.    |
 | <a id="CrateInfo-owner"></a>owner |  Label: The label of the target that produced this CrateInfo    |
@@ -38,13 +39,14 @@
 | <a id="CrateInfo-wrapped_crate_type"></a>wrapped_crate_type |  str, optional: The original crate type for targets generated using a previously defined crate (typically tests using the <code>rust_test::crate</code> attribute)    |
 
 
-<a id="#DepInfo"></a>
+<a id="DepInfo"></a>
 
 ## DepInfo
 
 <pre>
 DepInfo(<a href="#DepInfo-dep_env">dep_env</a>, <a href="#DepInfo-direct_crates">direct_crates</a>, <a href="#DepInfo-link_search_path_files">link_search_path_files</a>, <a href="#DepInfo-transitive_build_infos">transitive_build_infos</a>,
-        <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>, <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
+        <a href="#DepInfo-transitive_crate_outputs">transitive_crate_outputs</a>, <a href="#DepInfo-transitive_crates">transitive_crates</a>, <a href="#DepInfo-transitive_metadata_outputs">transitive_metadata_outputs</a>,
+        <a href="#DepInfo-transitive_noncrates">transitive_noncrates</a>)
 </pre>
 
 A provider containing information about a Crate's dependencies.
@@ -60,16 +62,17 @@
 | <a id="DepInfo-transitive_build_infos"></a>transitive_build_infos |  depset[BuildInfo]    |
 | <a id="DepInfo-transitive_crate_outputs"></a>transitive_crate_outputs |  depset[File]: All transitive crate outputs.    |
 | <a id="DepInfo-transitive_crates"></a>transitive_crates |  depset[CrateInfo]    |
+| <a id="DepInfo-transitive_metadata_outputs"></a>transitive_metadata_outputs |  depset[File]: All transitive metadata dependencies (.rmeta, for crates that provide them) and all transitive object dependencies (.rlib) for crates that don't provide metadata.    |
 | <a id="DepInfo-transitive_noncrates"></a>transitive_noncrates |  depset[LinkerInput]: All transitive dependencies that aren't crates.    |
 
 
-<a id="#StdLibInfo"></a>
+<a id="StdLibInfo"></a>
 
 ## StdLibInfo
 
 <pre>
 StdLibInfo(<a href="#StdLibInfo-alloc_files">alloc_files</a>, <a href="#StdLibInfo-between_alloc_and_core_files">between_alloc_and_core_files</a>, <a href="#StdLibInfo-between_core_and_std_files">between_core_and_std_files</a>, <a href="#StdLibInfo-core_files">core_files</a>,
-           <a href="#StdLibInfo-dot_a_files">dot_a_files</a>, <a href="#StdLibInfo-memchr_files">memchr_files</a>, <a href="#StdLibInfo-self_contained_files">self_contained_files</a>, <a href="#StdLibInfo-srcs">srcs</a>, <a href="#StdLibInfo-std_files">std_files</a>, <a href="#StdLibInfo-std_rlibs">std_rlibs</a>)
+           <a href="#StdLibInfo-dot_a_files">dot_a_files</a>, <a href="#StdLibInfo-memchr_files">memchr_files</a>, <a href="#StdLibInfo-self_contained_files">self_contained_files</a>, <a href="#StdLibInfo-srcs">srcs</a>, <a href="#StdLibInfo-std_files">std_files</a>, <a href="#StdLibInfo-std_rlibs">std_rlibs</a>, <a href="#StdLibInfo-test_files">test_files</a>)
 </pre>
 
 A collection of files either found within the `rust-stdlib` artifact or generated based on existing files.
@@ -89,5 +92,6 @@
 | <a id="StdLibInfo-srcs"></a>srcs |  List[Target]: All targets from the original <code>srcs</code> attribute.    |
 | <a id="StdLibInfo-std_files"></a>std_files |  Depset[File]: <code>.a</code> files associated with the <code>std</code> module.    |
 | <a id="StdLibInfo-std_rlibs"></a>std_rlibs |  List[File]: All <code>.rlib</code> files    |
+| <a id="StdLibInfo-test_files"></a>test_files |  Depset[File]: <code>.a</code> files associated with the <code>test</code> module.    |
 
 
diff --git a/third_party/rules_rust/docs/rust_analyzer.md b/third_party/rules_rust/docs/rust_analyzer.md
index 5a3c884..ec10392 100644
--- a/third_party/rules_rust/docs/rust_analyzer.md
+++ b/third_party/rules_rust/docs/rust_analyzer.md
@@ -1,8 +1,8 @@
 <!-- Generated with Stardoc: http://skydoc.bazel.build -->
 # Rust Analyzer
 
-* [rust_analyzer](#rust_analyzer)
 * [rust_analyzer_aspect](#rust_analyzer_aspect)
+* [rust_analyzer_toolchain](#rust_analyzer_toolchain)
 
 
 ## Overview
@@ -14,30 +14,38 @@
 
 ### Setup
 
-First, add the following to the `WORKSPACE` file:
+First, ensure `rules_rust` is setup in your workspace. By default, `rust_register_toolchains` will
+ensure a [rust_analyzer_toolchain](#rust_analyzer_toolchain) is registered within the WORKSPACE.
+
+Next, load the dependencies for the `rust-project.json` generator tool:
 
 ```python
-load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_deps")
+load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_dependencies")
 
-rust_analyzer_deps()
+rust_analyzer_dependencies()
 ```
 
-Next, add the following lines to the `.bazelrc` file of your workspace:
-```
-build --repo_env=RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS=true
-```
-
-This will ensure rust source code is available to `rust-analyzer`. Users
-can also set `include_rustc_srcs = True` on any `rust_repository` or
-`rust_repositories` calls in the workspace but the environment variable
-has higher priority and can override the attribute.
-
 Finally, run `bazel run @rules_rust//tools/rust_analyzer:gen_rust_project`
 whenever dependencies change to regenerate the `rust-project.json` file. It
 should be added to `.gitignore` because it is effectively a build artifact.
 Once the `rust-project.json` has been generated in the project root,
 rust-analyzer can pick it up upon restart.
 
+For users who do not use `rust_register_toolchains` to register toolchains, the following can be added
+to their WORKSPACE to register a `rust_analyzer_toolchain`. Please make sure the Rust version used in
+this toolchain matches the version used by the currently registered toolchain or the sources/documentation
+# will not match what's being compiled with and can lead to confusing results.
+
+```python
+load("@rules_rust//rust:repositories.bzl", "rust_analyzer_toolchain_repository")
+
+register_toolchains(rust_analyzer_toolchain_repository(
+    name = "rust_analyzer_toolchain",
+    # This should match the currently registered toolchain.
+    version = "1.62.0",
+))
+```
+
 #### VSCode
 
 To set this up using [VSCode](https://code.visualstudio.com/), users should first install the
@@ -71,27 +79,26 @@
 ```
 
 
-<a id="#rust_analyzer"></a>
+<a id="rust_analyzer_toolchain"></a>
 
-## rust_analyzer
+## rust_analyzer_toolchain
 
 <pre>
-rust_analyzer(<a href="#rust_analyzer-name">name</a>, <a href="#rust_analyzer-targets">targets</a>)
+rust_analyzer_toolchain(<a href="#rust_analyzer_toolchain-name">name</a>, <a href="#rust_analyzer_toolchain-rustc_srcs">rustc_srcs</a>)
 </pre>
 
-Deprecated: gen_rust_project can now create a rust-project.json without a rust_analyzer rule.
-
+A toolchain for [rust-analyzer](https://rust-analyzer.github.io/).
 
 **ATTRIBUTES**
 
 
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
-| <a id="rust_analyzer-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_analyzer-targets"></a>targets |  List of all targets to be included in the index   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_analyzer_toolchain-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+| <a id="rust_analyzer_toolchain-rustc_srcs"></a>rustc_srcs |  The source code of rustc.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
 
 
-<a id="#rust_analyzer_aspect"></a>
+<a id="rust_analyzer_aspect"></a>
 
 ## rust_analyzer_aspect
 
@@ -109,6 +116,7 @@
 | deps| String |
 | proc_macro_deps| String |
 | crate| String |
+| actual| String |
 
 
 **ATTRIBUTES**
diff --git a/third_party/rules_rust/docs/rust_analyzer.vm b/third_party/rules_rust/docs/rust_analyzer.vm
index e366960..863995a 100644
--- a/third_party/rules_rust/docs/rust_analyzer.vm
+++ b/third_party/rules_rust/docs/rust_analyzer.vm
@@ -8,30 +8,38 @@
 
 ### Setup
 
-First, add the following to the `WORKSPACE` file:
+First, ensure `rules_rust` is setup in your workspace. By default, `rust_register_toolchains` will
+ensure a [rust_analyzer_toolchain](#rust_analyzer_toolchain) is registered within the WORKSPACE.
+
+Next, load the dependencies for the `rust-project.json` generator tool:
 
 ```python
-load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_deps")
+load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_dependencies")
 
-rust_analyzer_deps()
+rust_analyzer_dependencies()
 ```
 
-Next, add the following lines to the `.bazelrc` file of your workspace:
-```
-build --repo_env=RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS=true
-```
-
-This will ensure rust source code is available to `rust-analyzer`. Users
-can also set `include_rustc_srcs = True` on any `rust_repository` or
-`rust_repositories` calls in the workspace but the environment variable
-has higher priority and can override the attribute.
-
 Finally, run `bazel run @rules_rust//tools/rust_analyzer:gen_rust_project`
 whenever dependencies change to regenerate the `rust-project.json` file. It
 should be added to `.gitignore` because it is effectively a build artifact.
 Once the `rust-project.json` has been generated in the project root,
 rust-analyzer can pick it up upon restart.
 
+For users who do not use `rust_register_toolchains` to register toolchains, the following can be added
+to their WORKSPACE to register a `rust_analyzer_toolchain`. Please make sure the Rust version used in
+this toolchain matches the version used by the currently registered toolchain or the sources/documentation
+# will not match what's being compiled with and can lead to confusing results.
+
+```python
+load("@rules_rust//rust:repositories.bzl", "rust_analyzer_toolchain_repository")
+
+register_toolchains(rust_analyzer_toolchain_repository(
+    name = "rust_analyzer_toolchain",
+    # This should match the currently registered toolchain.
+    version = "1.62.0",
+))
+```
+
 #### VSCode
 
 To set this up using [VSCode](https://code.visualstudio.com/), users should first install the
diff --git a/third_party/rules_rust/docs/rust_bindgen.md b/third_party/rules_rust/docs/rust_bindgen.md
index 6127ede..3e28248 100644
--- a/third_party/rules_rust/docs/rust_bindgen.md
+++ b/third_party/rules_rust/docs/rust_bindgen.md
@@ -2,11 +2,41 @@
 # Rust Bindgen
 
 * [rust_bindgen_library](#rust_bindgen_library)
-* [rust_bindgen_repositories](#rust_bindgen_repositories)
+* [rust_bindgen_dependencies](#rust_bindgen_dependencies)
+* [rust_bindgen_register_toolchains](#rust_bindgen_register_toolchains)
 * [rust_bindgen_toolchain](#rust_bindgen_toolchain)
 * [rust_bindgen](#rust_bindgen)
 
-<a id="#rust_bindgen"></a>
+
+## Overview
+
+These rules are for using [Bindgen][bindgen] to generate [Rust][rust] bindings to C (and some C++) libraries.
+
+[rust]: http://www.rust-lang.org/
+[bindgen]: https://github.com/rust-lang/rust-bindgen
+
+See the [bindgen example](https://github.com/bazelbuild/rules_rust/tree/main/examples/ffi/rust_calling_c/simple/BUILD.bazel#L9) for a more complete example of use.
+
+### Setup
+
+To use the Rust bindgen rules, add the following to your `WORKSPACE` file to add the
+external repositories for the Rust bindgen toolchain (in addition to the [rust rules setup](https://bazelbuild.github.io/rules_rust/#setup)):
+
+```python
+load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_dependencies", "rust_bindgen_register_toolchains")
+
+rust_bindgen_dependencies()
+
+rust_bindgen_register_toolchains()
+```
+
+---
+
+---
+
+
+
+<a id="rust_bindgen"></a>
 
 ## rust_bindgen
 
@@ -23,13 +53,13 @@
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_bindgen-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 | <a id="rust_bindgen-bindgen_flags"></a>bindgen_flags |  Flags to pass directly to the bindgen executable. See https://rust-lang.github.io/rust-bindgen/ for details.   | List of strings | optional | [] |
-| <a id="rust_bindgen-cc_lib"></a>cc_lib |  The cc_library that contains the .h file. This is used to find the transitive includes.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_bindgen-cc_lib"></a>cc_lib |  The cc_library that contains the <code>.h</code> file. This is used to find the transitive includes.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_bindgen-clang_flags"></a>clang_flags |  Flags to pass directly to the clang executable.   | List of strings | optional | [] |
-| <a id="rust_bindgen-header"></a>header |  The .h file to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_bindgen-header"></a>header |  The <code>.h</code> file to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_bindgen-rustfmt"></a>rustfmt |  Enable or disable running rustfmt on the generated file.   | Boolean | optional | True |
 
 
-<a id="#rust_bindgen_toolchain"></a>
+<a id="rust_bindgen_toolchain"></a>
 
 ## rust_bindgen_toolchain
 
@@ -39,6 +69,32 @@
 
 The tools required for the `rust_bindgen` rule.
 
+This rule depends on the [`bindgen`](https://crates.io/crates/bindgen) binary crate, and it 
+in turn depends on both a clang binary and the clang library. To obtain these dependencies,
+`rust_bindgen_dependencies` imports bindgen and its dependencies.
+
+```python
+load("@rules_rust//bindgen:bindgen.bzl", "rust_bindgen_toolchain")
+
+rust_bindgen_toolchain(
+    name = "bindgen_toolchain_impl",
+    bindgen = "//my/rust:bindgen",
+    clang = "//my/clang:clang",
+    libclang = "//my/clang:libclang.so",
+    libstdcxx = "//my/cpp:libstdc++",
+)
+
+toolchain(
+    name = "bindgen_toolchain",
+    toolchain = "bindgen_toolchain_impl",
+    toolchain_type = "@rules_rust//bindgen:toolchain_type",
+)
+```
+
+This toolchain will then need to be registered in the current `WORKSPACE`.
+For additional information, see the [Bazel toolchains documentation](https://docs.bazel.build/versions/master/toolchains.html).
+
+
 **ATTRIBUTES**
 
 
@@ -52,7 +108,19 @@
 | <a id="rust_bindgen_toolchain-rustfmt"></a>rustfmt |  The label of a <code>rustfmt</code> executable. If this is not provided, falls back to the rust_toolchain rustfmt.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 
 
-<a id="#rust_bindgen_library"></a>
+<a id="rust_bindgen_dependencies"></a>
+
+## rust_bindgen_dependencies
+
+<pre>
+rust_bindgen_dependencies()
+</pre>
+
+Declare dependencies needed for bindgen.
+
+
+
+<a id="rust_bindgen_library"></a>
 
 ## rust_bindgen_library
 
@@ -79,15 +147,24 @@
 | <a id="rust_bindgen_library-kwargs"></a>kwargs |  Arguments to forward to the underlying <code>rust_library</code> rule.   |  none |
 
 
-<a id="#rust_bindgen_repositories"></a>
+<a id="rust_bindgen_register_toolchains"></a>
 
-## rust_bindgen_repositories
+## rust_bindgen_register_toolchains
 
 <pre>
-rust_bindgen_repositories()
+rust_bindgen_register_toolchains(<a href="#rust_bindgen_register_toolchains-register_toolchains">register_toolchains</a>)
 </pre>
 
-Declare dependencies needed for bindgen.
+Registers the default toolchains for the `rules_rust` [bindgen][bg] rules.
 
+[bg]: https://rust-lang.github.io/rust-bindgen/
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_bindgen_register_toolchains-register_toolchains"></a>register_toolchains |  Whether or not to register toolchains.   |  <code>True</code> |
 
 
diff --git a/third_party/rules_rust/docs/rust_bindgen.vm b/third_party/rules_rust/docs/rust_bindgen.vm
new file mode 100644
index 0000000..faffca3
--- /dev/null
+++ b/third_party/rules_rust/docs/rust_bindgen.vm
@@ -0,0 +1,28 @@
+#[[
+## Overview
+
+These rules are for using [Bindgen][bindgen] to generate [Rust][rust] bindings to C (and some C++) libraries.
+
+[rust]: http://www.rust-lang.org/
+[bindgen]: https://github.com/rust-lang/rust-bindgen
+
+See the [bindgen example](https://github.com/bazelbuild/rules_rust/tree/main/examples/ffi/rust_calling_c/simple/BUILD.bazel#L9) for a more complete example of use.
+
+### Setup
+
+To use the Rust bindgen rules, add the following to your `WORKSPACE` file to add the
+external repositories for the Rust bindgen toolchain (in addition to the [rust rules setup](https://bazelbuild.github.io/rules_rust/#setup)):
+
+```python
+load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_dependencies", "rust_bindgen_register_toolchains")
+
+rust_bindgen_dependencies()
+
+rust_bindgen_register_toolchains()
+```
+
+---
+
+---
+
+]]#
diff --git a/third_party/rules_rust/docs/rust_clippy.md b/third_party/rules_rust/docs/rust_clippy.md
index 834b23b..3e426f9 100644
--- a/third_party/rules_rust/docs/rust_clippy.md
+++ b/third_party/rules_rust/docs/rust_clippy.md
@@ -27,7 +27,7 @@
 
 This will enable clippy on all [Rust targets](./defs.md).
 
-Note that targets tagged with `noclippy` will not perform clippy checks
+Note that targets tagged with `no-clippy` will not perform clippy checks
 
 To use a local clippy.toml, add the following flag to your `.bazelrc`. Note that due to
 the upstream implementation of clippy, this file must be named either `.clippy.toml` or
@@ -37,7 +37,7 @@
 build --@rules_rust//:clippy.toml=//:clippy.toml
 ```
 
-<a id="#rust_clippy"></a>
+<a id="rust_clippy"></a>
 
 ## rust_clippy
 
@@ -91,7 +91,7 @@
 | <a id="rust_clippy-deps"></a>deps |  Rust targets to run clippy on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_clippy_aspect"></a>
+<a id="rust_clippy_aspect"></a>
 
 ## rust_clippy_aspect
 
diff --git a/third_party/rules_rust/docs/rust_clippy.vm b/third_party/rules_rust/docs/rust_clippy.vm
index abfc478..245f0ee 100644
--- a/third_party/rules_rust/docs/rust_clippy.vm
+++ b/third_party/rules_rust/docs/rust_clippy.vm
@@ -21,7 +21,7 @@
 
 This will enable clippy on all [Rust targets](./defs.md).
 
-Note that targets tagged with `noclippy` will not perform clippy checks
+Note that targets tagged with `no-clippy` will not perform clippy checks
 
 To use a local clippy.toml, add the following flag to your `.bazelrc`. Note that due to
 the upstream implementation of clippy, this file must be named either `.clippy.toml` or
diff --git a/third_party/rules_rust/docs/rust_doc.md b/third_party/rules_rust/docs/rust_doc.md
index cf5bf01..009172f 100644
--- a/third_party/rules_rust/docs/rust_doc.md
+++ b/third_party/rules_rust/docs/rust_doc.md
@@ -4,12 +4,13 @@
 * [rust_doc](#rust_doc)
 * [rust_doc_test](#rust_doc_test)
 
-<a id="#rust_doc"></a>
+<a id="rust_doc"></a>
 
 ## rust_doc
 
 <pre>
-rust_doc(<a href="#rust_doc-name">name</a>, <a href="#rust_doc-crate">crate</a>, <a href="#rust_doc-html_after_content">html_after_content</a>, <a href="#rust_doc-html_before_content">html_before_content</a>, <a href="#rust_doc-html_in_header">html_in_header</a>, <a href="#rust_doc-markdown_css">markdown_css</a>)
+rust_doc(<a href="#rust_doc-name">name</a>, <a href="#rust_doc-crate">crate</a>, <a href="#rust_doc-html_after_content">html_after_content</a>, <a href="#rust_doc-html_before_content">html_before_content</a>, <a href="#rust_doc-html_in_header">html_in_header</a>, <a href="#rust_doc-markdown_css">markdown_css</a>,
+         <a href="#rust_doc-rustc_flags">rustc_flags</a>)
 </pre>
 
 Generates code documentation.
@@ -60,14 +61,15 @@
 | <a id="rust_doc-html_before_content"></a>html_before_content |  File to add in <code>&lt;body&gt;</code>, before content.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_doc-html_in_header"></a>html_in_header |  File to add to <code>&lt;head&gt;</code>.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_doc-markdown_css"></a>markdown_css |  CSS files to include via <code>&lt;link&gt;</code> in a rendered Markdown file.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
+| <a id="rust_doc-rustc_flags"></a>rustc_flags |  List of compiler flags passed to <code>rustc</code>.<br><br>These strings are subject to Make variable expansion for predefined source/output path variables like <code>$location</code>, <code>$execpath</code>, and <code>$rootpath</code>. This expansion is useful if you wish to pass a generated file of arguments to rustc: <code>@$(location //package:target)</code>.   | List of strings | optional | [] |
 
 
-<a id="#rust_doc_test"></a>
+<a id="rust_doc_test"></a>
 
 ## rust_doc_test
 
 <pre>
-rust_doc_test(<a href="#rust_doc_test-name">name</a>, <a href="#rust_doc_test-crate">crate</a>)
+rust_doc_test(<a href="#rust_doc_test-name">name</a>, <a href="#rust_doc_test-crate">crate</a>, <a href="#rust_doc_test-deps">deps</a>)
 </pre>
 
 Runs Rust documentation tests.
@@ -115,5 +117,6 @@
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_doc_test-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
 | <a id="rust_doc_test-crate"></a>crate |  The label of the target to generate code documentation for. <code>rust_doc_test</code> can generate HTML code documentation for the source files of <code>rust_library</code> or <code>rust_binary</code> targets.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
+| <a id="rust_doc_test-deps"></a>deps |  List of other libraries to be linked to this library target.<br><br>These can be either other <code>rust_library</code> targets or <code>cc_library</code> targets if linking a native library.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
diff --git a/third_party/rules_rust/docs/rust_fmt.md b/third_party/rules_rust/docs/rust_fmt.md
index e97c821..e05f19d 100644
--- a/third_party/rules_rust/docs/rust_fmt.md
+++ b/third_party/rules_rust/docs/rust_fmt.md
@@ -46,7 +46,7 @@
 [rfcp]: https://github.com/rust-lang-nursery/fmt-rfcs
 [rgp]: https://rust-lang.github.io/rustfmt/
 
-<a id="#rustfmt_test"></a>
+<a id="rustfmt_test"></a>
 
 ## rustfmt_test
 
@@ -65,7 +65,7 @@
 | <a id="rustfmt_test-targets"></a>targets |  Rust targets to run <code>rustfmt --check</code> on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rustfmt_aspect"></a>
+<a id="rustfmt_aspect"></a>
 
 ## rustfmt_aspect
 
@@ -86,8 +86,8 @@
 [cs]: https://rust-lang.github.io/rustfmt/
 
 This aspect is executed on any target which provides the `CrateInfo` provider. However
-users may tag a target with `norustfmt` to have it skipped. Additionally, generated
-source files are also ignored by this aspect.
+users may tag a target with `no-rustfmt` or `no-format` to have it skipped. Additionally,
+generated source files are also ignored by this aspect.
 
 
 **ASPECT ATTRIBUTES**
diff --git a/third_party/rules_rust/docs/rust_proto.md b/third_party/rules_rust/docs/rust_proto.md
index dfba0b2..479cdb5 100644
--- a/third_party/rules_rust/docs/rust_proto.md
+++ b/third_party/rules_rust/docs/rust_proto.md
@@ -77,7 +77,7 @@
 toolchain(
     name = "proto-toolchain",
     toolchain = ":proto-toolchain-impl",
-    toolchain_type = "@rules_rust//proto:toolchain",
+    toolchain_type = "@rules_rust//proto:toolchain_type",
 )
 ```
 
@@ -117,7 +117,7 @@
 configuration.
 
 
-<a id="#rust_grpc_library"></a>
+<a id="rust_grpc_library"></a>
 
 ## rust_grpc_library
 
@@ -160,7 +160,7 @@
 | <a id="rust_grpc_library-rust_deps"></a>rust_deps |  The crates the generated library depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_proto_library"></a>
+<a id="rust_proto_library"></a>
 
 ## rust_proto_library
 
@@ -203,7 +203,7 @@
 | <a id="rust_proto_library-rust_deps"></a>rust_deps |  The crates the generated library depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [] |
 
 
-<a id="#rust_proto_toolchain"></a>
+<a id="rust_proto_toolchain"></a>
 
 ## rust_proto_toolchain
 
@@ -252,15 +252,15 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_proto_toolchain-name"></a>name |  A unique name for this target.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_proto_toolchain-edition"></a>edition |  The edition used by the generated rust source.   | String | optional | "2018" |
-| <a id="rust_proto_toolchain-grpc_compile_deps"></a>grpc_compile_deps |  The crates the generated grpc libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/raze:protobuf"), Label("//proto/raze:grpc"), Label("//proto/raze:tls_api"), Label("//proto/raze:tls_api_stub")] |
+| <a id="rust_proto_toolchain-edition"></a>edition |  The edition used by the generated rust source.   | String | optional | "" |
+| <a id="rust_proto_toolchain-grpc_compile_deps"></a>grpc_compile_deps |  The crates the generated grpc libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/3rdparty/crates:protobuf"), Label("//proto/3rdparty/crates:grpc"), Label("//proto/3rdparty/crates:tls-api"), Label("//proto/3rdparty/crates:tls-api-stub")] |
 | <a id="rust_proto_toolchain-grpc_plugin"></a>grpc_plugin |  The location of the Rust protobuf compiler plugin to generate rust gRPC stubs.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //proto:protoc_gen_rust_grpc |
-| <a id="rust_proto_toolchain-proto_compile_deps"></a>proto_compile_deps |  The crates the generated protobuf libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/raze:protobuf")] |
+| <a id="rust_proto_toolchain-proto_compile_deps"></a>proto_compile_deps |  The crates the generated protobuf libraries depends on.   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | optional | [Label("//proto/3rdparty/crates:protobuf")] |
 | <a id="rust_proto_toolchain-proto_plugin"></a>proto_plugin |  The location of the Rust protobuf compiler plugin used to generate rust sources.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //proto:protoc_gen_rust |
 | <a id="rust_proto_toolchain-protoc"></a>protoc |  The location of the <code>protoc</code> binary. It should be an executable target.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | @com_google_protobuf//:protoc |
 
 
-<a id="#rust_proto_repositories"></a>
+<a id="rust_proto_repositories"></a>
 
 ## rust_proto_repositories
 
@@ -278,7 +278,7 @@
 | <a id="rust_proto_repositories-register_default_toolchain"></a>register_default_toolchain |  If True, the default [rust_proto_toolchain](#rust_proto_toolchain) (<code>@rules_rust//proto:default-proto-toolchain</code>) is registered. This toolchain requires a set of dependencies that were generated using [cargo raze](https://github.com/google/cargo-raze). These will also be loaded.   |  <code>True</code> |
 
 
-<a id="#rust_proto_transitive_repositories"></a>
+<a id="rust_proto_transitive_repositories"></a>
 
 ## rust_proto_transitive_repositories
 
diff --git a/third_party/rules_rust/docs/rust_proto.vm b/third_party/rules_rust/docs/rust_proto.vm
index 9067510..b7f08f4 100644
--- a/third_party/rules_rust/docs/rust_proto.vm
+++ b/third_party/rules_rust/docs/rust_proto.vm
@@ -68,7 +68,7 @@
 toolchain(
     name = "proto-toolchain",
     toolchain = ":proto-toolchain-impl",
-    toolchain_type = "@rules_rust//proto:toolchain",
+    toolchain_type = "@rules_rust//proto:toolchain_type",
 )
 ```
 
diff --git a/third_party/rules_rust/docs/rust_repositories.md b/third_party/rules_rust/docs/rust_repositories.md
index 27a6354..0eed309 100644
--- a/third_party/rules_rust/docs/rust_repositories.md
+++ b/third_party/rules_rust/docs/rust_repositories.md
@@ -8,9 +8,10 @@
 * [rust_stdlib_filegroup](#rust_stdlib_filegroup)
 * [rust_toolchain_repository_proxy](#rust_toolchain_repository_proxy)
 * [rust_toolchain_repository](#rust_toolchain_repository)
+* [rust_toolchain_tools_repository](#rust_toolchain_tools_repository)
 * [rust_toolchain](#rust_toolchain)
 
-<a id="#rust_stdlib_filegroup"></a>
+<a id="rust_stdlib_filegroup"></a>
 
 ## rust_stdlib_filegroup
 
@@ -29,15 +30,16 @@
 | <a id="rust_stdlib_filegroup-srcs"></a>srcs |  The list of targets/files that are components of the rust-stdlib file group   | <a href="https://bazel.build/docs/build-ref.html#labels">List of labels</a> | required |  |
 
 
-<a id="#rust_toolchain"></a>
+<a id="rust_toolchain"></a>
 
 ## rust_toolchain
 
 <pre>
 rust_toolchain(<a href="#rust_toolchain-name">name</a>, <a href="#rust_toolchain-allocator_library">allocator_library</a>, <a href="#rust_toolchain-binary_ext">binary_ext</a>, <a href="#rust_toolchain-cargo">cargo</a>, <a href="#rust_toolchain-clippy_driver">clippy_driver</a>, <a href="#rust_toolchain-debug_info">debug_info</a>,
-               <a href="#rust_toolchain-default_edition">default_edition</a>, <a href="#rust_toolchain-dylib_ext">dylib_ext</a>, <a href="#rust_toolchain-exec_triple">exec_triple</a>, <a href="#rust_toolchain-llvm_tools">llvm_tools</a>, <a href="#rust_toolchain-opt_level">opt_level</a>, <a href="#rust_toolchain-os">os</a>, <a href="#rust_toolchain-rust_doc">rust_doc</a>, <a href="#rust_toolchain-rust_lib">rust_lib</a>,
-               <a href="#rust_toolchain-rust_std">rust_std</a>, <a href="#rust_toolchain-rustc">rustc</a>, <a href="#rust_toolchain-rustc_lib">rustc_lib</a>, <a href="#rust_toolchain-rustc_srcs">rustc_srcs</a>, <a href="#rust_toolchain-rustfmt">rustfmt</a>, <a href="#rust_toolchain-staticlib_ext">staticlib_ext</a>, <a href="#rust_toolchain-stdlib_linkflags">stdlib_linkflags</a>,
-               <a href="#rust_toolchain-target_json">target_json</a>, <a href="#rust_toolchain-target_triple">target_triple</a>)
+               <a href="#rust_toolchain-default_edition">default_edition</a>, <a href="#rust_toolchain-dylib_ext">dylib_ext</a>, <a href="#rust_toolchain-env">env</a>, <a href="#rust_toolchain-exec_triple">exec_triple</a>, <a href="#rust_toolchain-experimental_use_cc_common_link">experimental_use_cc_common_link</a>,
+               <a href="#rust_toolchain-llvm_cov">llvm_cov</a>, <a href="#rust_toolchain-llvm_profdata">llvm_profdata</a>, <a href="#rust_toolchain-llvm_tools">llvm_tools</a>, <a href="#rust_toolchain-opt_level">opt_level</a>, <a href="#rust_toolchain-os">os</a>, <a href="#rust_toolchain-rust_doc">rust_doc</a>, <a href="#rust_toolchain-rust_lib">rust_lib</a>, <a href="#rust_toolchain-rust_std">rust_std</a>,
+               <a href="#rust_toolchain-rustc">rustc</a>, <a href="#rust_toolchain-rustc_lib">rustc_lib</a>, <a href="#rust_toolchain-rustc_srcs">rustc_srcs</a>, <a href="#rust_toolchain-rustfmt">rustfmt</a>, <a href="#rust_toolchain-staticlib_ext">staticlib_ext</a>, <a href="#rust_toolchain-stdlib_linkflags">stdlib_linkflags</a>, <a href="#rust_toolchain-target_json">target_json</a>,
+               <a href="#rust_toolchain-target_triple">target_triple</a>)
 </pre>
 
 Declares a Rust toolchain for use.
@@ -92,9 +94,13 @@
 | <a id="rust_toolchain-cargo"></a>cargo |  The location of the <code>cargo</code> binary. Can be a direct source or a filegroup containing one item.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-clippy_driver"></a>clippy_driver |  The location of the <code>clippy-driver</code> binary. Can be a direct source or a filegroup containing one item.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-debug_info"></a>debug_info |  Rustc debug info levels per opt level   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {"dbg": "2", "fastbuild": "0", "opt": "0"} |
-| <a id="rust_toolchain-default_edition"></a>default_edition |  The edition to use for rust_* rules that don't specify an edition.   | String | optional | "2018" |
+| <a id="rust_toolchain-default_edition"></a>default_edition |  The edition to use for rust_* rules that don't specify an edition. If absent, every rule is required to specify its <code>edition</code> attribute.   | String | optional | "" |
 | <a id="rust_toolchain-dylib_ext"></a>dylib_ext |  The extension for dynamic libraries created from rustc.   | String | required |  |
+| <a id="rust_toolchain-env"></a>env |  Environment variables to set in actions.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
 | <a id="rust_toolchain-exec_triple"></a>exec_triple |  The platform triple for the toolchains execution environment. For more details see: https://docs.bazel.build/versions/master/skylark/rules.html#configurations   | String | required |  |
+| <a id="rust_toolchain-experimental_use_cc_common_link"></a>experimental_use_cc_common_link |  Label to a boolean build setting that controls whether cc_common.link is used to link rust binaries.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | //rust/settings:experimental_use_cc_common_link |
+| <a id="rust_toolchain-llvm_cov"></a>llvm_cov |  The location of the <code>llvm-cov</code> binary. Can be a direct source or a filegroup containing one item. If None, rust code is not instrumented for coverage.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
+| <a id="rust_toolchain-llvm_profdata"></a>llvm_profdata |  The location of the <code>llvm-profdata</code> binary. Can be a direct source or a filegroup containing one item. If <code>llvm_cov</code> is None, this can be None as well and rust code is not instrumented for coverage.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-llvm_tools"></a>llvm_tools |  LLVM tools that are shipped with the Rust toolchain.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 | <a id="rust_toolchain-opt_level"></a>opt_level |  Rustc optimization levels.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {"dbg": "0", "fastbuild": "0", "opt": "3"} |
 | <a id="rust_toolchain-os"></a>os |  The operating system for the current toolchain   | String | required |  |
@@ -111,49 +117,13 @@
 | <a id="rust_toolchain-target_triple"></a>target_triple |  The platform triple for the toolchains target environment. For more details see: https://docs.bazel.build/versions/master/skylark/rules.html#configurations   | String | optional | "" |
 
 
-<a id="#rust_toolchain_repository"></a>
-
-## rust_toolchain_repository
-
-<pre>
-rust_toolchain_repository(<a href="#rust_toolchain_repository-name">name</a>, <a href="#rust_toolchain_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_repository-auth">auth</a>, <a href="#rust_toolchain_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_repository-edition">edition</a>, <a href="#rust_toolchain_repository-exec_triple">exec_triple</a>,
-                          <a href="#rust_toolchain_repository-extra_target_triples">extra_target_triples</a>, <a href="#rust_toolchain_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_repository-iso_date">iso_date</a>, <a href="#rust_toolchain_repository-repo_mapping">repo_mapping</a>,
-                          <a href="#rust_toolchain_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_repository-sha256s">sha256s</a>, <a href="#rust_toolchain_repository-toolchain_name_prefix">toolchain_name_prefix</a>, <a href="#rust_toolchain_repository-urls">urls</a>, <a href="#rust_toolchain_repository-version">version</a>)
-</pre>
-
-Composes a single workspace containing the toolchain components for compiling on a given platform to a series of target platforms.
-
-A given instance of this rule should be accompanied by a rust_toolchain_repository_proxy invocation to declare its toolchains to Bazel; the indirection allows separating toolchain selection from toolchain fetching.
-
-**ATTRIBUTES**
-
-
-| Name  | Description | Type | Mandatory | Default |
-| :------------- | :------------- | :------------- | :------------- | :------------- |
-| <a id="rust_toolchain_repository-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_toolchain_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   | String | optional | "" |
-| <a id="rust_toolchain_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
-| <a id="rust_toolchain_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   | Boolean | optional | False |
-| <a id="rust_toolchain_repository-edition"></a>edition |  The rust edition to be used by default.   | String | optional | "2018" |
-| <a id="rust_toolchain_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on   | String | required |  |
-| <a id="rust_toolchain_repository-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that this set of toolchains should support.   | List of strings | optional | [] |
-| <a id="rust_toolchain_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download and unpack the rustc source files. These are very large, and slow to unpack, but are required to support rust analyzer. An environment variable <code>RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS</code> can also be used to control this attribute. This variable will take precedence over the hard coded attribute. Setting it to <code>true</code> to activates this attribute where all other values deactivate it.   | Boolean | optional | False |
-| <a id="rust_toolchain_repository-iso_date"></a>iso_date |  The date of the tool (or None, if the version is a specific version).   | String | optional | "" |
-| <a id="rust_toolchain_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="rust_toolchain_repository-rustfmt_version"></a>rustfmt_version |  The version of the tool among "nightly", "beta", or an exact version.   | String | optional | "" |
-| <a id="rust_toolchain_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
-| <a id="rust_toolchain_repository-toolchain_name_prefix"></a>toolchain_name_prefix |  The per-target prefix expected for the rust_toolchain declarations in the parent workspace.   | String | optional | "" |
-| <a id="rust_toolchain_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   | List of strings | optional | ["https://static.rust-lang.org/dist/{}.tar.gz"] |
-| <a id="rust_toolchain_repository-version"></a>version |  The version of the tool among "nightly", "beta", or an exact version.   | String | required |  |
-
-
-<a id="#rust_toolchain_repository_proxy"></a>
+<a id="rust_toolchain_repository_proxy"></a>
 
 ## rust_toolchain_repository_proxy
 
 <pre>
-rust_toolchain_repository_proxy(<a href="#rust_toolchain_repository_proxy-name">name</a>, <a href="#rust_toolchain_repository_proxy-exec_triple">exec_triple</a>, <a href="#rust_toolchain_repository_proxy-extra_target_triples">extra_target_triples</a>, <a href="#rust_toolchain_repository_proxy-parent_workspace_name">parent_workspace_name</a>,
-                                <a href="#rust_toolchain_repository_proxy-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_repository_proxy-toolchain_name_prefix">toolchain_name_prefix</a>)
+rust_toolchain_repository_proxy(<a href="#rust_toolchain_repository_proxy-name">name</a>, <a href="#rust_toolchain_repository_proxy-exec_compatible_with">exec_compatible_with</a>, <a href="#rust_toolchain_repository_proxy-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_repository_proxy-target_compatible_with">target_compatible_with</a>,
+                                <a href="#rust_toolchain_repository_proxy-toolchain">toolchain</a>, <a href="#rust_toolchain_repository_proxy-toolchain_type">toolchain_type</a>)
 </pre>
 
 Generates a toolchain-bearing repository that declares the toolchains from some other rust_toolchain_repository.
@@ -164,14 +134,106 @@
 | Name  | Description | Type | Mandatory | Default |
 | :------------- | :------------- | :------------- | :------------- | :------------- |
 | <a id="rust_toolchain_repository_proxy-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
-| <a id="rust_toolchain_repository_proxy-exec_triple"></a>exec_triple |  The Rust-style target triple for the compilation platform   | String | required |  |
-| <a id="rust_toolchain_repository_proxy-extra_target_triples"></a>extra_target_triples |  The Rust-style triples for extra compilation targets   | List of strings | optional | [] |
-| <a id="rust_toolchain_repository_proxy-parent_workspace_name"></a>parent_workspace_name |  The name of the other rust_toolchain_repository   | String | required |  |
+| <a id="rust_toolchain_repository_proxy-exec_compatible_with"></a>exec_compatible_with |  A list of constraints for the execution platform for this toolchain.   | List of strings | optional | [] |
 | <a id="rust_toolchain_repository_proxy-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
-| <a id="rust_toolchain_repository_proxy-toolchain_name_prefix"></a>toolchain_name_prefix |  The per-target prefix expected for the rust_toolchain declarations in the parent workspace.   | String | optional | "" |
+| <a id="rust_toolchain_repository_proxy-target_compatible_with"></a>target_compatible_with |  A list of constraints for the target platform for this toolchain.   | List of strings | optional | [] |
+| <a id="rust_toolchain_repository_proxy-toolchain"></a>toolchain |  The name of the toolchain implementation target.   | String | required |  |
+| <a id="rust_toolchain_repository_proxy-toolchain_type"></a>toolchain_type |  The toolchain type of the toolchain to declare   | String | required |  |
 
 
-<a id="#rust_repositories"></a>
+<a id="rust_toolchain_tools_repository"></a>
+
+## rust_toolchain_tools_repository
+
+<pre>
+rust_toolchain_tools_repository(<a href="#rust_toolchain_tools_repository-name">name</a>, <a href="#rust_toolchain_tools_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_tools_repository-auth">auth</a>, <a href="#rust_toolchain_tools_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_tools_repository-edition">edition</a>, <a href="#rust_toolchain_tools_repository-exec_triple">exec_triple</a>,
+                                <a href="#rust_toolchain_tools_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_tools_repository-iso_date">iso_date</a>, <a href="#rust_toolchain_tools_repository-repo_mapping">repo_mapping</a>, <a href="#rust_toolchain_tools_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_tools_repository-sha256s">sha256s</a>,
+                                <a href="#rust_toolchain_tools_repository-target_triple">target_triple</a>, <a href="#rust_toolchain_tools_repository-urls">urls</a>, <a href="#rust_toolchain_tools_repository-version">version</a>)
+</pre>
+
+Composes a single workspace containing the toolchain components for compiling on a given platform to a series of target platforms.
+
+A given instance of this rule should be accompanied by a toolchain_repository_proxy invocation to declare its toolchains to Bazel; the indirection allows separating toolchain selection from toolchain fetching.
+
+**ATTRIBUTES**
+
+
+| Name  | Description | Type | Mandatory | Default |
+| :------------- | :------------- | :------------- | :------------- | :------------- |
+| <a id="rust_toolchain_tools_repository-name"></a>name |  A unique name for this repository.   | <a href="https://bazel.build/docs/build-ref.html#name">Name</a> | required |  |
+| <a id="rust_toolchain_tools_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_toolchain_tools_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   | Boolean | optional | False |
+| <a id="rust_toolchain_tools_repository-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on   | String | required |  |
+| <a id="rust_toolchain_tools_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download and unpack the rustc source files. These are very large, and slow to unpack, but are required to support rust analyzer. An environment variable <code>RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS</code> can also be used to control this attribute. This variable will take precedence over the hard coded attribute. Setting it to <code>true</code> to activates this attribute where all other values deactivate it.   | Boolean | optional | False |
+| <a id="rust_toolchain_tools_repository-iso_date"></a>iso_date |  The date of the tool (or None, if the version is a specific version).   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-repo_mapping"></a>repo_mapping |  A dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.&lt;p&gt;For example, an entry <code>"@foo": "@bar"</code> declares that, for any time this repository depends on <code>@foo</code> (such as a dependency on <code>@foo//some:target</code>, it should actually resolve that dependency within globally-declared <code>@bar</code> (<code>@bar//some:target</code>).   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | required |  |
+| <a id="rust_toolchain_tools_repository-rustfmt_version"></a>rustfmt_version |  The version of the tool among "nightly", "beta", or an exact version.   | String | optional | "" |
+| <a id="rust_toolchain_tools_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   | <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a> | optional | {} |
+| <a id="rust_toolchain_tools_repository-target_triple"></a>target_triple |  The Rust-style target that this compiler builds for   | String | required |  |
+| <a id="rust_toolchain_tools_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   | List of strings | optional | ["https://static.rust-lang.org/dist/{}.tar.gz"] |
+| <a id="rust_toolchain_tools_repository-version"></a>version |  The version of the tool among "nightly", "beta", or an exact version.   | String | required |  |
+
+
+<a id="rules_rust_dependencies"></a>
+
+## rules_rust_dependencies
+
+<pre>
+rules_rust_dependencies()
+</pre>
+
+Dependencies used in the implementation of `rules_rust`.
+
+
+
+<a id="rust_register_toolchains"></a>
+
+## rust_register_toolchains
+
+<pre>
+rust_register_toolchains(<a href="#rust_register_toolchains-dev_components">dev_components</a>, <a href="#rust_register_toolchains-edition">edition</a>, <a href="#rust_register_toolchains-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_register_toolchains-allocator_library">allocator_library</a>, <a href="#rust_register_toolchains-iso_date">iso_date</a>,
+                         <a href="#rust_register_toolchains-register_toolchains">register_toolchains</a>, <a href="#rust_register_toolchains-rustfmt_version">rustfmt_version</a>, <a href="#rust_register_toolchains-sha256s">sha256s</a>, <a href="#rust_register_toolchains-extra_target_triples">extra_target_triples</a>, <a href="#rust_register_toolchains-urls">urls</a>,
+                         <a href="#rust_register_toolchains-version">version</a>)
+</pre>
+
+Emits a default set of toolchains for Linux, MacOS, and Freebsd
+
+Skip this macro and call the `rust_repository_set` macros directly if you need a compiler for     other hosts or for additional target triples.
+
+The `sha256` attribute represents a dict associating tool subdirectories to sha256 hashes. As an example:
+```python
+{
+    "rust-1.46.0-x86_64-unknown-linux-gnu": "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5",
+    "rustfmt-1.4.12-x86_64-unknown-linux-gnu": "1894e76913303d66bf40885a601462844eec15fca9e76a6d13c390d7000d64b0",
+    "rust-std-1.46.0-x86_64-unknown-linux-gnu": "ac04aef80423f612c0079829b504902de27a6997214eb58ab0765d02f7ec1dbc",
+}
+```
+This would match for `exec_triple = "x86_64-unknown-linux-gnu"`.  If not specified, rules_rust pulls from a non-exhaustive     list of known checksums..
+
+See `load_arbitrary_tool` in `@rules_rust//rust:repositories.bzl` for more details.
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_register_toolchains-dev_components"></a>dev_components |  Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".   |  <code>False</code> |
+| <a id="rust_register_toolchains-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every target is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
+| <a id="rust_register_toolchains-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download rustc's src code. This is required in order to use rust-analyzer support. See [rust_toolchain_repository.include_rustc_srcs](#rust_toolchain_repository-include_rustc_srcs). for more details   |  <code>False</code> |
+| <a id="rust_register_toolchains-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   |  <code>None</code> |
+| <a id="rust_register_toolchains-iso_date"></a>iso_date |  The date of the nightly or beta release (ignored if the version is a specific version).   |  <code>None</code> |
+| <a id="rust_register_toolchains-register_toolchains"></a>register_toolchains |  If true, repositories will be generated to produce and register <code>rust_toolchain</code> targets.   |  <code>True</code> |
+| <a id="rust_register_toolchains-rustfmt_version"></a>rustfmt_version |  The version of rustfmt. Either "nightly", "beta", or an exact version. Defaults to <code>version</code> if not specified.   |  <code>None</code> |
+| <a id="rust_register_toolchains-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes.   |  <code>None</code> |
+| <a id="rust_register_toolchains-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that rust toolchains should support.   |  <code>["wasm32-unknown-unknown", "wasm32-wasi"]</code> |
+| <a id="rust_register_toolchains-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
+| <a id="rust_register_toolchains-version"></a>version |  The version of Rust. Either "nightly", "beta", or an exact version. Defaults to a modern version.   |  <code>"1.62.1"</code> |
+
+
+<a id="rust_repositories"></a>
 
 ## rust_repositories
 
@@ -189,7 +251,7 @@
 | <a id="rust_repositories-kwargs"></a>kwargs |  Keyword arguments for the <code>rust_register_toolchains</code> macro.   |  none |
 
 
-<a id="#rust_repository_set"></a>
+<a id="rust_repository_set"></a>
 
 ## rust_repository_set
 
@@ -217,7 +279,7 @@
 | <a id="rust_repository_set-extra_target_triples"></a>extra_target_triples |  Additional rust-style targets that this set of toolchains should support. Defaults to [].   |  <code>[]</code> |
 | <a id="rust_repository_set-iso_date"></a>iso_date |  The date of the tool. Defaults to None.   |  <code>None</code> |
 | <a id="rust_repository_set-rustfmt_version"></a>rustfmt_version |  The version of rustfmt to be associated with the toolchain. Defaults to None.   |  <code>None</code> |
-| <a id="rust_repository_set-edition"></a>edition |  The rust edition to be used by default (2015, 2018 (if None), or 2021).   |  <code>None</code> |
+| <a id="rust_repository_set-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
 | <a id="rust_repository_set-dev_components"></a>dev_components |  Whether to download the rustc-dev components. Requires version to be "nightly". Defaults to False.   |  <code>False</code> |
 | <a id="rust_repository_set-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   |  <code>None</code> |
 | <a id="rust_repository_set-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
@@ -225,3 +287,44 @@
 | <a id="rust_repository_set-register_toolchain"></a>register_toolchain |  If True, the generated <code>rust_toolchain</code> target will become a registered toolchain.   |  <code>True</code> |
 
 
+<a id="rust_toolchain_repository"></a>
+
+## rust_toolchain_repository
+
+<pre>
+rust_toolchain_repository(<a href="#rust_toolchain_repository-name">name</a>, <a href="#rust_toolchain_repository-version">version</a>, <a href="#rust_toolchain_repository-exec_triple">exec_triple</a>, <a href="#rust_toolchain_repository-target_triple">target_triple</a>, <a href="#rust_toolchain_repository-exec_compatible_with">exec_compatible_with</a>,
+                          <a href="#rust_toolchain_repository-target_compatible_with">target_compatible_with</a>, <a href="#rust_toolchain_repository-include_rustc_srcs">include_rustc_srcs</a>, <a href="#rust_toolchain_repository-allocator_library">allocator_library</a>, <a href="#rust_toolchain_repository-iso_date">iso_date</a>,
+                          <a href="#rust_toolchain_repository-rustfmt_version">rustfmt_version</a>, <a href="#rust_toolchain_repository-edition">edition</a>, <a href="#rust_toolchain_repository-dev_components">dev_components</a>, <a href="#rust_toolchain_repository-sha256s">sha256s</a>, <a href="#rust_toolchain_repository-urls">urls</a>, <a href="#rust_toolchain_repository-auth">auth</a>)
+</pre>
+
+Assembles a remote repository for the given toolchain params, produces a proxy repository     to contain the toolchain declaration, and registers the toolchains.
+
+N.B. A "proxy repository" is needed to allow for registering the toolchain (with constraints)     without actually downloading the toolchain.
+
+
+**PARAMETERS**
+
+
+| Name  | Description | Default Value |
+| :------------- | :------------- | :------------- |
+| <a id="rust_toolchain_repository-name"></a>name |  The name of the generated repository   |  none |
+| <a id="rust_toolchain_repository-version"></a>version |  The version of the tool among "nightly", "beta', or an exact version.   |  none |
+| <a id="rust_toolchain_repository-exec_triple"></a>exec_triple |  The Rust-style target that this compiler runs on.   |  none |
+| <a id="rust_toolchain_repository-target_triple"></a>target_triple |  The Rust-style target to build for.   |  none |
+| <a id="rust_toolchain_repository-exec_compatible_with"></a>exec_compatible_with |  A list of constraints for the execution platform for this toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-target_compatible_with"></a>target_compatible_with |  A list of constraints for the target platform for this toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-include_rustc_srcs"></a>include_rustc_srcs |  Whether to download rustc's src code. This is required in order to use rust-analyzer support.   |  <code>False</code> |
+| <a id="rust_toolchain_repository-allocator_library"></a>allocator_library |  Target that provides allocator functions when rust_library targets are embedded in a cc_binary.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-iso_date"></a>iso_date |  The date of the tool.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-rustfmt_version"></a>rustfmt_version |  The version of rustfmt to be associated with the toolchain.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-edition"></a>edition |  The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its <code>edition</code> attribute.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-dev_components"></a>dev_components |  Whether to download the rustc-dev components. Requires version to be "nightly". Defaults to False.   |  <code>False</code> |
+| <a id="rust_toolchain_repository-sha256s"></a>sha256s |  A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.   |  <code>None</code> |
+| <a id="rust_toolchain_repository-urls"></a>urls |  A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']   |  <code>["https://static.rust-lang.org/dist/{}.tar.gz"]</code> |
+| <a id="rust_toolchain_repository-auth"></a>auth |  Auth object compatible with repository_ctx.download to use when downloading files. See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.   |  <code>None</code> |
+
+**RETURNS**
+
+str: The name of the registerable toolchain created by this rule.
+
+
diff --git a/third_party/rules_rust/docs/rust_wasm_bindgen.md b/third_party/rules_rust/docs/rust_wasm_bindgen.md
index be7dcf0..9af8ad3 100644
--- a/third_party/rules_rust/docs/rust_wasm_bindgen.md
+++ b/third_party/rules_rust/docs/rust_wasm_bindgen.md
@@ -1,7 +1,8 @@
 <!-- Generated with Stardoc: http://skydoc.bazel.build -->
 # Rust Wasm Bindgen
 
-* [rust_wasm_bindgen_repositories](#rust_wasm_bindgen_repositories)
+* [rust_wasm_bindgen_dependencies](#rust_wasm_bindgen_dependencies)
+* [rust_wasm_bindgen_register_toolchains](#rust_wasm_bindgen_register_toolchains)
 * [rust_wasm_bindgen_toolchain](#rust_wasm_bindgen_toolchain)
 * [rust_wasm_bindgen](#rust_wasm_bindgen)
 
@@ -24,7 +25,7 @@
 building WebAssembly code for the host target.
 
 
-<a id="#rust_wasm_bindgen"></a>
+<a id="rust_wasm_bindgen"></a>
 
 ## rust_wasm_bindgen
 
@@ -61,7 +62,7 @@
 | <a id="rust_wasm_bindgen-wasm_file"></a>wasm_file |  The <code>.wasm</code> file or crate to generate bindings for.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | required |  |
 
 
-<a id="#rust_wasm_bindgen_toolchain"></a>
+<a id="rust_wasm_bindgen_toolchain"></a>
 
 ## rust_wasm_bindgen_toolchain
 
@@ -84,7 +85,7 @@
 toolchain(
     name = "wasm_bindgen_toolchain",
     toolchain = "wasm_bindgen_toolchain_impl",
-    toolchain_type = "@rules_rust//wasm_bindgen:wasm_bindgen_toolchain",
+    toolchain_type = "@rules_rust//wasm_bindgen:toolchain_type",
 )
 ```
 
@@ -109,21 +110,38 @@
 | <a id="rust_wasm_bindgen_toolchain-bindgen"></a>bindgen |  The label of a <code>wasm-bindgen-cli</code> executable.   | <a href="https://bazel.build/docs/build-ref.html#labels">Label</a> | optional | None |
 
 
-<a id="#rust_wasm_bindgen_repositories"></a>
+<a id="rust_wasm_bindgen_dependencies"></a>
 
-## rust_wasm_bindgen_repositories
+## rust_wasm_bindgen_dependencies
 
 <pre>
-rust_wasm_bindgen_repositories(<a href="#rust_wasm_bindgen_repositories-register_default_toolchain">register_default_toolchain</a>)
+rust_wasm_bindgen_dependencies()
 </pre>
 
-Declare dependencies needed for [rust_wasm_bindgen](#rust_wasm_bindgen).
+Declare dependencies needed for the `rules_rust` [wasm-bindgen][wb] rules.
+
+[wb]: https://github.com/rustwasm/wasm-bindgen
+
+
+
+<a id="rust_wasm_bindgen_register_toolchains"></a>
+
+## rust_wasm_bindgen_register_toolchains
+
+<pre>
+rust_wasm_bindgen_register_toolchains(<a href="#rust_wasm_bindgen_register_toolchains-register_toolchains">register_toolchains</a>)
+</pre>
+
+Registers the default toolchains for the `rules_rust` [wasm-bindgen][wb] rules.
+
+[wb]: https://github.com/rustwasm/wasm-bindgen
+
 
 **PARAMETERS**
 
 
 | Name  | Description | Default Value |
 | :------------- | :------------- | :------------- |
-| <a id="rust_wasm_bindgen_repositories-register_default_toolchain"></a>register_default_toolchain |  If True, the default [rust_wasm_bindgen_toolchain](#rust_wasm_bindgen_toolchain) (<code>@rules_rust//wasm_bindgen:default_wasm_bindgen_toolchain</code>) is registered. This toolchain requires a set of dependencies that were generated using [cargo raze](https://github.com/google/cargo-raze). These will also be loaded.   |  <code>True</code> |
+| <a id="rust_wasm_bindgen_register_toolchains-register_toolchains"></a>register_toolchains |  Whether or not to register toolchains.   |  <code>True</code> |
 
 
diff --git a/third_party/rules_rust/docs/settings.md b/third_party/rules_rust/docs/settings.md
index 4605272..0a1339c 100644
--- a/third_party/rules_rust/docs/settings.md
+++ b/third_party/rules_rust/docs/settings.md
@@ -4,7 +4,7 @@
 * [incompatible_flag](#incompatible_flag)
 * [fail_when_enabled](#fail_when_enabled)
 
-<a id="#incompatible_flag"></a>
+<a id="incompatible_flag"></a>
 
 ## incompatible_flag
 
diff --git a/third_party/rules_rust/docs/symbols.bzl b/third_party/rules_rust/docs/symbols.bzl
index 4427845..42e2f20 100644
--- a/third_party/rules_rust/docs/symbols.bzl
+++ b/third_party/rules_rust/docs/symbols.bzl
@@ -10,6 +10,8 @@
 )
 load(
     "@rules_rust//bindgen:repositories.bzl",
+    _rust_bindgen_dependencies = "rust_bindgen_dependencies",
+    _rust_bindgen_register_toolchains = "rust_bindgen_register_toolchains",
     _rust_bindgen_repositories = "rust_bindgen_repositories",
 )
 load(
@@ -19,8 +21,9 @@
     _cargo_env = "cargo_env",
 )
 load(
-    "@rules_rust//crate_universe:defs.bzl",
+    "@rules_rust//crate_universe:docs.bzl",
     _crate = "crate",
+    _crate_universe_dependencies = "crate_universe_dependencies",
     _crates_repository = "crates_repository",
     _crates_vendor = "crates_vendor",
 )
@@ -45,8 +48,8 @@
     "@rules_rust//rust:defs.bzl",
     _capture_clippy_output = "capture_clippy_output",
     _error_format = "error_format",
+    _extra_rustc_flag = "extra_rustc_flag",
     _extra_rustc_flags = "extra_rustc_flags",
-    _rust_analyzer = "rust_analyzer",
     _rust_analyzer_aspect = "rust_analyzer_aspect",
     _rust_binary = "rust_binary",
     _rust_clippy = "rust_clippy",
@@ -64,13 +67,17 @@
 )
 load(
     "@rules_rust//rust:repositories.bzl",
+    _rules_rust_dependencies = "rules_rust_dependencies",
+    _rust_register_toolchains = "rust_register_toolchains",
     _rust_repositories = "rust_repositories",
     _rust_repository_set = "rust_repository_set",
     _rust_toolchain_repository = "rust_toolchain_repository",
     _rust_toolchain_repository_proxy = "rust_toolchain_repository_proxy",
+    _rust_toolchain_tools_repository = "rust_toolchain_tools_repository",
 )
 load(
     "@rules_rust//rust:toolchain.bzl",
+    _rust_analyzer_toolchain = "rust_analyzer_toolchain",
     _rust_stdlib_filegroup = "rust_stdlib_filegroup",
     _rust_toolchain = "rust_toolchain",
 )
@@ -88,7 +95,8 @@
 )
 load(
     "@rules_rust//wasm_bindgen:repositories.bzl",
-    _rust_wasm_bindgen_repositories = "rust_wasm_bindgen_repositories",
+    _rust_wasm_bindgen_dependencies = "rust_wasm_bindgen_dependencies",
+    _rust_wasm_bindgen_register_toolchains = "rust_wasm_bindgen_register_toolchains",
 )
 load(
     "@rules_rust//wasm_bindgen:wasm_bindgen.bzl",
@@ -109,10 +117,12 @@
 rust_proto_library = _rust_proto_library
 rust_grpc_library = _rust_grpc_library
 
-rust_bindgen_toolchain = _rust_bindgen_toolchain
 rust_bindgen = _rust_bindgen
+rust_bindgen_dependencies = _rust_bindgen_dependencies
 rust_bindgen_library = _rust_bindgen_library
+rust_bindgen_register_toolchains = _rust_bindgen_register_toolchains
 rust_bindgen_repositories = _rust_bindgen_repositories
+rust_bindgen_toolchain = _rust_bindgen_toolchain
 
 rust_toolchain = _rust_toolchain
 rust_proto_toolchain = _rust_proto_toolchain
@@ -125,27 +135,33 @@
 cargo_env = _cargo_env
 
 rust_wasm_bindgen = _rust_wasm_bindgen
+rust_wasm_bindgen_dependencies = _rust_wasm_bindgen_dependencies
+rust_wasm_bindgen_register_toolchains = _rust_wasm_bindgen_register_toolchains
 rust_wasm_bindgen_toolchain = _rust_wasm_bindgen_toolchain
-rust_wasm_bindgen_repositories = _rust_wasm_bindgen_repositories
 
+rules_rust_dependencies = _rules_rust_dependencies
+rust_register_toolchains = _rust_register_toolchains
 rust_repositories = _rust_repositories
 rust_repository_set = _rust_repository_set
 rust_toolchain_repository = _rust_toolchain_repository
 rust_toolchain_repository_proxy = _rust_toolchain_repository_proxy
+rust_toolchain_tools_repository = _rust_toolchain_tools_repository
 
 rust_clippy = _rust_clippy
 rust_clippy_aspect = _rust_clippy_aspect
-rust_analyzer = _rust_analyzer
 rust_analyzer_aspect = _rust_analyzer_aspect
+rust_analyzer_toolchain = _rust_analyzer_toolchain
 
 crate = _crate
 crates_repository = _crates_repository
 crates_vendor = _crates_vendor
+crate_universe_dependencies = _crate_universe_dependencies
 
 rustfmt_aspect = _rustfmt_aspect
 rustfmt_test = _rustfmt_test
 
 error_format = _error_format
+extra_rustc_flag = _extra_rustc_flag
 extra_rustc_flags = _extra_rustc_flags
 incompatible_flag = _incompatible_flag
 capture_clippy_output = _capture_clippy_output
diff --git a/third_party/rules_rust/examples/WORKSPACE.bazel b/third_party/rules_rust/examples/WORKSPACE.bazel
index 47dec43..a9ca080 100644
--- a/third_party/rules_rust/examples/WORKSPACE.bazel
+++ b/third_party/rules_rust/examples/WORKSPACE.bazel
@@ -12,11 +12,23 @@
 
 rules_rust_dependencies()
 
-rust_register_toolchains(include_rustc_srcs = True)
+rust_register_toolchains(
+    edition = "2018",
+)
 
-load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_repositories")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
 
-rust_bindgen_repositories()
+crate_universe_dependencies(bootstrap = True)
+
+load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_dependencies")
+
+rust_analyzer_dependencies()
+
+load("@rules_rust//bindgen:repositories.bzl", "rust_bindgen_dependencies", "rust_bindgen_register_toolchains")
+
+rust_bindgen_dependencies()
+
+rust_bindgen_register_toolchains()
 
 load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
 
@@ -26,9 +38,11 @@
 
 rust_proto_transitive_repositories()
 
-load("@rules_rust//wasm_bindgen:repositories.bzl", "rust_wasm_bindgen_repositories")
+load("@rules_rust//wasm_bindgen:repositories.bzl", "rust_wasm_bindgen_dependencies", "rust_wasm_bindgen_register_toolchains")
 
-rust_wasm_bindgen_repositories()
+rust_wasm_bindgen_dependencies()
+
+rust_wasm_bindgen_register_toolchains()
 
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
@@ -60,6 +74,12 @@
 # Examples dependencies
 ###############################################################################
 
+http_archive(
+    name = "build_bazel_rules_nodejs",
+    sha256 = "c78216f5be5d451a42275b0b7dc809fb9347e2b04a68f68bad620a2b01f5c774",
+    urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.2/rules_nodejs-5.5.2.tar.gz"],
+)
+
 load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
 
 node_repositories()
@@ -91,6 +111,13 @@
     name = "libc",
     srcs = glob(["src/**/*.rs"]),
     edition = "2015",
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
     visibility = ["//visibility:public"],
 )
 """
diff --git a/third_party/rules_rust/examples/ambiguous_deps/cc_library_with_func.cc b/third_party/rules_rust/examples/ambiguous_deps/cc_library_with_func.cc
index 536fa93..1f12151 100644
--- a/third_party/rules_rust/examples/ambiguous_deps/cc_library_with_func.cc
+++ b/third_party/rules_rust/examples/ambiguous_deps/cc_library_with_func.cc
@@ -1,3 +1 @@
-extern "C" int func() {
-  return 123;
-}
+extern "C" int func() { return 123; }
diff --git a/third_party/rules_rust/examples/cargo_manifest_dir/external_crate/WORKSPACE.bazel b/third_party/rules_rust/examples/cargo_manifest_dir/external_crate/WORKSPACE.bazel
index 38395cc..82b00c3 100644
--- a/third_party/rules_rust/examples/cargo_manifest_dir/external_crate/WORKSPACE.bazel
+++ b/third_party/rules_rust/examples/cargo_manifest_dir/external_crate/WORKSPACE.bazel
@@ -7,4 +7,4 @@
 
 load("@rules_rust//rust:repositories.bzl", "rust_repositories")
 
-rust_repositories()
+rust_repositories(edition = "2018")
diff --git a/third_party/rules_rust/examples/crate_universe/.gitignore b/third_party/rules_rust/examples/crate_universe/.gitignore
deleted file mode 100644
index ac51a05..0000000
--- a/third_party/rules_rust/examples/crate_universe/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-bazel-*
diff --git a/third_party/rules_rust/examples/crate_universe/DEVELOPMENT.md b/third_party/rules_rust/examples/crate_universe/DEVELOPMENT.md
new file mode 100644
index 0000000..f39ee31
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/DEVELOPMENT.md
@@ -0,0 +1,26 @@
+# Developing crate_universe examples
+
+## Bootstrapping
+
+Crate Universe examples require a bootstrapping process the first time
+`rules_rust` is checked out. To setup the examples, run the following
+bazel commands:
+
+```shell
+bazel run //vendor_external:crates_vendor
+bazel run //vendor_local_manifests:crates_vendor
+bazel run //vendor_local_pkgs:crates_vendor
+bazel run //vendor_remote_manifests:crates_vendor_manifests
+bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+```
+
+## Repinning/Updating Dependencies
+
+After bootstrapping, Bazel lockfiles can be regenerated by running the following:
+
+```shell
+CARGO_BAZEL_REPIN=1 bazel test //...
+```
+
+For more information on repinning, see: https://bazelbuild.github.io/rules_rust/crate_universe.html#repinning--updating-dependencies
+
diff --git a/third_party/rules_rust/examples/crate_universe/WORKSPACE.bazel b/third_party/rules_rust/examples/crate_universe/WORKSPACE.bazel
index 40b4b08..c0c6371 100644
--- a/third_party/rules_rust/examples/crate_universe/WORKSPACE.bazel
+++ b/third_party/rules_rust/examples/crate_universe/WORKSPACE.bazel
@@ -9,15 +9,13 @@
 
 rules_rust_dependencies()
 
-rust_register_toolchains(include_rustc_srcs = True)
+rust_register_toolchains(
+    edition = "2018",
+)
 
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
 
-crate_deps_repository()
-
-load("@rules_rust//crate_universe:crates_deps.bzl", "crate_repositories")
-
-crate_repositories()
+crate_universe_dependencies(bootstrap = True)
 
 load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository", "splicing_config")
 
@@ -33,10 +31,11 @@
             version = "0.12.1-dev",
         )],
     },
+    cargo_lockfile = "//cargo_aliases:Cargo.Bazel.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//cargo_aliases:Cargo.Bazel.lock",
+    lockfile = "//cargo_aliases:cargo-bazel-lock.json",
     manifests = ["//cargo_aliases:Cargo.toml"],
 )
 
@@ -53,11 +52,10 @@
 
 crates_repository(
     name = "crate_index_cargo_local",
+    cargo_lockfile = "//cargo_local:Cargo.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//cargo_local:Cargo.lock",
-    lockfile_kind = "cargo",
     manifests = ["//cargo_local:Cargo.toml"],
 )
 
@@ -84,11 +82,10 @@
 
 crates_repository(
     name = "crate_index_cargo_remote",
+    cargo_lockfile = "@names//:Cargo.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "@names//:Cargo.lock",
-    lockfile_kind = "cargo",
     manifests = ["@names//:Cargo.toml"],
 )
 
@@ -105,10 +102,12 @@
 
 crates_repository(
     name = "crate_index_cargo_workspace",
+    cargo_config = "//cargo_workspace:.cargo/config.toml",
+    cargo_lockfile = "//cargo_workspace:Cargo.Bazel.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//cargo_workspace:Cargo.Bazel.lock",
+    lockfile = "//cargo_workspace:cargo-bazel-lock.json",
     manifests = [
         "//cargo_workspace:Cargo.toml",
         "//cargo_workspace/num_printer:Cargo.toml",
@@ -125,32 +124,6 @@
 cargo_workspace_crate_repositories()
 
 ###############################################################################
-# E X T R A   W O R K S P A C E   M E M B E R S
-###############################################################################
-
-crates_repository(
-    name = "crate_index_extra_members",
-    extra_workspace_members = {
-        "texture-synthesis-cli": crate.workspace_member(
-            sha256 = "a7dbdf13f5e6f214750fce1073279b71ce3076157a8d337c9b0f0e14334e2aec",
-            version = "0.8.2",
-        ),
-    },
-    # `generator` is not necessary in official releases.
-    # See load satement for `cargo_bazel_bootstrap`.
-    generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//extra_workspace_members:Cargo.Bazel.lock",
-    manifests = ["//extra_workspace_members:Cargo.toml"],
-)
-
-load(
-    "@crate_index_extra_members//:defs.bzl",
-    extra_workspace_members_crate_repositories = "crate_repositories",
-)
-
-extra_workspace_members_crate_repositories()
-
-###############################################################################
 # M U L T I   P A C K A G E
 ###############################################################################
 
@@ -190,10 +163,11 @@
             build_script_data_glob = ["vendor/**"],
         )],
     },
+    cargo_lockfile = "//multi_package:Cargo.Bazel.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//multi_package:Cargo.Bazel.lock",
+    lockfile = "//multi_package:cargo-bazel-lock.json",
     manifests = [
         "//multi_package/pkg_a:Cargo.toml",
         "//multi_package/sub_pkgs/pkg_b:Cargo.toml",
@@ -228,10 +202,10 @@
 # perl is used to build openssl
 http_archive(
     name = "rules_perl",
-    sha256 = "55fbe071971772758ad669615fc9aac9b126db6ae45909f0f36de499f6201dd3",
-    strip_prefix = "rules_perl-2f4f36f454375e678e81e5ca465d4d497c5c02da",
+    sha256 = "0c0cc01b158321c3c84af49409393c14b66070249d0affb78a88ca594b2aa9c2",
+    strip_prefix = "rules_perl-43d2db0aafe595fe0ac61b808c9c13ea9769ce03",
     urls = [
-        "https://github.com/bazelbuild/rules_perl/archive/2f4f36f454375e678e81e5ca465d4d497c5c02da.tar.gz",
+        "https://github.com/bazelbuild/rules_perl/archive/43d2db0aafe595fe0ac61b808c9c13ea9769ce03.tar.gz",
     ],
 )
 
@@ -252,10 +226,11 @@
             compile_data_glob = ["**/*.md"],
         )],
     },
+    cargo_lockfile = "//no_cargo_manifests:Cargo.Bazel.lock",
     # `generator` is not necessary in official releases.
     # See load satement for `cargo_bazel_bootstrap`.
     generator = "@cargo_bazel_bootstrap//:cargo-bazel",
-    lockfile = "//no_cargo_manifests:Cargo.Bazel.lock",
+    lockfile = "//no_cargo_manifests:cargo-bazel-lock.json",
     packages = {
         "axum": crate.spec(
             version = "0.4.0",
@@ -302,6 +277,25 @@
 no_cargo_crate_repositories()
 
 ###############################################################################
+# V E N D O R   E X T E R N A L
+###############################################################################
+
+http_archive(
+    name = "names_external",
+    build_file = "//cargo_remote:BUILD.names.bazel",
+    sha256 = "eab40caca5805624ba31d028913931c3d054b22daafff6f43e3435cfa9fb761e",
+    strip_prefix = "names-0.13.0",
+    urls = ["https://github.com/fnichol/names/archive/refs/tags/v0.13.0.zip"],
+)
+
+load(
+    "//vendor_external/crates:crates.bzl",
+    crates_vendor_external_repositories = "crate_repositories",
+)
+
+crates_vendor_external_repositories()
+
+###############################################################################
 # V E N D O R   R E M O T E   M A N I F E S T S
 ###############################################################################
 
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock b/third_party/rules_rust/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
index 596b054..ed8b08d 100644
--- a/third_party/rules_rust/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
+++ b/third_party/rules_rust/examples/crate_universe/cargo_aliases/Cargo.Bazel.lock
@@ -1,2535 +1,410 @@
-{
-  "checksum": "ba701df4681897610cd747b83f18fcb46468e975284b0ed0b596bcfaefe2a881",
-  "crates": {
-    "aho-corasick 0.7.18": {
-      "name": "aho-corasick",
-      "version": "0.7.18",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-          "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "aho_corasick",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "aho_corasick",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.18"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "aliases 0.1.0": {
-      "name": "aliases",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "aliases",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "aliases",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.3.9",
-              "target": "log",
-              "alias": "pinned_log"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "names 0.12.1-dev",
-              "target": "names",
-              "alias": "pinned_names"
-            },
-            {
-              "id": "names 0.13.0",
-              "target": "names"
-            },
-            {
-              "id": "value-bag 1.0.0-alpha.7",
-              "target": "value_bag"
-            }
-          ],
-          "selects": {}
-        },
-        "deps_dev": {
-          "common": [
-            {
-              "id": "env_logger 0.9.0",
-              "target": "env_logger"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "atty 0.2.14": {
-      "name": "atty",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
-          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atty",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atty",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"hermit\")": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "license": "MIT"
-    },
-    "autocfg 1.1.0": {
-      "name": "autocfg",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
-          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "autocfg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "autocfg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "clap 3.1.6": {
-      "name": "clap",
-      "version": "3.1.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap/3.1.6/download",
-          "sha256": "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "clap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "atty",
-          "clap_derive",
-          "color",
-          "default",
-          "derive",
-          "lazy_static",
-          "std",
-          "strsim",
-          "suggestions",
-          "termcolor"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "indexmap"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "os_str_bytes 6.0.0",
-              "target": "os_str_bytes"
-            },
-            {
-              "id": "strsim 0.10.0",
-              "target": "strsim"
-            },
-            {
-              "id": "termcolor 1.1.3",
-              "target": "termcolor"
-            },
-            {
-              "id": "textwrap 0.15.0",
-              "target": "textwrap"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "clap_derive 3.1.4",
-              "target": "clap_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "3.1.6"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "clap_derive 3.1.4": {
-      "name": "clap_derive",
-      "version": "3.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap_derive/3.1.4/download",
-          "sha256": "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "clap_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "heck 0.4.0",
-              "target": "heck"
-            },
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "proc_macro_error"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "3.1.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "ctor 0.1.21": {
-      "name": "ctor",
-      "version": "0.1.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ctor/0.1.21/download",
-          "sha256": "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "ctor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ctor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.21"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "env_logger 0.9.0": {
-      "name": "env_logger",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/env_logger/0.9.0/download",
-          "sha256": "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "env_logger",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "env_logger",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "atty",
-          "default",
-          "humantime",
-          "regex",
-          "termcolor"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "humantime 2.1.0",
-              "target": "humantime"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "termcolor 1.1.3",
-              "target": "termcolor"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "getrandom 0.2.5": {
-      "name": "getrandom",
-      "version": "0.2.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/getrandom/0.2.5/download",
-          "sha256": "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "getrandom",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "getrandom",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"wasi\")": [
-              {
-                "id": "wasi 0.10.2+wasi-snapshot-preview1",
-                "target": "wasi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.2.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "hashbrown 0.11.2": {
-      "name": "hashbrown",
-      "version": "0.11.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hashbrown/0.11.2/download",
-          "sha256": "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hashbrown",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hashbrown",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "raw"
-        ],
-        "edition": "2018",
-        "version": "0.11.2"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "heck 0.4.0": {
-      "name": "heck",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/heck/0.4.0/download",
-          "sha256": "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "heck",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "heck",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "0.4.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "humantime 2.1.0": {
-      "name": "humantime",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/humantime/2.1.0/download",
-          "sha256": "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "humantime",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "humantime",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "2.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "indexmap 1.8.0": {
-      "name": "indexmap",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/indexmap/1.8.0/download",
-          "sha256": "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "indexmap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "indexmap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "hashbrown 0.11.2",
-              "target": "hashbrown"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "lazy_static 1.4.0": {
-      "name": "lazy_static",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lazy_static",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lazy_static",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "log 0.3.9": {
-      "name": "log",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/log/0.3.9/download",
-          "sha256": "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "use_std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "log 0.4.14": {
-      "name": "log",
-      "version": "0.4.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/log/0.4.14/download",
-          "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "memchr 2.4.1": {
-      "name": "memchr",
-      "version": "2.4.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-          "sha256": "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "memchr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "memchr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.4.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Unlicense/MIT"
-    },
-    "names 0.12.1-dev": {
-      "name": "names",
-      "version": "0.12.1-dev",
-      "repository": {
-        "Git": {
-          "remote": "https://github.com/fnichol/names.git",
-          "commitish": {
-            "Rev": "760516503b89ddc8bc2ab42d579d4566cfb1054f"
-          },
-          "shallow_since": "1646516410 -0700"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "names",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "names",
-            "crate_root": "src/bin/names.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "names",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "application",
-          "clap",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 3.1.6",
-              "target": "clap"
-            },
-            {
-              "id": "names 0.12.1-dev",
-              "target": "build_script_build"
-            },
-            {
-              "id": "rand 0.8.5",
-              "target": "rand"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.12.1-dev"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT"
-    },
-    "names 0.13.0": {
-      "name": "names",
-      "version": "0.13.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/names/0.13.0/download",
-          "sha256": "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "names",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "names",
-            "crate_root": "src/bin/names.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "names",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "application",
-          "clap",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 3.1.6",
-              "target": "clap"
-            },
-            {
-              "id": "names 0.13.0",
-              "target": "build_script_build"
-            },
-            {
-              "id": "rand 0.8.5",
-              "target": "rand"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.13.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT"
-    },
-    "os_str_bytes 6.0.0": {
-      "name": "os_str_bytes",
-      "version": "6.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/os_str_bytes/6.0.0/download",
-          "sha256": "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "os_str_bytes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "os_str_bytes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "memchr",
-          "raw_os_str"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "6.0.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "ppv-lite86 0.2.16": {
-      "name": "ppv-lite86",
-      "version": "0.2.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download",
-          "sha256": "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ppv_lite86",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ppv_lite86",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "simd",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.2.16"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "proc-macro-error 1.0.4": {
-      "name": "proc-macro-error",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
-          "sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro_error",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "syn",
-          "syn-error"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "proc_macro_error_attr"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro-error-attr 1.0.4": {
-      "name": "proc-macro-error-attr",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
-          "sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "proc_macro_error_attr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error_attr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro2 1.0.36": {
-      "name": "proc-macro2",
-      "version": "1.0.36",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.36/download",
-          "sha256": "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.36"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "quote 1.0.15": {
-      "name": "quote",
-      "version": "1.0.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.15/download",
-          "sha256": "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "quote",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "quote",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.15"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand 0.8.5": {
-      "name": "rand",
-      "version": "0.8.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand/0.8.5/download",
-          "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "getrandom",
-          "libc",
-          "rand_chacha",
-          "std",
-          "std_rng"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_chacha 0.3.1",
-              "target": "rand_chacha"
-            },
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_chacha 0.3.1": {
-      "name": "rand_chacha",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_chacha/0.3.1/download",
-          "sha256": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_chacha",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_chacha",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ppv-lite86 0.2.16",
-              "target": "ppv_lite86"
-            },
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_core 0.6.3": {
-      "name": "rand_core",
-      "version": "0.6.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
-          "sha256": "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "getrandom",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "getrandom 0.2.5",
-              "target": "getrandom"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.6.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex 1.5.4": {
-      "name": "regex",
-      "version": "1.5.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex/1.5.4/download",
-          "sha256": "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "aho-corasick",
-          "memchr",
-          "perf",
-          "perf-cache",
-          "perf-dfa",
-          "perf-inline",
-          "perf-literal",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "aho-corasick 0.7.18",
-              "target": "aho_corasick"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "regex-syntax 0.6.25",
-              "target": "regex_syntax"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex-syntax 0.6.25": {
-      "name": "regex-syntax",
-      "version": "0.6.25",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-          "sha256": "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex_syntax",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex_syntax",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.6.25"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "strsim 0.10.0": {
-      "name": "strsim",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download",
-          "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "strsim",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "strsim",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "syn 1.0.86": {
-      "name": "syn",
-      "version": "1.0.86",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.86/download",
-          "sha256": "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clone-impls",
-          "default",
-          "derive",
-          "full",
-          "parsing",
-          "printing",
-          "proc-macro",
-          "quote"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.86"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "termcolor 1.1.3": {
-      "name": "termcolor",
-      "version": "1.1.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/termcolor/1.1.3/download",
-          "sha256": "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "termcolor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "termcolor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi-util 0.1.5",
-                "target": "winapi_util"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.1.3"
-      },
-      "license": "Unlicense OR MIT"
-    },
-    "textwrap 0.15.0": {
-      "name": "textwrap",
-      "version": "0.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.15.0/download",
-          "sha256": "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.15.0"
-      },
-      "license": "MIT"
-    },
-    "unicode-xid 0.2.2": {
-      "name": "unicode-xid",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-          "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_xid",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_xid",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "value-bag 1.0.0-alpha.7": {
-      "name": "value-bag",
-      "version": "1.0.0-alpha.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/value-bag/1.0.0-alpha.7/download",
-          "sha256": "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "value_bag",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "value_bag",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "value-bag 1.0.0-alpha.7",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "ctor 0.1.21",
-              "target": "ctor"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.0-alpha.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check",
-              "alias": "rustc"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "version_check 0.9.4": {
-      "name": "version_check",
-      "version": "0.9.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
-          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "version_check",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "version_check",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.9.4"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasi 0.10.2+wasi-snapshot-preview1": {
-      "name": "wasi",
-      "version": "0.10.2+wasi-snapshot-preview1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download",
-          "sha256": "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.10.2+wasi-snapshot-preview1"
-      },
-      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "consoleapi",
-          "errhandlingapi",
-          "fileapi",
-          "minwinbase",
-          "minwindef",
-          "processenv",
-          "std",
-          "winbase",
-          "wincon",
-          "winerror",
-          "winnt"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-util 0.1.5": {
-      "name": "winapi-util",
-      "version": "0.1.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-          "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.5"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    }
-  },
-  "binary_crates": [
-    "names 0.12.1-dev",
-    "names 0.13.0"
-  ],
-  "workspace_members": {
-    "aliases 0.1.0": "cargo_aliases"
-  },
-  "conditions": {
-    "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"wasi\")": [
-      "wasm32-wasi"
-    ],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "x86_64-pc-windows-gnu": []
-  }
-}
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "aliases"
+version = "0.1.0"
+dependencies = [
+ "env_logger",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "names 0.12.1-dev (git+https://github.com/fnichol/names.git?rev=760516503b89ddc8bc2ab42d579d4566cfb1054f#760516503b89ddc8bc2ab42d579d4566cfb1054f)",
+ "names 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "value-bag",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "3.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "indexmap",
+ "once_cell",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "ctor"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+dependencies = [
+ "atty",
+ "humantime",
+ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "log"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "names"
+version = "0.12.1-dev"
+source = "git+https://github.com/fnichol/names.git?rev=760516503b89ddc8bc2ab42d579d4566cfb1054f#760516503b89ddc8bc2ab42d579d4566cfb1054f"
+dependencies = [
+ "clap",
+ "rand",
+]
+
+[[package]]
+name = "names"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146"
+dependencies = [
+ "clap",
+ "rand",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
+name = "value-bag"
+version = "1.0.0-alpha.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae"
+dependencies = [
+ "ctor",
+ "version_check",
+]
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_aliases/cargo-bazel-lock.json b/third_party/rules_rust/examples/crate_universe/cargo_aliases/cargo-bazel-lock.json
new file mode 100644
index 0000000..7c11d08
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/cargo_aliases/cargo-bazel-lock.json
@@ -0,0 +1,2605 @@
+{
+  "checksum": "18e65377d421f78219df17791be449590f3d10960d5595f9005cee735032567b",
+  "crates": {
+    "aho-corasick 0.7.18": {
+      "name": "aho-corasick",
+      "version": "0.7.18",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
+          "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "aho_corasick",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "aho_corasick",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.18"
+      },
+      "license": "Unlicense/MIT"
+    },
+    "aliases 0.1.0": {
+      "name": "aliases",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "aliases",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "aliases",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.3.9",
+              "target": "log",
+              "alias": "pinned_log"
+            },
+            {
+              "id": "log 0.4.14",
+              "target": "log"
+            },
+            {
+              "id": "names 0.12.1-dev",
+              "target": "names",
+              "alias": "pinned_names"
+            },
+            {
+              "id": "names 0.13.0",
+              "target": "names"
+            },
+            {
+              "id": "value-bag 1.0.0-alpha.7",
+              "target": "value_bag"
+            }
+          ],
+          "selects": {}
+        },
+        "deps_dev": {
+          "common": [
+            {
+              "id": "env_logger 0.9.0",
+              "target": "env_logger"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "atty 0.2.14": {
+      "name": "atty",
+      "version": "0.2.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
+          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "atty",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "atty",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"hermit\")": [
+              {
+                "id": "hermit-abi 0.1.19",
+                "target": "hermit_abi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.2.14"
+      },
+      "license": "MIT"
+    },
+    "autocfg 1.1.0": {
+      "name": "autocfg",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
+          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "autocfg",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "autocfg",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.1.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "bitflags 1.3.2": {
+      "name": "bitflags",
+      "version": "1.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
+          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bitflags",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bitflags",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "1.3.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "cfg-if 1.0.0": {
+      "name": "cfg-if",
+      "version": "1.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
+          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cfg_if",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cfg_if",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "clap 3.2.8": {
+      "name": "clap",
+      "version": "3.2.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/clap/3.2.8/download",
+          "sha256": "190814073e85d238f31ff738fcb0bf6910cedeb73376c87cd69291028966fd83"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "clap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "stdio-fixture",
+            "crate_root": "src/bin/stdio-fixture.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "clap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "atty",
+          "clap_derive",
+          "color",
+          "default",
+          "derive",
+          "once_cell",
+          "std",
+          "strsim",
+          "suggestions",
+          "termcolor"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "atty 0.2.14",
+              "target": "atty"
+            },
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "clap_lex 0.2.4",
+              "target": "clap_lex"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "indexmap"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "strsim 0.10.0",
+              "target": "strsim"
+            },
+            {
+              "id": "termcolor 1.1.3",
+              "target": "termcolor"
+            },
+            {
+              "id": "textwrap 0.15.0",
+              "target": "textwrap"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "clap_derive 3.2.7",
+              "target": "clap_derive"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "3.2.8"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "clap_derive 3.2.7": {
+      "name": "clap_derive",
+      "version": "3.2.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/clap_derive/3.2.7/download",
+          "sha256": "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "clap_derive",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "clap_derive",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "heck 0.4.0",
+              "target": "heck"
+            },
+            {
+              "id": "proc-macro-error 1.0.4",
+              "target": "proc_macro_error"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "version": "3.2.7"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "clap_lex 0.2.4": {
+      "name": "clap_lex",
+      "version": "0.2.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/clap_lex/0.2.4/download",
+          "sha256": "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "clap_lex",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "clap_lex",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "os_str_bytes 6.1.0",
+              "target": "os_str_bytes"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "version": "0.2.4"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "ctor 0.1.22": {
+      "name": "ctor",
+      "version": "0.1.22",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ctor/0.1.22/download",
+          "sha256": "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "ctor",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ctor",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.22"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "env_logger 0.9.0": {
+      "name": "env_logger",
+      "version": "0.9.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/env_logger/0.9.0/download",
+          "sha256": "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "env_logger",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "env_logger",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "atty",
+          "default",
+          "humantime",
+          "regex",
+          "termcolor"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "atty 0.2.14",
+              "target": "atty"
+            },
+            {
+              "id": "humantime 2.1.0",
+              "target": "humantime"
+            },
+            {
+              "id": "log 0.4.14",
+              "target": "log"
+            },
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            },
+            {
+              "id": "termcolor 1.1.3",
+              "target": "termcolor"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.9.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "getrandom 0.2.7": {
+      "name": "getrandom",
+      "version": "0.2.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/getrandom/0.2.7/download",
+          "sha256": "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "getrandom",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "getrandom",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"wasi\")": [
+              {
+                "id": "wasi 0.11.0+wasi-snapshot-preview1",
+                "target": "wasi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.2.7"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "hashbrown 0.12.1": {
+      "name": "hashbrown",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hashbrown/0.12.1/download",
+          "sha256": "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hashbrown",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hashbrown",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "raw"
+        ],
+        "edition": "2021",
+        "version": "0.12.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "heck 0.4.0": {
+      "name": "heck",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/heck/0.4.0/download",
+          "sha256": "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "heck",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "heck",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "0.4.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "hermit-abi 0.1.19": {
+      "name": "hermit-abi",
+      "version": "0.1.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
+          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hermit_abi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hermit_abi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.19"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "humantime 2.1.0": {
+      "name": "humantime",
+      "version": "2.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/humantime/2.1.0/download",
+          "sha256": "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "humantime",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "humantime",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "2.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "indexmap 1.9.1": {
+      "name": "indexmap",
+      "version": "1.9.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/indexmap/1.9.1/download",
+          "sha256": "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "indexmap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "indexmap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "hashbrown 0.12.1",
+              "target": "hashbrown"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "version": "1.9.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "libc 0.2.126": {
+      "name": "libc",
+      "version": "0.2.126",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libc/0.2.126/download",
+          "sha256": "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.126"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "log 0.3.9": {
+      "name": "log",
+      "version": "0.3.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/log/0.3.9/download",
+          "sha256": "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "log",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "log",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "use_std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.14",
+              "target": "log"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.3.9"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "log 0.4.14": {
+      "name": "log",
+      "version": "0.4.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/log/0.4.14/download",
+          "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "log",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "log",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.14",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.14"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "memchr 2.5.0": {
+      "name": "memchr",
+      "version": "2.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/memchr/2.5.0/download",
+          "sha256": "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "memchr",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "memchr",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "memchr 2.5.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.5.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "Unlicense/MIT"
+    },
+    "names 0.12.1-dev": {
+      "name": "names",
+      "version": "0.12.1-dev",
+      "repository": {
+        "Git": {
+          "remote": "https://github.com/fnichol/names.git",
+          "commitish": {
+            "Rev": "760516503b89ddc8bc2ab42d579d4566cfb1054f"
+          },
+          "shallow_since": "1646516410 -0700"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "names",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "names",
+            "crate_root": "src/bin/names.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "names",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "application",
+          "clap",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "clap 3.2.8",
+              "target": "clap"
+            },
+            {
+              "id": "names 0.12.1-dev",
+              "target": "build_script_build"
+            },
+            {
+              "id": "rand 0.8.5",
+              "target": "rand"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.12.1-dev"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    },
+    "names 0.13.0": {
+      "name": "names",
+      "version": "0.13.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/names/0.13.0/download",
+          "sha256": "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "names",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "names",
+            "crate_root": "src/bin/names.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "names",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "application",
+          "clap",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "clap 3.2.8",
+              "target": "clap"
+            },
+            {
+              "id": "names 0.13.0",
+              "target": "build_script_build"
+            },
+            {
+              "id": "rand 0.8.5",
+              "target": "rand"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.13.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    },
+    "once_cell 1.13.0": {
+      "name": "once_cell",
+      "version": "1.13.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/once_cell/1.13.0/download",
+          "sha256": "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "once_cell",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "once_cell",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "race",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "1.13.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "os_str_bytes 6.1.0": {
+      "name": "os_str_bytes",
+      "version": "6.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/os_str_bytes/6.1.0/download",
+          "sha256": "21326818e99cfe6ce1e524c2a805c189a99b5ae555a35d19f9a284b427d86afa"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "os_str_bytes",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "os_str_bytes",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "raw_os_str"
+        ],
+        "edition": "2018",
+        "version": "6.1.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "ppv-lite86 0.2.16": {
+      "name": "ppv-lite86",
+      "version": "0.2.16",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download",
+          "sha256": "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ppv_lite86",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ppv_lite86",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "simd",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.2.16"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "proc-macro-error 1.0.4": {
+      "name": "proc-macro-error",
+      "version": "1.0.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
+          "sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "proc_macro_error",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "proc_macro_error",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "syn",
+          "syn-error"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro-error 1.0.4",
+              "target": "build_script_build"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "proc-macro-error-attr 1.0.4",
+              "target": "proc_macro_error_attr"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.4"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "version_check 0.9.4",
+              "target": "version_check"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "proc-macro-error-attr 1.0.4": {
+      "name": "proc-macro-error-attr",
+      "version": "1.0.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
+          "sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "proc_macro_error_attr",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "proc_macro_error_attr",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro-error-attr 1.0.4",
+              "target": "build_script_build"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.4"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "version_check 0.9.4",
+              "target": "version_check"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "proc-macro2 1.0.40": {
+      "name": "proc-macro2",
+      "version": "1.0.40",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.40/download",
+          "sha256": "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "proc_macro2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "proc_macro2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.40"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "quote 1.0.20": {
+      "name": "quote",
+      "version": "1.0.20",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/quote/1.0.20/download",
+          "sha256": "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "quote",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "quote",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.20"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand 0.8.5": {
+      "name": "rand",
+      "version": "0.8.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand/0.8.5/download",
+          "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "getrandom",
+          "libc",
+          "rand_chacha",
+          "std",
+          "std_rng"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "rand_chacha 0.3.1",
+              "target": "rand_chacha"
+            },
+            {
+              "id": "rand_core 0.6.3",
+              "target": "rand_core"
+            }
+          ],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.8.5"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand_chacha 0.3.1": {
+      "name": "rand_chacha",
+      "version": "0.3.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand_chacha/0.3.1/download",
+          "sha256": "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand_chacha",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand_chacha",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "ppv-lite86 0.2.16",
+              "target": "ppv_lite86"
+            },
+            {
+              "id": "rand_core 0.6.3",
+              "target": "rand_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand_core 0.6.3": {
+      "name": "rand_core",
+      "version": "0.6.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
+          "sha256": "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "getrandom",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "getrandom 0.2.7",
+              "target": "getrandom"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.6.3"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "regex 1.6.0": {
+      "name": "regex",
+      "version": "1.6.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/regex/1.6.0/download",
+          "sha256": "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "regex",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "regex",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "aho-corasick",
+          "memchr",
+          "perf",
+          "perf-cache",
+          "perf-dfa",
+          "perf-inline",
+          "perf-literal",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "aho-corasick 0.7.18",
+              "target": "aho_corasick"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "regex-syntax 0.6.27",
+              "target": "regex_syntax"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.6.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "regex-syntax 0.6.27": {
+      "name": "regex-syntax",
+      "version": "0.6.27",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.27/download",
+          "sha256": "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "regex_syntax",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "regex_syntax",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.6.27"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "strsim 0.10.0": {
+      "name": "strsim",
+      "version": "0.10.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download",
+          "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "strsim",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "strsim",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.10.0"
+      },
+      "license": "MIT"
+    },
+    "syn 1.0.98": {
+      "name": "syn",
+      "version": "1.0.98",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/syn/1.0.98/download",
+          "sha256": "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "syn",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "syn",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "clone-impls",
+          "default",
+          "derive",
+          "full",
+          "parsing",
+          "printing",
+          "proc-macro",
+          "quote"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.98"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "termcolor 1.1.3": {
+      "name": "termcolor",
+      "version": "1.1.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/termcolor/1.1.3/download",
+          "sha256": "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "termcolor",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "termcolor",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(windows)": [
+              {
+                "id": "winapi-util 0.1.5",
+                "target": "winapi_util"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "1.1.3"
+      },
+      "license": "Unlicense OR MIT"
+    },
+    "textwrap 0.15.0": {
+      "name": "textwrap",
+      "version": "0.15.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/textwrap/0.15.0/download",
+          "sha256": "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "textwrap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "textwrap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.15.0"
+      },
+      "license": "MIT"
+    },
+    "unicode-ident 1.0.1": {
+      "name": "unicode-ident",
+      "version": "1.0.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.1/download",
+          "sha256": "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_ident",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_ident",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "value-bag 1.0.0-alpha.7": {
+      "name": "value-bag",
+      "version": "1.0.0-alpha.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/value-bag/1.0.0-alpha.7/download",
+          "sha256": "dd320e1520f94261153e96f7534476ad869c14022aee1e59af7c778075d840ae"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "value_bag",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "value_bag",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "value-bag 1.0.0-alpha.7",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "ctor 0.1.22",
+              "target": "ctor"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.0-alpha.7"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "version_check 0.9.4",
+              "target": "version_check",
+              "alias": "rustc"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "version_check 0.9.4": {
+      "name": "version_check",
+      "version": "0.9.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
+          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "version_check",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "version_check",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.9.4"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasi 0.11.0+wasi-snapshot-preview1": {
+      "name": "wasi",
+      "version": "0.11.0+wasi-snapshot-preview1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download",
+          "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.11.0+wasi-snapshot-preview1"
+      },
+      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+    },
+    "winapi 0.3.9": {
+      "name": "winapi",
+      "version": "0.3.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
+          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "consoleapi",
+          "errhandlingapi",
+          "fileapi",
+          "minwinbase",
+          "minwindef",
+          "processenv",
+          "std",
+          "winbase",
+          "wincon",
+          "winerror",
+          "winnt"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi 0.3.9",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "i686-pc-windows-gnu": [
+              {
+                "id": "winapi-i686-pc-windows-gnu 0.4.0",
+                "target": "winapi_i686_pc_windows_gnu"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+                "target": "winapi_x86_64_pc_windows_gnu"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.3.9"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-i686-pc-windows-gnu 0.4.0": {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
+          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_i686_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_i686_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-i686-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-util 0.1.5": {
+      "name": "winapi-util",
+      "version": "0.1.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
+          "sha256": "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.1.5"
+      },
+      "license": "Unlicense/MIT"
+    },
+    "winapi-x86_64-pc-windows-gnu 0.4.0": {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
+          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_x86_64_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_x86_64_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    }
+  },
+  "binary_crates": [
+    "clap 3.2.8",
+    "names 0.12.1-dev",
+    "names 0.13.0"
+  ],
+  "workspace_members": {
+    "aliases 0.1.0": "cargo_aliases"
+  },
+  "conditions": {
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(target_os = \"wasi\")": [
+      "wasm32-wasi"
+    ],
+    "cfg(unix)": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(windows)": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": []
+  }
+}
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_local/Cargo.lock b/third_party/rules_rust/examples/crate_universe/cargo_local/Cargo.lock
index 6e94606..a9454b6 100644
--- a/third_party/rules_rust/examples/crate_universe/cargo_local/Cargo.lock
+++ b/third_party/rules_rust/examples/crate_universe/cargo_local/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "async-stream"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625"
+checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e"
 dependencies = [
  "async-stream-impl",
  "futures-core",
@@ -14,9 +14,9 @@
 
 [[package]]
 name = "async-stream-impl"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308"
+checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -25,9 +25,9 @@
 
 [[package]]
 name = "autocfg"
-version = "1.0.1"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "bitflags"
@@ -57,21 +57,19 @@
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
-name = "futures-core"
-version = "0.3.17"
+name = "fastrand"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
 
 [[package]]
-name = "getrandom"
-version = "0.2.3"
+name = "futures-core"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
+checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
 
 [[package]]
 name = "hermit-abi"
@@ -84,79 +82,61 @@
 
 [[package]]
 name = "instant"
-version = "0.1.11"
+version = "0.1.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "716d3d89f35ac6a34fd0eed635395f4c3b76fa889338a4632e5231a8684216bd"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "libc"
-version = "0.2.103"
+version = "0.2.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8f7255a17a627354f321ef0055d63b898c6fb27eff628af4d1b66b7331edf6"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 
 [[package]]
 name = "lock_api"
-version = "0.4.5"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109"
+checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
 dependencies = [
+ "autocfg",
  "scopeguard",
 ]
 
 [[package]]
 name = "log"
-version = "0.4.14"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "mio"
-version = "0.7.13"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
+checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
 dependencies = [
  "libc",
  "log",
- "miow",
- "ntapi",
- "winapi",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "ntapi"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
-dependencies = [
- "winapi",
+ "wasi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "num_cpus"
-version = "1.13.0"
+version = "1.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
 dependencies = [
  "hermit-abi",
  "libc",
@@ -164,110 +144,62 @@
 
 [[package]]
 name = "once_cell"
-version = "1.8.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
 
 [[package]]
 name = "parking_lot"
-version = "0.11.2"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 dependencies = [
- "instant",
  "lock_api",
  "parking_lot_core",
 ]
 
 [[package]]
 name = "parking_lot_core"
-version = "0.8.5"
+version = "0.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
 dependencies = [
  "cfg-if",
- "instant",
  "libc",
  "redox_syscall",
  "smallvec",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.7"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.29"
+version = "1.0.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.9"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
-name = "rand"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
 name = "redox_syscall"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
 dependencies = [
  "bitflags",
 ]
@@ -298,30 +230,40 @@
 
 [[package]]
 name = "smallvec"
-version = "1.6.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+
+[[package]]
+name = "socket2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
 
 [[package]]
 name = "syn"
-version = "1.0.77"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.2.0"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
 dependencies = [
  "cfg-if",
+ "fastrand",
  "libc",
- "rand",
  "redox_syscall",
  "remove_dir_all",
  "winapi",
@@ -329,11 +271,10 @@
 
 [[package]]
 name = "tokio"
-version = "1.12.0"
+version = "1.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc"
+checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
 dependencies = [
- "autocfg",
  "bytes",
  "libc",
  "memchr",
@@ -343,15 +284,16 @@
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
+ "socket2",
  "tokio-macros",
  "winapi",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "1.3.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110"
+checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -360,9 +302,9 @@
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.7"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f"
+checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -383,16 +325,16 @@
 ]
 
 [[package]]
-name = "unicode-xid"
-version = "0.2.2"
+name = "unicode-ident"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
 
 [[package]]
 name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
+version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "winapi"
@@ -415,3 +357,46 @@
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_workspace/.cargo/config.toml b/third_party/rules_rust/examples/crate_universe/cargo_workspace/.cargo/config.toml
new file mode 100644
index 0000000..1e04f5c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/cargo_workspace/.cargo/config.toml
@@ -0,0 +1,2 @@
+# This file can contain cargo settings. For more details see:
+# https://doc.rust-lang.org/cargo/reference/config.html
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_workspace/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/cargo_workspace/BUILD.bazel
index e69de29..22293b9 100644
--- a/third_party/rules_rust/examples/crate_universe/cargo_workspace/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/cargo_workspace/BUILD.bazel
@@ -0,0 +1,4 @@
+exports_files(
+    [".cargo/config.toml"],
+    visibility = ["//visibility:public"],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock b/third_party/rules_rust/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
index e71e918..170c43c 100644
--- a/third_party/rules_rust/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
+++ b/third_party/rules_rust/examples/crate_universe/cargo_workspace/Cargo.Bazel.lock
@@ -1,1462 +1,238 @@
-{
-  "checksum": "0116dced5bffc719d9e8c3a9fc34b13d9f97c61125722f5bcb4079df12465f56",
-  "crates": {
-    "ansi_term 0.12.1": {
-      "name": "ansi_term",
-      "version": "0.12.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ansi_term/0.12.1/download",
-          "sha256": "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ansi_term",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ansi_term",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"windows\")": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.12.1"
-      },
-      "license": "MIT"
-    },
-    "atty 0.2.14": {
-      "name": "atty",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
-          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atty",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atty",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"hermit\")": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "license": "MIT"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "clap 2.34.0": {
-      "name": "clap",
-      "version": "2.34.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap/2.34.0/download",
-          "sha256": "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "clap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "ansi_term",
-          "atty",
-          "color",
-          "default",
-          "strsim",
-          "suggestions",
-          "vec_map"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "strsim 0.8.0",
-              "target": "strsim"
-            },
-            {
-              "id": "textwrap 0.11.0",
-              "target": "textwrap"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            },
-            {
-              "id": "vec_map 0.8.2",
-              "target": "vec_map"
-            }
-          ],
-          "selects": {
-            "cfg(not(windows))": [
-              {
-                "id": "ansi_term 0.12.1",
-                "target": "ansi_term"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "2.34.0"
-      },
-      "license": "MIT"
-    },
-    "direct-cargo-bazel-deps 0.0.1": {
-      "name": "direct-cargo-bazel-deps",
-      "version": "0.0.1",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "direct_cargo_bazel_deps",
-            "crate_root": ".direct_cargo_bazel_deps.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "direct_cargo_bazel_deps",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.0.1"
-      },
-      "license": null
-    },
-    "ferris-says 0.2.1": {
-      "name": "ferris-says",
-      "version": "0.2.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ferris-says/0.2.1/download",
-          "sha256": "9515ec2dd9606ec230f6b2d1f25fd9e808a2f2af600143f7efe7e5865505b7aa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ferris_says",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ferris_says",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smallvec 0.4.5",
-              "target": "smallvec"
-            },
-            {
-              "id": "textwrap 0.13.4",
-              "target": "textwrap"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "getrandom 0.1.16": {
-      "name": "getrandom",
-      "version": "0.1.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/getrandom/0.1.16/download",
-          "sha256": "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "getrandom",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "getrandom",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "getrandom 0.1.16",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"wasi\")": [
-              {
-                "id": "wasi 0.9.0+wasi-snapshot-preview1",
-                "target": "wasi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.16"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num_printer 0.1.0": {
-      "name": "num_printer",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Binary": {
-            "crate_name": "number-printer",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": null,
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 2.34.0",
-              "target": "clap"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "ppv-lite86 0.2.16": {
-      "name": "ppv-lite86",
-      "version": "0.2.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download",
-          "sha256": "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ppv_lite86",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ppv_lite86",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "simd",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.2.16"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "printer 0.1.0": {
-      "name": "printer",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "printer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "printer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ferris-says 0.2.1",
-              "target": "ferris_says"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "rand 0.7.3": {
-      "name": "rand",
-      "version": "0.7.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand/0.7.3/download",
-          "sha256": "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "getrandom",
-          "getrandom_package",
-          "libc",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "getrandom 0.1.16",
-              "target": "getrandom",
-              "alias": "getrandom_package"
-            },
-            {
-              "id": "rand_core 0.5.1",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {
-            "cfg(not(target_os = \"emscripten\"))": [
-              {
-                "id": "rand_chacha 0.2.2",
-                "target": "rand_chacha"
-              }
-            ],
-            "cfg(target_os = \"emscripten\")": [
-              {
-                "id": "rand_hc 0.2.0",
-                "target": "rand_hc"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.7.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_chacha 0.2.2": {
-      "name": "rand_chacha",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_chacha/0.2.2/download",
-          "sha256": "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_chacha",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_chacha",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ppv-lite86 0.2.16",
-              "target": "ppv_lite86"
-            },
-            {
-              "id": "rand_core 0.5.1",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_core 0.5.1": {
-      "name": "rand_core",
-      "version": "0.5.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.5.1/download",
-          "sha256": "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "getrandom",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "getrandom 0.1.16",
-              "target": "getrandom"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.5.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_hc 0.2.0": {
-      "name": "rand_hc",
-      "version": "0.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_hc/0.2.0/download",
-          "sha256": "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_hc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_hc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_core 0.5.1",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rng 0.1.0": {
-      "name": "rng",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rng",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rng",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand 0.7.3",
-              "target": "rand"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "smallvec 0.4.5": {
-      "name": "smallvec",
-      "version": "0.4.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smallvec/0.4.5/download",
-          "sha256": "f90c5e5fe535e48807ab94fc611d323935f39d4660c52b26b96446a7b33aef10"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smallvec",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smallvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "0.4.5"
-      },
-      "license": "MPL-2.0"
-    },
-    "smawk 0.3.1": {
-      "name": "smawk",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smawk/0.3.1/download",
-          "sha256": "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smawk",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smawk",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "strsim 0.8.0": {
-      "name": "strsim",
-      "version": "0.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/strsim/0.8.0/download",
-          "sha256": "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "strsim",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "strsim",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.8.0"
-      },
-      "license": "MIT"
-    },
-    "textwrap 0.11.0": {
-      "name": "textwrap",
-      "version": "0.11.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
-          "sha256": "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.11.0"
-      },
-      "license": "MIT"
-    },
-    "textwrap 0.13.4": {
-      "name": "textwrap",
-      "version": "0.13.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.13.4/download",
-          "sha256": "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "smawk",
-          "unicode-width"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smawk 0.3.1",
-              "target": "smawk"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.13.4"
-      },
-      "license": "MIT"
-    },
-    "unicode-width 0.1.9": {
-      "name": "unicode-width",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
-          "sha256": "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_width",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_width",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "vec_map 0.8.2": {
-      "name": "vec_map",
-      "version": "0.8.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
-          "sha256": "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "vec_map",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "vec_map",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.8.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasi 0.9.0+wasi-snapshot-preview1": {
-      "name": "wasi",
-      "version": "0.9.0+wasi-snapshot-preview1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasi/0.9.0+wasi-snapshot-preview1/download",
-          "sha256": "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.9.0+wasi-snapshot-preview1"
-      },
-      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "consoleapi",
-          "errhandlingapi",
-          "fileapi",
-          "handleapi",
-          "minwinbase",
-          "minwindef",
-          "processenv",
-          "winbase"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    }
-  },
-  "binary_crates": [],
-  "workspace_members": {
-    "direct-cargo-bazel-deps 0.0.1": "cargo_workspace",
-    "num_printer 0.1.0": "cargo_workspace/num_printer",
-    "printer 0.1.0": "cargo_workspace/printer",
-    "rng 0.1.0": "cargo_workspace/rng"
-  },
-  "conditions": {
-    "cfg(not(target_os = \"emscripten\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-pc-windows-msvc",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-pc-windows-msvc",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(windows))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(target_os = \"emscripten\")": [],
-    "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"wasi\")": [
-      "wasm32-wasi"
-    ],
-    "cfg(target_os = \"windows\")": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "x86_64-pc-windows-gnu": []
-  }
-}
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "2.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags",
+ "strsim",
+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+
+[[package]]
+name = "ferris-says"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9515ec2dd9606ec230f6b2d1f25fd9e808a2f2af600143f7efe7e5865505b7aa"
+dependencies = [
+ "smallvec",
+ "textwrap 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "num_printer"
+version = "0.1.0"
+dependencies = [
+ "clap",
+ "printer",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "printer"
+version = "0.1.0"
+dependencies = [
+ "ferris-says",
+ "rng",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rng"
+version = "0.1.0"
+dependencies = [
+ "rand",
+]
+
+[[package]]
+name = "smallvec"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f90c5e5fe535e48807ab94fc611d323935f39d4660c52b26b96446a7b33aef10"
+
+[[package]]
+name = "smawk"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.13.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
+dependencies = [
+ "smawk",
+ "unicode-width",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/examples/crate_universe/cargo_workspace/cargo-bazel-lock.json b/third_party/rules_rust/examples/crate_universe/cargo_workspace/cargo-bazel-lock.json
new file mode 100644
index 0000000..4c7e145
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/cargo_workspace/cargo-bazel-lock.json
@@ -0,0 +1,1470 @@
+{
+  "checksum": "746574dd60cef41f95be67cc408ac93637dea1f729ae7f1d2450cbfc0dff4a8b",
+  "crates": {
+    "ansi_term 0.12.1": {
+      "name": "ansi_term",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ansi_term/0.12.1/download",
+          "sha256": "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ansi_term",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ansi_term",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"windows\")": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.12.1"
+      },
+      "license": "MIT"
+    },
+    "atty 0.2.14": {
+      "name": "atty",
+      "version": "0.2.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
+          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "atty",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "atty",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"hermit\")": [
+              {
+                "id": "hermit-abi 0.1.19",
+                "target": "hermit_abi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.2.14"
+      },
+      "license": "MIT"
+    },
+    "bitflags 1.3.2": {
+      "name": "bitflags",
+      "version": "1.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
+          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bitflags",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bitflags",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "1.3.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "cfg-if 1.0.0": {
+      "name": "cfg-if",
+      "version": "1.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
+          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cfg_if",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cfg_if",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "clap 2.34.0": {
+      "name": "clap",
+      "version": "2.34.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/clap/2.34.0/download",
+          "sha256": "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "clap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "clap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "ansi_term",
+          "atty",
+          "color",
+          "default",
+          "strsim",
+          "suggestions",
+          "vec_map"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "atty 0.2.14",
+              "target": "atty"
+            },
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "strsim 0.8.0",
+              "target": "strsim"
+            },
+            {
+              "id": "textwrap 0.11.0",
+              "target": "textwrap"
+            },
+            {
+              "id": "unicode-width 0.1.9",
+              "target": "unicode_width"
+            },
+            {
+              "id": "vec_map 0.8.2",
+              "target": "vec_map"
+            }
+          ],
+          "selects": {
+            "cfg(not(windows))": [
+              {
+                "id": "ansi_term 0.12.1",
+                "target": "ansi_term"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "2.34.0"
+      },
+      "license": "MIT"
+    },
+    "direct-cargo-bazel-deps 0.0.1": {
+      "name": "direct-cargo-bazel-deps",
+      "version": "0.0.1",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "direct_cargo_bazel_deps",
+            "crate_root": ".direct_cargo_bazel_deps.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "direct_cargo_bazel_deps",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.0.1"
+      },
+      "license": null
+    },
+    "ferris-says 0.2.1": {
+      "name": "ferris-says",
+      "version": "0.2.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ferris-says/0.2.1/download",
+          "sha256": "9515ec2dd9606ec230f6b2d1f25fd9e808a2f2af600143f7efe7e5865505b7aa"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ferris_says",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ferris_says",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "smallvec 0.4.5",
+              "target": "smallvec"
+            },
+            {
+              "id": "textwrap 0.13.4",
+              "target": "textwrap"
+            },
+            {
+              "id": "unicode-width 0.1.9",
+              "target": "unicode_width"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "getrandom 0.1.16": {
+      "name": "getrandom",
+      "version": "0.1.16",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/getrandom/0.1.16/download",
+          "sha256": "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "getrandom",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "getrandom",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "getrandom 0.1.16",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"wasi\")": [
+              {
+                "id": "wasi 0.9.0+wasi-snapshot-preview1",
+                "target": "wasi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.1.16"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "hermit-abi 0.1.19": {
+      "name": "hermit-abi",
+      "version": "0.1.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
+          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hermit_abi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hermit_abi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.19"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "libc 0.2.126": {
+      "name": "libc",
+      "version": "0.2.126",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libc/0.2.126/download",
+          "sha256": "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.126"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "num_printer 0.1.0": {
+      "name": "num_printer",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Binary": {
+            "crate_name": "number-printer",
+            "crate_root": "src/main.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": null,
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "clap 2.34.0",
+              "target": "clap"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "ppv-lite86 0.2.16": {
+      "name": "ppv-lite86",
+      "version": "0.2.16",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download",
+          "sha256": "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ppv_lite86",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ppv_lite86",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "simd",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.2.16"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "printer 0.1.0": {
+      "name": "printer",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "printer",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "printer",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "ferris-says 0.2.1",
+              "target": "ferris_says"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "rand 0.7.3": {
+      "name": "rand",
+      "version": "0.7.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand/0.7.3/download",
+          "sha256": "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "getrandom",
+          "getrandom_package",
+          "libc",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "getrandom 0.1.16",
+              "target": "getrandom",
+              "alias": "getrandom_package"
+            },
+            {
+              "id": "rand_core 0.5.1",
+              "target": "rand_core"
+            }
+          ],
+          "selects": {
+            "cfg(not(target_os = \"emscripten\"))": [
+              {
+                "id": "rand_chacha 0.2.2",
+                "target": "rand_chacha"
+              }
+            ],
+            "cfg(target_os = \"emscripten\")": [
+              {
+                "id": "rand_hc 0.2.0",
+                "target": "rand_hc"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.7.3"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand_chacha 0.2.2": {
+      "name": "rand_chacha",
+      "version": "0.2.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand_chacha/0.2.2/download",
+          "sha256": "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand_chacha",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand_chacha",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "ppv-lite86 0.2.16",
+              "target": "ppv_lite86"
+            },
+            {
+              "id": "rand_core 0.5.1",
+              "target": "rand_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.2"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand_core 0.5.1": {
+      "name": "rand_core",
+      "version": "0.5.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand_core/0.5.1/download",
+          "sha256": "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "getrandom",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "getrandom 0.1.16",
+              "target": "getrandom"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.5.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "rand_hc 0.2.0": {
+      "name": "rand_hc",
+      "version": "0.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rand_hc/0.2.0/download",
+          "sha256": "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rand_hc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rand_hc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "rand_core 0.5.1",
+              "target": "rand_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "rng 0.1.0": {
+      "name": "rng",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "rng",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rng",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "rand 0.7.3",
+              "target": "rand"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "smallvec 0.4.5": {
+      "name": "smallvec",
+      "version": "0.4.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/smallvec/0.4.5/download",
+          "sha256": "f90c5e5fe535e48807ab94fc611d323935f39d4660c52b26b96446a7b33aef10"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "smallvec",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "smallvec",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2015",
+        "version": "0.4.5"
+      },
+      "license": "MPL-2.0"
+    },
+    "smawk 0.3.1": {
+      "name": "smawk",
+      "version": "0.3.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/smawk/0.3.1/download",
+          "sha256": "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "smawk",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "smawk",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.1"
+      },
+      "license": "MIT"
+    },
+    "strsim 0.8.0": {
+      "name": "strsim",
+      "version": "0.8.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/strsim/0.8.0/download",
+          "sha256": "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "strsim",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "strsim",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.8.0"
+      },
+      "license": "MIT"
+    },
+    "textwrap 0.11.0": {
+      "name": "textwrap",
+      "version": "0.11.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
+          "sha256": "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "textwrap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "textwrap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "unicode-width 0.1.9",
+              "target": "unicode_width"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.11.0"
+      },
+      "license": "MIT"
+    },
+    "textwrap 0.13.4": {
+      "name": "textwrap",
+      "version": "0.13.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/textwrap/0.13.4/download",
+          "sha256": "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "textwrap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "textwrap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "smawk",
+          "unicode-width"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "smawk 0.3.1",
+              "target": "smawk"
+            },
+            {
+              "id": "unicode-width 0.1.9",
+              "target": "unicode_width"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.13.4"
+      },
+      "license": "MIT"
+    },
+    "unicode-width 0.1.9": {
+      "name": "unicode-width",
+      "version": "0.1.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
+          "sha256": "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_width",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_width",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2015",
+        "version": "0.1.9"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "vec_map 0.8.2": {
+      "name": "vec_map",
+      "version": "0.8.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
+          "sha256": "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "vec_map",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "vec_map",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.8.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasi 0.9.0+wasi-snapshot-preview1": {
+      "name": "wasi",
+      "version": "0.9.0+wasi-snapshot-preview1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasi/0.9.0+wasi-snapshot-preview1/download",
+          "sha256": "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.9.0+wasi-snapshot-preview1"
+      },
+      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+    },
+    "winapi 0.3.9": {
+      "name": "winapi",
+      "version": "0.3.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
+          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "consoleapi",
+          "errhandlingapi",
+          "fileapi",
+          "handleapi",
+          "minwinbase",
+          "minwindef",
+          "processenv",
+          "winbase"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi 0.3.9",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "i686-pc-windows-gnu": [
+              {
+                "id": "winapi-i686-pc-windows-gnu 0.4.0",
+                "target": "winapi_i686_pc_windows_gnu"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+                "target": "winapi_x86_64_pc_windows_gnu"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.3.9"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-i686-pc-windows-gnu 0.4.0": {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
+          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_i686_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_i686_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-i686-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-x86_64-pc-windows-gnu 0.4.0": {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
+          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_x86_64_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_x86_64_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    }
+  },
+  "binary_crates": [],
+  "workspace_members": {
+    "direct-cargo-bazel-deps 0.0.1": "cargo_workspace",
+    "num_printer 0.1.0": "cargo_workspace/num_printer",
+    "printer 0.1.0": "cargo_workspace/printer",
+    "rng 0.1.0": "cargo_workspace/rng"
+  },
+  "conditions": {
+    "cfg(not(target_os = \"emscripten\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-pc-windows-msvc",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-unknown-unknown",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-pc-windows-msvc",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(not(windows))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-unknown-unknown",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(target_os = \"emscripten\")": [],
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(target_os = \"wasi\")": [
+      "wasm32-wasi"
+    ],
+    "cfg(target_os = \"windows\")": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "cfg(unix)": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(windows)": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": []
+  }
+}
diff --git a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/.bazelrc b/third_party/rules_rust/examples/crate_universe/extra_workspace_members/.bazelrc
deleted file mode 100644
index d63c809..0000000
--- a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/.bazelrc
+++ /dev/null
@@ -1,13 +0,0 @@
-# A config file containing Bazel settings
-
-# Enable rustfmt
-build:strict --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect
-build:strict --output_groups=+rustfmt_checks
-
-# Enable clippy
-build:strict --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
-build:strict --output_groups=+clippy_checks
-
-# This import should always be last to allow users to override
-# settings for local development.
-try-import %workspace%/user.bazelrc
diff --git a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/extra_workspace_members/BUILD.bazel
deleted file mode 100644
index 199257f..0000000
--- a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/BUILD.bazel
+++ /dev/null
@@ -1,22 +0,0 @@
-load("@crate_index_extra_members//:defs.bzl", "all_crate_deps")
-load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_test")
-
-rust_binary(
-    name = "extra_workspace_member",
-    srcs = ["src/main.rs"],
-    data = ["@crate_index_extra_members//:texture-synthesis-cli__texture-synthesis"],
-    proc_macro_deps = all_crate_deps(proc_macro = True),
-    rustc_env = {
-        "TEXTURE_SYNTHESIS_CLI": "$(rootpath @crate_index_extra_members//:texture-synthesis-cli__texture-synthesis)",
-    },
-    deps = all_crate_deps(),
-)
-
-rust_test(
-    name = "unit_test",
-    crate = ":extra_workspace_member",
-    data = ["@crate_index_extra_members//:texture-synthesis-cli__texture-synthesis"],
-    rustc_env = {
-        "TEXTURE_SYNTHESIS_CLI": "$(rootpath @crate_index_extra_members//:texture-synthesis-cli__texture-synthesis)",
-    },
-)
diff --git a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock b/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock
deleted file mode 100644
index c9d296d..0000000
--- a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.Bazel.lock
+++ /dev/null
@@ -1,3273 +0,0 @@
-{
-  "checksum": "e3970ece78ced37e01b3e8d70f9b1350e9d902a2be78f8c08789b05242583bef",
-  "crates": {
-    "adler32 1.2.0": {
-      "name": "adler32",
-      "version": "1.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/adler32/1.2.0/download",
-          "sha256": "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "adler32",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "adler32",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.2.0"
-      },
-      "license": "Zlib"
-    },
-    "ansi_term 0.12.1": {
-      "name": "ansi_term",
-      "version": "0.12.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ansi_term/0.12.1/download",
-          "sha256": "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ansi_term",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ansi_term",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"windows\")": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.12.1"
-      },
-      "license": "MIT"
-    },
-    "atty 0.2.14": {
-      "name": "atty",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
-          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atty",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atty",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"hermit\")": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "license": "MIT"
-    },
-    "autocfg 1.1.0": {
-      "name": "autocfg",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
-          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "autocfg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "autocfg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "bytemuck 1.8.0": {
-      "name": "bytemuck",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bytemuck/1.8.0/download",
-          "sha256": "0e851ca7c24871e7336801608a4797d7376545b6928a10d32d75685687141ead"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bytemuck",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bytemuck",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "license": "Zlib OR Apache-2.0 OR MIT"
-    },
-    "byteorder 1.4.3": {
-      "name": "byteorder",
-      "version": "1.4.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/byteorder/1.4.3/download",
-          "sha256": "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "byteorder",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "byteorder",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.4.3"
-      },
-      "license": "Unlicense OR MIT"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "clap 2.34.0": {
-      "name": "clap",
-      "version": "2.34.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/clap/2.34.0/download",
-          "sha256": "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "clap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "clap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "ansi_term",
-          "atty",
-          "color",
-          "default",
-          "strsim",
-          "suggestions",
-          "vec_map"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "strsim 0.8.0",
-              "target": "strsim"
-            },
-            {
-              "id": "textwrap 0.11.0",
-              "target": "textwrap"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            },
-            {
-              "id": "vec_map 0.8.2",
-              "target": "vec_map"
-            }
-          ],
-          "selects": {
-            "cfg(not(windows))": [
-              {
-                "id": "ansi_term 0.12.1",
-                "target": "ansi_term"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "2.34.0"
-      },
-      "license": "MIT"
-    },
-    "color_quant 1.1.0": {
-      "name": "color_quant",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/color_quant/1.1.0/download",
-          "sha256": "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "color_quant",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "color_quant",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "MIT"
-    },
-    "console 0.15.0": {
-      "name": "console",
-      "version": "0.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/console/0.15.0/download",
-          "sha256": "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "console",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "console",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "ansi-parsing",
-          "default",
-          "regex",
-          "unicode-width"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "terminal_size 0.1.17",
-              "target": "terminal_size"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "encode_unicode 0.3.6",
-                "target": "encode_unicode"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.15.0"
-      },
-      "license": "MIT"
-    },
-    "crc32fast 1.3.2": {
-      "name": "crc32fast",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crc32fast/1.3.2/download",
-          "sha256": "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crc32fast",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crc32fast",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "crc32fast 1.3.2",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.3.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "crossbeam-utils 0.8.7": {
-      "name": "crossbeam-utils",
-      "version": "0.8.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.7/download",
-          "sha256": "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crossbeam_utils",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crossbeam_utils",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lazy_static",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "deflate 0.8.6": {
-      "name": "deflate",
-      "version": "0.8.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/deflate/0.8.6/download",
-          "sha256": "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "deflate",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "deflate",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "adler32 1.2.0",
-              "target": "adler32"
-            },
-            {
-              "id": "byteorder 1.4.3",
-              "target": "byteorder"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.6"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "encode_unicode 0.3.6": {
-      "name": "encode_unicode",
-      "version": "0.3.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/encode_unicode/0.3.6/download",
-          "sha256": "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "encode_unicode",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "encode_unicode",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "0.3.6"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "extra_workspace_members 0.1.0": {
-      "name": "extra_workspace_members",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Binary": {
-            "crate_name": "extra_workspace_members",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": null,
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ferris-says 0.2.1",
-              "target": "ferris_says"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "ferris-says 0.2.1": {
-      "name": "ferris-says",
-      "version": "0.2.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ferris-says/0.2.1/download",
-          "sha256": "9515ec2dd9606ec230f6b2d1f25fd9e808a2f2af600143f7efe7e5865505b7aa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ferris_says",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ferris_says",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smallvec 0.4.5",
-              "target": "smallvec"
-            },
-            {
-              "id": "textwrap 0.13.4",
-              "target": "textwrap"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "heck 0.3.3": {
-      "name": "heck",
-      "version": "0.3.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/heck/0.3.3/download",
-          "sha256": "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "heck",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "heck",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unicode-segmentation 1.9.0",
-              "target": "unicode_segmentation"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "image 0.23.12": {
-      "name": "image",
-      "version": "0.23.12",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/image/0.23.12/download",
-          "sha256": "7ce04077ead78e39ae8610ad26216aed811996b043d47beed5090db674f9e9b5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "image",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "image",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "bmp",
-          "jpeg",
-          "png"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytemuck 1.8.0",
-              "target": "bytemuck"
-            },
-            {
-              "id": "byteorder 1.4.3",
-              "target": "byteorder"
-            },
-            {
-              "id": "color_quant 1.1.0",
-              "target": "color_quant"
-            },
-            {
-              "id": "jpeg-decoder 0.1.22",
-              "target": "jpeg_decoder",
-              "alias": "jpeg"
-            },
-            {
-              "id": "num-iter 0.1.42",
-              "target": "num_iter"
-            },
-            {
-              "id": "num-rational 0.3.2",
-              "target": "num_rational"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            },
-            {
-              "id": "png 0.16.8",
-              "target": "png"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.23.12"
-      },
-      "license": "MIT"
-    },
-    "indicatif 0.15.0": {
-      "name": "indicatif",
-      "version": "0.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/indicatif/0.15.0/download",
-          "sha256": "7baab56125e25686df467fe470785512329883aab42696d661247aca2a2896e4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "indicatif",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "indicatif",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "console 0.15.0",
-              "target": "console"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "number_prefix 0.3.0",
-              "target": "number_prefix"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.15.0"
-      },
-      "license": "MIT"
-    },
-    "jpeg-decoder 0.1.22": {
-      "name": "jpeg-decoder",
-      "version": "0.1.22",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/jpeg-decoder/0.1.22/download",
-          "sha256": "229d53d58899083193af11e15917b5640cd40b29ff475a1fe4ef725deb02d0f2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "jpeg_decoder",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "jpeg_decoder",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.22"
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "lazy_static 1.4.0": {
-      "name": "lazy_static",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lazy_static",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lazy_static",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "miniz_oxide 0.3.7": {
-      "name": "miniz_oxide",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/miniz_oxide/0.3.7/download",
-          "sha256": "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "miniz_oxide",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "miniz_oxide",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "adler32 1.2.0",
-              "target": "adler32"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "license": "MIT"
-    },
-    "num-integer 0.1.44": {
-      "name": "num-integer",
-      "version": "0.1.44",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-integer/0.1.44/download",
-          "sha256": "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_integer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_integer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "i128",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "build_script_build"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.44"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num-iter 0.1.42": {
-      "name": "num-iter",
-      "version": "0.1.42",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-iter/0.1.42/download",
-          "sha256": "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_iter",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_iter",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-iter 0.1.42",
-              "target": "build_script_build"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.42"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num-rational 0.3.2": {
-      "name": "num-rational",
-      "version": "0.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-rational/0.3.2/download",
-          "sha256": "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_rational",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_rational",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-integer 0.1.44",
-              "target": "num_integer"
-            },
-            {
-              "id": "num-rational 0.3.2",
-              "target": "build_script_build"
-            },
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num-traits 0.2.14": {
-      "name": "num-traits",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num-traits/0.2.14/download",
-          "sha256": "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_traits",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_traits",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "i128",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-traits 0.2.14",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "num_cpus 1.13.1": {
-      "name": "num_cpus",
-      "version": "1.13.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
-          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_cpus",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_cpus",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(not(windows))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "1.13.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "number_prefix 0.3.0": {
-      "name": "number_prefix",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/number_prefix/0.3.0/download",
-          "sha256": "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "number_prefix",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "number_prefix",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "once_cell 1.10.0": {
-      "name": "once_cell",
-      "version": "1.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/once_cell/1.10.0/download",
-          "sha256": "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "once_cell",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "once_cell",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "race",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.10.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "pdqselect 0.1.1": {
-      "name": "pdqselect",
-      "version": "0.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pdqselect/0.1.1/download",
-          "sha256": "7778906d9321dd56cde1d1ffa69a73e59dcf5fda6d366f62727adf2bd4193aee"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pdqselect",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pdqselect",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2021",
-        "version": "0.1.1"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "png 0.16.8": {
-      "name": "png",
-      "version": "0.16.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/png/0.16.8/download",
-          "sha256": "3c3287920cb847dee3de33d301c463fba14dda99db24214ddf93f83d3021f4c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "png",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "png",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "deflate",
-          "png-encoding"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "crc32fast 1.3.2",
-              "target": "crc32fast"
-            },
-            {
-              "id": "deflate 0.8.6",
-              "target": "deflate"
-            },
-            {
-              "id": "miniz_oxide 0.3.7",
-              "target": "miniz_oxide"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.16.8"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro-error 1.0.4": {
-      "name": "proc-macro-error",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
-          "sha256": "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro_error",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "syn",
-          "syn-error"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "proc_macro_error_attr"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro-error-attr 1.0.4": {
-      "name": "proc-macro-error-attr",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
-          "sha256": "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "proc_macro_error_attr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro_error_attr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro-error-attr 1.0.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro2 1.0.36": {
-      "name": "proc-macro2",
-      "version": "1.0.36",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.36/download",
-          "sha256": "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.36"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "quote 1.0.15": {
-      "name": "quote",
-      "version": "1.0.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.15/download",
-          "sha256": "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "quote",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "quote",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.15"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand 0.8.5": {
-      "name": "rand",
-      "version": "0.8.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand/0.8.5/download",
-          "sha256": "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_core 0.6.3": {
-      "name": "rand_core",
-      "version": "0.6.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
-          "sha256": "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.6.3"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "rand_pcg 0.3.1": {
-      "name": "rand_pcg",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rand_pcg/0.3.1/download",
-          "sha256": "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rand_pcg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rand_pcg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rand_core 0.6.3",
-              "target": "rand_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex 1.5.4": {
-      "name": "regex",
-      "version": "1.5.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex/1.5.4/download",
-          "sha256": "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "regex-syntax 0.6.25",
-              "target": "regex_syntax"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex-syntax 0.6.25": {
-      "name": "regex-syntax",
-      "version": "0.6.25",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-          "sha256": "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex_syntax",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex_syntax",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.6.25"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rstar 0.7.1": {
-      "name": "rstar",
-      "version": "0.7.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rstar/0.7.1/download",
-          "sha256": "0650eaaa56cbd1726fd671150fce8ac6ed9d9a25d1624430d7ee9d196052f6b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "rstar",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rstar",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "num-traits 0.2.14",
-              "target": "num_traits"
-            },
-            {
-              "id": "pdqselect 0.1.1",
-              "target": "pdqselect"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "smallvec 0.4.5": {
-      "name": "smallvec",
-      "version": "0.4.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smallvec/0.4.5/download",
-          "sha256": "f90c5e5fe535e48807ab94fc611d323935f39d4660c52b26b96446a7b33aef10"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smallvec",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smallvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "0.4.5"
-      },
-      "license": "MPL-2.0"
-    },
-    "smawk 0.3.1": {
-      "name": "smawk",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smawk/0.3.1/download",
-          "sha256": "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smawk",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smawk",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "strsim 0.8.0": {
-      "name": "strsim",
-      "version": "0.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/strsim/0.8.0/download",
-          "sha256": "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "strsim",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "strsim",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.8.0"
-      },
-      "license": "MIT"
-    },
-    "structopt 0.3.26": {
-      "name": "structopt",
-      "version": "0.3.26",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/structopt/0.3.26/download",
-          "sha256": "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "structopt",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "structopt",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "clap 2.34.0",
-              "target": "clap"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "structopt-derive 0.4.18",
-              "target": "structopt_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.3.26"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "structopt-derive 0.4.18": {
-      "name": "structopt-derive",
-      "version": "0.4.18",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/structopt-derive/0.4.18/download",
-          "sha256": "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "structopt_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "structopt_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "heck 0.3.3",
-              "target": "heck"
-            },
-            {
-              "id": "proc-macro-error 1.0.4",
-              "target": "proc_macro_error"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.18"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "syn 1.0.86": {
-      "name": "syn",
-      "version": "1.0.86",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.86/download",
-          "sha256": "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clone-impls",
-          "default",
-          "derive",
-          "full",
-          "parsing",
-          "printing",
-          "proc-macro",
-          "quote"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.86"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "terminal_size 0.1.17": {
-      "name": "terminal_size",
-      "version": "0.1.17",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/terminal_size/0.1.17/download",
-          "sha256": "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "terminal_size",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "terminal_size",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(not(windows))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.17"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "texture-synthesis 0.8.2": {
-      "name": "texture-synthesis",
-      "version": "0.8.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/texture-synthesis/0.8.2/download",
-          "sha256": "62ff62ae485126fec4f3685ced13a1700afb6f6ea12a1a0dec410ebc5dc9378b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "texture_synthesis",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "texture_synthesis",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "image 0.23.12",
-              "target": "image"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "rand 0.8.5",
-              "target": "rand"
-            },
-            {
-              "id": "rand_pcg 0.3.1",
-              "target": "rand_pcg"
-            },
-            {
-              "id": "rstar 0.7.1",
-              "target": "rstar"
-            }
-          ],
-          "selects": {
-            "cfg(not(target_arch = \"wasm32\"))": [
-              {
-                "id": "crossbeam-utils 0.8.7",
-                "target": "crossbeam_utils"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "texture-synthesis-cli 0.8.2": {
-      "name": "texture-synthesis-cli",
-      "version": "0.8.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/texture-synthesis-cli/0.8.2/download",
-          "sha256": "a7dbdf13f5e6f214750fce1073279b71ce3076157a8d337c9b0f0e14334e2aec"
-        }
-      },
-      "targets": [
-        {
-          "Binary": {
-            "crate_name": "texture-synthesis",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": null,
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "structopt 0.3.26",
-              "target": "structopt"
-            },
-            {
-              "id": "texture-synthesis 0.8.2",
-              "target": "texture_synthesis"
-            }
-          ],
-          "selects": {
-            "cfg(not(target_arch = \"wasm32\"))": [
-              {
-                "id": "atty 0.2.14",
-                "target": "atty"
-              },
-              {
-                "id": "indicatif 0.15.0",
-                "target": "indicatif"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "textwrap 0.11.0": {
-      "name": "textwrap",
-      "version": "0.11.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
-          "sha256": "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.11.0"
-      },
-      "license": "MIT"
-    },
-    "textwrap 0.13.4": {
-      "name": "textwrap",
-      "version": "0.13.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/textwrap/0.13.4/download",
-          "sha256": "cd05616119e612a8041ef58f2b578906cc2531a6069047ae092cfb86a325d835"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "textwrap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "textwrap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "smawk",
-          "unicode-width"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "smawk 0.3.1",
-              "target": "smawk"
-            },
-            {
-              "id": "unicode-width 0.1.9",
-              "target": "unicode_width"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.13.4"
-      },
-      "license": "MIT"
-    },
-    "unicode-segmentation 1.9.0": {
-      "name": "unicode-segmentation",
-      "version": "1.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-segmentation/1.9.0/download",
-          "sha256": "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_segmentation",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_segmentation",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.9.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-width 0.1.9": {
-      "name": "unicode-width",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
-          "sha256": "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_width",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_width",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-xid 0.2.2": {
-      "name": "unicode-xid",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-          "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_xid",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_xid",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "vec_map 0.8.2": {
-      "name": "vec_map",
-      "version": "0.8.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
-          "sha256": "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "vec_map",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "vec_map",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.8.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "version_check 0.9.4": {
-      "name": "version_check",
-      "version": "0.9.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
-          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "version_check",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "version_check",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.9.4"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "consoleapi",
-          "errhandlingapi",
-          "fileapi",
-          "handleapi",
-          "minwinbase",
-          "minwindef",
-          "processenv",
-          "winbase",
-          "wincon",
-          "winnt",
-          "winuser"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    }
-  },
-  "binary_crates": [
-    "texture-synthesis-cli 0.8.2"
-  ],
-  "workspace_members": {
-    "extra_workspace_members 0.1.0": "extra_workspace_members"
-  },
-  "conditions": {
-    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(not(target_arch = \"wasm32\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-pc-windows-msvc",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-pc-windows-msvc",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(windows))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"windows\")": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "x86_64-pc-windows-gnu": []
-  }
-}
diff --git a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.toml b/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.toml
deleted file mode 100644
index 2577506..0000000
--- a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/Cargo.toml
+++ /dev/null
@@ -1,11 +0,0 @@
-[package]
-name = "extra_workspace_members"
-version = "0.1.0"
-authors = ["UebelAndre <github@uebelandre.com>"]
-
-[[bin]]
-name = "extra_workspace_members"
-path = "src/main.rs"
-
-[dependencies]
-ferris-says = "0.2.1"
diff --git a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/src/main.rs b/third_party/rules_rust/examples/crate_universe/extra_workspace_members/src/main.rs
deleted file mode 100644
index 0f2fffe..0000000
--- a/third_party/rules_rust/examples/crate_universe/extra_workspace_members/src/main.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-use std::io::{stdout, BufWriter};
-use std::path::Path;
-use std::process::Command;
-
-fn execute_texture_synthesis() -> Vec<u8> {
-    let texture_synthesis_path = Path::new(env!("TEXTURE_SYNTHESIS_CLI"));
-
-    let output = Command::new(texture_synthesis_path)
-        .arg("--help")
-        .output()
-        .unwrap();
-
-    if !output.status.success() {
-        panic!("Execution of texter-synthesis-cli failed")
-    }
-
-    output.stdout
-}
-
-fn main() {
-    // Run the command
-    let output = execute_texture_synthesis();
-
-    // Print the results
-    let mut writer = BufWriter::new(stdout());
-    ferris_says::say(&output, 120, &mut writer).unwrap();
-}
-
-#[cfg(test)]
-mod test {
-    use super::*;
-
-    #[test]
-    fn test_output() {
-        let stdout = execute_texture_synthesis();
-        let text = String::from_utf8(stdout).unwrap();
-        assert!(text.contains("Synthesizes images based on example images"));
-    }
-}
diff --git a/third_party/rules_rust/examples/crate_universe/multi_package/Cargo.Bazel.lock b/third_party/rules_rust/examples/crate_universe/multi_package/Cargo.Bazel.lock
index 12540bc..ef75482 100644
--- a/third_party/rules_rust/examples/crate_universe/multi_package/Cargo.Bazel.lock
+++ b/third_party/rules_rust/examples/crate_universe/multi_package/Cargo.Bazel.lock
@@ -1,10787 +1,1921 @@
-{
-  "checksum": "cba62ac1869a36d1f714ffd077e59f027e78a09a85df999006e21db814f938f4",
-  "crates": {
-    "aho-corasick 0.7.18": {
-      "name": "aho-corasick",
-      "version": "0.7.18",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-          "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "aho_corasick",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "aho_corasick",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.18"
-      },
-      "license": "Unlicense/MIT"
-    },
-    "anyhow 1.0.55": {
-      "name": "anyhow",
-      "version": "1.0.55",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/anyhow/1.0.55/download",
-          "sha256": "159bb86af3a200e19a068f4224eae4c8bb2d0fa054c7e5d1cacd5cef95e684cd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "anyhow",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "anyhow",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "anyhow 1.0.55",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.55"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "ascii-canvas 3.0.0": {
-      "name": "ascii-canvas",
-      "version": "3.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ascii-canvas/3.0.0/download",
-          "sha256": "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ascii_canvas",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ascii_canvas",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "term 0.7.0",
-              "target": "term"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "3.0.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "assert-json-diff 2.0.1": {
-      "name": "assert-json-diff",
-      "version": "2.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/assert-json-diff/2.0.1/download",
-          "sha256": "50f1c3703dd33532d7f0ca049168930e9099ecac238e23cf932f3a69c42f06da"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "assert_json_diff",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "assert_json_diff",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.0.1"
-      },
-      "license": "MIT"
-    },
-    "async-channel 1.6.1": {
-      "name": "async-channel",
-      "version": "1.6.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-channel/1.6.1/download",
-          "sha256": "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_channel",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_channel",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "concurrent-queue 1.2.2",
-              "target": "concurrent_queue"
-            },
-            {
-              "id": "event-listener 2.5.2",
-              "target": "event_listener"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.6.1"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-executor 1.4.1": {
-      "name": "async-executor",
-      "version": "1.4.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-executor/1.4.1/download",
-          "sha256": "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_executor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_executor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-task 4.2.0",
-              "target": "async_task"
-            },
-            {
-              "id": "concurrent-queue 1.2.2",
-              "target": "concurrent_queue"
-            },
-            {
-              "id": "fastrand 1.7.0",
-              "target": "fastrand"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.4.1"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-global-executor 2.0.3": {
-      "name": "async-global-executor",
-      "version": "2.0.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-global-executor/2.0.3/download",
-          "sha256": "c026b7e44f1316b567ee750fea85103f87fcb80792b860e979f221259796ca0a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_global_executor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_global_executor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "async-io",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-channel 1.6.1",
-              "target": "async_channel"
-            },
-            {
-              "id": "async-executor 1.4.1",
-              "target": "async_executor"
-            },
-            {
-              "id": "async-io 1.6.0",
-              "target": "async_io"
-            },
-            {
-              "id": "async-mutex 1.4.0",
-              "target": "async_mutex"
-            },
-            {
-              "id": "blocking 1.1.0",
-              "target": "blocking"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.0.3"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-io 1.6.0": {
-      "name": "async-io",
-      "version": "1.6.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-io/1.6.0/download",
-          "sha256": "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_io",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_io",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "concurrent-queue 1.2.2",
-              "target": "concurrent_queue"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "parking 2.0.0",
-              "target": "parking"
-            },
-            {
-              "id": "polling 2.2.0",
-              "target": "polling"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            },
-            {
-              "id": "waker-fn 1.1.0",
-              "target": "waker_fn"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.6.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-lock 2.5.0": {
-      "name": "async-lock",
-      "version": "2.5.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-lock/2.5.0/download",
-          "sha256": "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_lock",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_lock",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "event-listener 2.5.2",
-              "target": "event_listener"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.5.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-mutex 1.4.0": {
-      "name": "async-mutex",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-mutex/1.4.0/download",
-          "sha256": "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_mutex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_mutex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "event-listener 2.5.2",
-              "target": "event_listener"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.4.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-object-pool 0.1.4": {
-      "name": "async-object-pool",
-      "version": "0.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-object-pool/0.1.4/download",
-          "sha256": "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_object_pool",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_object_pool",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-std 1.10.0",
-              "target": "async_std"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.4"
-      },
-      "license": "MIT"
-    },
-    "async-process 1.3.0": {
-      "name": "async-process",
-      "version": "1.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-process/1.3.0/download",
-          "sha256": "83137067e3a2a6a06d67168e49e68a0957d215410473a740cea95a2425c0b7c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_process",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_process",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "event-listener 2.5.2",
-              "target": "event_listener"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "async-io 1.6.0",
-                "target": "async_io"
-              },
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              },
-              {
-                "id": "signal-hook 0.3.13",
-                "target": "signal_hook"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "blocking 1.1.0",
-                "target": "blocking"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.3.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-std 1.10.0": {
-      "name": "async-std",
-      "version": "1.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-std/1.10.0/download",
-          "sha256": "f8056f1455169ab86dd47b47391e4ab0cbd25410a70e9fe675544f49bafaf952"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_std",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_std",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "async-channel",
-          "async-global-executor",
-          "async-io",
-          "async-lock",
-          "async-process",
-          "crossbeam-utils",
-          "default",
-          "futures-channel",
-          "futures-core",
-          "futures-io",
-          "futures-lite",
-          "gloo-timers",
-          "kv-log-macro",
-          "log",
-          "memchr",
-          "num_cpus",
-          "once_cell",
-          "pin-project-lite",
-          "pin-utils",
-          "slab",
-          "std",
-          "unstable",
-          "wasm-bindgen-futures"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-channel 1.6.1",
-              "target": "async_channel"
-            },
-            {
-              "id": "async-lock 2.5.0",
-              "target": "async_lock"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "crossbeam_utils"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-io 0.3.21",
-              "target": "futures_io"
-            },
-            {
-              "id": "kv-log-macro 1.0.7",
-              "target": "kv_log_macro"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "pin-utils 0.1.0",
-              "target": "pin_utils"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            }
-          ],
-          "selects": {
-            "cfg(not(target_os = \"unknown\"))": [
-              {
-                "id": "async-global-executor 2.0.3",
-                "target": "async_global_executor"
-              },
-              {
-                "id": "async-io 1.6.0",
-                "target": "async_io"
-              },
-              {
-                "id": "async-process 1.3.0",
-                "target": "async_process"
-              },
-              {
-                "id": "futures-lite 1.12.0",
-                "target": "futures_lite"
-              }
-            ],
-            "cfg(target_arch = \"wasm32\")": [
-              {
-                "id": "futures-channel 0.3.21",
-                "target": "futures_channel"
-              },
-              {
-                "id": "gloo-timers 0.2.3",
-                "target": "gloo_timers"
-              },
-              {
-                "id": "wasm-bindgen-futures 0.4.29",
-                "target": "wasm_bindgen_futures"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.10.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "async-task 4.2.0": {
-      "name": "async-task",
-      "version": "4.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-task/4.2.0/download",
-          "sha256": "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "async_task",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_task",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "4.2.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "async-trait 0.1.52": {
-      "name": "async-trait",
-      "version": "0.1.52",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-trait/0.1.52/download",
-          "sha256": "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "async_trait",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_trait",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-trait 0.1.52",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.52"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "atomic-waker 1.0.0": {
-      "name": "atomic-waker",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atomic-waker/1.0.0/download",
-          "sha256": "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atomic_waker",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atomic_waker",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "atty 0.2.14": {
-      "name": "atty",
-      "version": "0.2.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
-          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "atty",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "atty",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"hermit\")": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.14"
-      },
-      "license": "MIT"
-    },
-    "autocfg 1.1.0": {
-      "name": "autocfg",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
-          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "autocfg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "autocfg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "base64 0.13.0": {
-      "name": "base64",
-      "version": "0.13.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/base64/0.13.0/download",
-          "sha256": "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "base64",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "base64",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.13.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "basic-cookies 0.1.4": {
-      "name": "basic-cookies",
-      "version": "0.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/basic-cookies/0.1.4/download",
-          "sha256": "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "basic_cookies",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "basic_cookies",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "basic-cookies 0.1.4",
-              "target": "build_script_build"
-            },
-            {
-              "id": "lalrpop-util 0.19.7",
-              "target": "lalrpop_util"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lalrpop 0.19.7",
-              "target": "lalrpop"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT"
-    },
-    "bit-set 0.5.2": {
-      "name": "bit-set",
-      "version": "0.5.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bit-set/0.5.2/download",
-          "sha256": "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bit_set",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bit_set",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bit-vec 0.6.3",
-              "target": "bit_vec"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.5.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "bit-vec 0.6.3": {
-      "name": "bit-vec",
-      "version": "0.6.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bit-vec/0.6.3/download",
-          "sha256": "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bit_vec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bit_vec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.6.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "block-buffer 0.9.0": {
-      "name": "block-buffer",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/block-buffer/0.9.0/download",
-          "sha256": "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "block_buffer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "block_buffer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "generic_array"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "blocking 1.1.0": {
-      "name": "blocking",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/blocking/1.1.0/download",
-          "sha256": "046e47d4b2d391b1f6f8b407b1deb8dee56c1852ccd868becf2710f601b5f427"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "blocking",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "blocking",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-channel 1.6.1",
-              "target": "async_channel"
-            },
-            {
-              "id": "async-task 4.2.0",
-              "target": "async_task"
-            },
-            {
-              "id": "atomic-waker 1.0.0",
-              "target": "atomic_waker"
-            },
-            {
-              "id": "fastrand 1.7.0",
-              "target": "fastrand"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "bumpalo 3.9.1": {
-      "name": "bumpalo",
-      "version": "3.9.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bumpalo/3.9.1/download",
-          "sha256": "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bumpalo",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bumpalo",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "3.9.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "bytes 1.1.0": {
-      "name": "bytes",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bytes/1.1.0/download",
-          "sha256": "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bytes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bytes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.1.0"
-      },
-      "license": "MIT"
-    },
-    "cache-padded 1.2.0": {
-      "name": "cache-padded",
-      "version": "1.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cache-padded/1.2.0/download",
-          "sha256": "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cache_padded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cache_padded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.2.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "castaway 0.1.2": {
-      "name": "castaway",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/castaway/0.1.2/download",
-          "sha256": "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "castaway",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "castaway",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "license": "MIT"
-    },
-    "cc 1.0.73": {
-      "name": "cc",
-      "version": "1.0.73",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cc/1.0.73/download",
-          "sha256": "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "gcc-shim",
-            "crate_root": "src/bin/gcc-shim.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.73"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "concurrent-queue 1.2.2": {
-      "name": "concurrent-queue",
-      "version": "1.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/concurrent-queue/1.2.2/download",
-          "sha256": "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "concurrent_queue",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "concurrent_queue",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cache-padded 1.2.0",
-              "target": "cache_padded"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.2.2"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "core-foundation 0.9.3": {
-      "name": "core-foundation",
-      "version": "0.9.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/core-foundation/0.9.3/download",
-          "sha256": "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "core_foundation",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "core_foundation",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "core-foundation-sys 0.8.3",
-              "target": "core_foundation_sys"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.9.3"
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "core-foundation-sys 0.8.3": {
-      "name": "core-foundation-sys",
-      "version": "0.8.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/core-foundation-sys/0.8.3/download",
-          "sha256": "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "core_foundation_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "core_foundation_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "core-foundation-sys 0.8.3",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.8.3"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "crossbeam-utils 0.8.7": {
-      "name": "crossbeam-utils",
-      "version": "0.8.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.7/download",
-          "sha256": "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crossbeam_utils",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crossbeam_utils",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lazy_static",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "crunchy 0.2.2": {
-      "name": "crunchy",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/crunchy/0.2.2/download",
-          "sha256": "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "crunchy",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "crunchy",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "limit_128"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "crunchy 0.2.2",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT"
-    },
-    "ctor 0.1.21": {
-      "name": "ctor",
-      "version": "0.1.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ctor/0.1.21/download",
-          "sha256": "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "ctor",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ctor",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.21"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "curl 0.4.42": {
-      "name": "curl",
-      "version": "0.4.42",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/curl/0.4.42/download",
-          "sha256": "7de97b894edd5b5bcceef8b78d7da9b75b1d2f2f9a910569d0bde3dd31d84939"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "curl",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "curl",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "http2",
-          "openssl-probe",
-          "openssl-sys",
-          "ssl",
-          "static-curl"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "curl 0.4.42",
-              "target": "build_script_build"
-            },
-            {
-              "id": "curl-sys 0.4.52+curl-7.81.0",
-              "target": "curl_sys"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            }
-          ],
-          "selects": {
-            "cfg(all(unix, not(target_os = \"macos\")))": [
-              {
-                "id": "openssl-probe 0.1.5",
-                "target": "openssl_probe"
-              },
-              {
-                "id": "openssl-sys 0.9.72",
-                "target": "openssl_sys"
-              }
-            ],
-            "cfg(target_env = \"msvc\")": [
-              {
-                "id": "schannel 0.1.19",
-                "target": "schannel"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.4.42"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "curl-sys 0.4.52+curl-7.81.0",
-              "target": "curl_sys"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT"
-    },
-    "curl-sys 0.4.52+curl-7.81.0": {
-      "name": "curl-sys",
-      "version": "0.4.52+curl-7.81.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/curl-sys/0.4.52+curl-7.81.0/download",
-          "sha256": "14b8c2d1023ea5fded5b7b892e4b8e95f70038a421126a056761a84246a28971"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "curl_sys",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "curl_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "http2",
-          "libnghttp2-sys",
-          "openssl-sys",
-          "ssl",
-          "static-curl"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "libnghttp2-sys 0.1.7+1.45.0",
-              "target": "libnghttp2_sys"
-            },
-            {
-              "id": "libz-sys 1.1.4",
-              "target": "libz_sys"
-            }
-          ],
-          "selects": {
-            "cfg(all(unix, not(target_os = \"macos\")))": [
-              {
-                "id": "openssl-sys 0.9.72",
-                "target": "openssl_sys"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "extra_deps": [
-          "@curl",
-          "@libssh2"
-        ],
-        "edition": "2018",
-        "version": "0.4.52+curl-7.81.0"
-      },
-      "license": "MIT"
-    },
-    "diff 0.1.12": {
-      "name": "diff",
-      "version": "0.1.12",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/diff/0.1.12/download",
-          "sha256": "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "diff",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "diff",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.12"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "digest 0.9.0": {
-      "name": "digest",
-      "version": "0.9.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/digest/0.9.0/download",
-          "sha256": "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "digest",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "digest",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "generic_array"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "direct-cargo-bazel-deps 0.0.1": {
-      "name": "direct-cargo-bazel-deps",
-      "version": "0.0.1",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "direct_cargo_bazel_deps",
-            "crate_root": ".direct_cargo_bazel_deps.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "direct_cargo_bazel_deps",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.0.1"
-      },
-      "license": null
-    },
-    "dirs-next 2.0.0": {
-      "name": "dirs-next",
-      "version": "2.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/dirs-next/2.0.0/download",
-          "sha256": "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "dirs_next",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "dirs_next",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "dirs-sys-next 0.1.2",
-              "target": "dirs_sys_next"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.0.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "dirs-sys-next 0.1.2": {
-      "name": "dirs-sys-next",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/dirs-sys-next/0.1.2/download",
-          "sha256": "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "dirs_sys_next",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "dirs_sys_next",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"redox\")": [
-              {
-                "id": "redox_users 0.4.0",
-                "target": "redox_users"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "either 1.6.1": {
-      "name": "either",
-      "version": "1.6.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/either/1.6.1/download",
-          "sha256": "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "either",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "either",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.6.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "ena 0.14.0": {
-      "name": "ena",
-      "version": "0.14.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ena/0.14.0/download",
-          "sha256": "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ena",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ena",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.14.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "encoding_rs 0.8.30": {
-      "name": "encoding_rs",
-      "version": "0.8.30",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/encoding_rs/0.8.30/download",
-          "sha256": "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "encoding_rs",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "encoding_rs",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "encoding_rs 0.8.30",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.30"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": null
-    },
-    "event-listener 2.5.2": {
-      "name": "event-listener",
-      "version": "2.5.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/event-listener/2.5.2/download",
-          "sha256": "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "event_listener",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "event_listener",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "2.5.2"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "fastrand 1.7.0": {
-      "name": "fastrand",
-      "version": "1.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fastrand/1.7.0/download",
-          "sha256": "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fastrand",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fastrand",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_arch = \"wasm32\")": [
-              {
-                "id": "instant 0.1.12",
-                "target": "instant"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "1.7.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "fixedbitset 0.2.0": {
-      "name": "fixedbitset",
-      "version": "0.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fixedbitset/0.2.0/download",
-          "sha256": "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fixedbitset",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fixedbitset",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "fnv 1.0.7": {
-      "name": "fnv",
-      "version": "1.0.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fnv/1.0.7/download",
-          "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fnv",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fnv",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "1.0.7"
-      },
-      "license": "Apache-2.0 / MIT"
-    },
-    "foreign-types 0.3.2": {
-      "name": "foreign-types",
-      "version": "0.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/foreign-types/0.3.2/download",
-          "sha256": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "foreign_types",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "foreign_types",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "foreign-types-shared 0.1.1",
-              "target": "foreign_types_shared"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "foreign-types-shared 0.1.1": {
-      "name": "foreign-types-shared",
-      "version": "0.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download",
-          "sha256": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "foreign_types_shared",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "foreign_types_shared",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "form_urlencoded 1.0.1": {
-      "name": "form_urlencoded",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
-          "sha256": "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "form_urlencoded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "form_urlencoded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "futures-channel 0.3.21": {
-      "name": "futures-channel",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-channel/0.3.21/download",
-          "sha256": "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_channel",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_channel",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-channel 0.3.21",
-              "target": "build_script_build"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-core 0.3.21": {
-      "name": "futures-core",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-core/0.3.21/download",
-          "sha256": "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-core 0.3.21",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-io 0.3.21": {
-      "name": "futures-io",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-io/0.3.21/download",
-          "sha256": "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_io",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_io",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-lite 1.12.0": {
-      "name": "futures-lite",
-      "version": "1.12.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-lite/1.12.0/download",
-          "sha256": "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_lite",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_lite",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "fastrand",
-          "futures-io",
-          "memchr",
-          "parking",
-          "std",
-          "waker-fn"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "fastrand 1.7.0",
-              "target": "fastrand"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-io 0.3.21",
-              "target": "futures_io"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "parking 2.0.0",
-              "target": "parking"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "waker-fn 1.1.0",
-              "target": "waker_fn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.12.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "futures-macro 0.3.21": {
-      "name": "futures-macro",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-macro/0.3.21/download",
-          "sha256": "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "futures_macro",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_macro",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-sink 0.3.21": {
-      "name": "futures-sink",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-sink/0.3.21/download",
-          "sha256": "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_sink",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_sink",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-task 0.3.21": {
-      "name": "futures-task",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-task/0.3.21/download",
-          "sha256": "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_task",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_task",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-task 0.3.21",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-util 0.3.21": {
-      "name": "futures-util",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-util/0.3.21/download",
-          "sha256": "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "async-await",
-          "async-await-macro",
-          "default",
-          "futures-io",
-          "futures-macro",
-          "io",
-          "memchr",
-          "slab",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-io 0.3.21",
-              "target": "futures_io"
-            },
-            {
-              "id": "futures-task 0.3.21",
-              "target": "futures_task"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "build_script_build"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "pin-utils 0.1.0",
-              "target": "pin_utils"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "futures-macro 0.3.21",
-              "target": "futures_macro"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "generic-array 0.14.5": {
-      "name": "generic-array",
-      "version": "0.14.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/generic-array/0.14.5/download",
-          "sha256": "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "generic_array",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "generic_array",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "generic-array 0.14.5",
-              "target": "build_script_build"
-            },
-            {
-              "id": "typenum 1.15.0",
-              "target": "typenum"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.14.5"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT"
-    },
-    "getrandom 0.2.5": {
-      "name": "getrandom",
-      "version": "0.2.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/getrandom/0.2.5/download",
-          "sha256": "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "getrandom",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "getrandom",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"wasi\")": [
-              {
-                "id": "wasi 0.10.2+wasi-snapshot-preview1",
-                "target": "wasi"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.2.5"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "gloo-timers 0.2.3": {
-      "name": "gloo-timers",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/gloo-timers/0.2.3/download",
-          "sha256": "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "gloo_timers",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "gloo_timers",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "futures",
-          "futures-channel",
-          "futures-core"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-channel 0.3.21",
-              "target": "futures_channel"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "js-sys 0.3.56",
-              "target": "js_sys"
-            },
-            {
-              "id": "wasm-bindgen 0.2.79",
-              "target": "wasm_bindgen"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "h2 0.3.11": {
-      "name": "h2",
-      "version": "0.3.11",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/h2/0.3.11/download",
-          "sha256": "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "h2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "h2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "fnv 1.0.7",
-              "target": "fnv"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-sink 0.3.21",
-              "target": "futures_sink"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "indexmap"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tokio-util 0.6.9",
-              "target": "tokio_util"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.11"
-      },
-      "license": "MIT"
-    },
-    "hashbrown 0.11.2": {
-      "name": "hashbrown",
-      "version": "0.11.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hashbrown/0.11.2/download",
-          "sha256": "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hashbrown",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hashbrown",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "raw"
-        ],
-        "edition": "2018",
-        "version": "0.11.2"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "hex-literal 0.3.4": {
-      "name": "hex-literal",
-      "version": "0.3.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hex-literal/0.3.4/download",
-          "sha256": "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "hex_literal",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hex_literal",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "http 0.2.6": {
-      "name": "http",
-      "version": "0.2.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/http/0.2.6/download",
-          "sha256": "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "http",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "http",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "fnv 1.0.7",
-              "target": "fnv"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.6"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "http-body 0.4.4": {
-      "name": "http-body",
-      "version": "0.4.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/http-body/0.4.4/download",
-          "sha256": "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "http_body",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "http_body",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.4"
-      },
-      "license": "MIT"
-    },
-    "httparse 1.6.0": {
-      "name": "httparse",
-      "version": "1.6.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/httparse/1.6.0/download",
-          "sha256": "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "httparse",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "httparse",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "httparse 1.6.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.6.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "httpdate 1.0.2": {
-      "name": "httpdate",
-      "version": "1.0.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/httpdate/1.0.2/download",
-          "sha256": "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "httpdate",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "httpdate",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "httpmock 0.6.6": {
-      "name": "httpmock",
-      "version": "0.6.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/httpmock/0.6.6/download",
-          "sha256": "c159c4fc205e6c1a9b325cb7ec135d13b5f47188ce175dabb76ec847f331d9bd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "httpmock",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "httpmock",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "httpmock",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "basic-cookies",
-          "cookies",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "assert-json-diff 2.0.1",
-              "target": "assert_json_diff"
-            },
-            {
-              "id": "async-object-pool 0.1.4",
-              "target": "async_object_pool"
-            },
-            {
-              "id": "base64 0.13.0",
-              "target": "base64"
-            },
-            {
-              "id": "basic-cookies 0.1.4",
-              "target": "basic_cookies"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "crossbeam_utils"
-            },
-            {
-              "id": "form_urlencoded 1.0.1",
-              "target": "form_urlencoded"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "hyper 0.14.17",
-              "target": "hyper"
-            },
-            {
-              "id": "isahc 1.6.0",
-              "target": "isahc"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "levenshtein 1.0.5",
-              "target": "levenshtein"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "serde_regex 1.1.0",
-              "target": "serde_regex"
-            },
-            {
-              "id": "similar 2.1.0",
-              "target": "similar"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "url 2.2.2",
-              "target": "url"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "async-trait 0.1.52",
-              "target": "async_trait"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.6.6"
-      },
-      "license": "MIT"
-    },
-    "hyper 0.14.17": {
-      "name": "hyper",
-      "version": "0.14.17",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hyper/0.14.17/download",
-          "sha256": "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hyper",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hyper",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "client",
-          "default",
-          "h2",
-          "http1",
-          "http2",
-          "runtime",
-          "server",
-          "socket2",
-          "tcp"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-channel 0.3.21",
-              "target": "futures_channel"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "h2 0.3.11",
-              "target": "h2"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "http-body 0.4.4",
-              "target": "http_body"
-            },
-            {
-              "id": "httparse 1.6.0",
-              "target": "httparse"
-            },
-            {
-              "id": "httpdate 1.0.2",
-              "target": "httpdate"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tower-service 0.3.1",
-              "target": "tower_service"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            },
-            {
-              "id": "want 0.3.0",
-              "target": "want"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.14.17"
-      },
-      "license": "MIT"
-    },
-    "hyper-tls 0.5.0": {
-      "name": "hyper-tls",
-      "version": "0.5.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hyper-tls/0.5.0/download",
-          "sha256": "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hyper_tls",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hyper_tls",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "hyper 0.14.17",
-              "target": "hyper"
-            },
-            {
-              "id": "native-tls 0.2.8",
-              "target": "native_tls"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tokio-native-tls 0.3.0",
-              "target": "tokio_native_tls"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.5.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "idna 0.2.3": {
-      "name": "idna",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/idna/0.2.3/download",
-          "sha256": "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "idna",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "idna",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "unicode-bidi 0.3.7",
-              "target": "unicode_bidi"
-            },
-            {
-              "id": "unicode-normalization 0.1.19",
-              "target": "unicode_normalization"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "indexmap 1.8.0": {
-      "name": "indexmap",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/indexmap/1.8.0/download",
-          "sha256": "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "indexmap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "indexmap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "hashbrown 0.11.2",
-              "target": "hashbrown"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "instant 0.1.12": {
-      "name": "instant",
-      "version": "0.1.12",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/instant/0.1.12/download",
-          "sha256": "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "instant",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "instant",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.12"
-      },
-      "license": "BSD-3-Clause"
-    },
-    "ipnet 2.4.0": {
-      "name": "ipnet",
-      "version": "2.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ipnet/2.4.0/download",
-          "sha256": "35e70ee094dc02fd9c13fdad4940090f22dbd6ac7c9e7094a46cf0232a50bc7c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ipnet",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ipnet",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "2.4.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "isahc 1.6.0": {
-      "name": "isahc",
-      "version": "1.6.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/isahc/1.6.0/download",
-          "sha256": "d140e84730d325378912ede32d7cd53ef1542725503b3353e5ec8113c7c6f588"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "isahc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "isahc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "encoding_rs",
-          "http2",
-          "mime",
-          "static-curl",
-          "text-decoding"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-channel 1.6.1",
-              "target": "async_channel"
-            },
-            {
-              "id": "castaway 0.1.2",
-              "target": "castaway"
-            },
-            {
-              "id": "crossbeam-utils 0.8.7",
-              "target": "crossbeam_utils"
-            },
-            {
-              "id": "curl 0.4.42",
-              "target": "curl"
-            },
-            {
-              "id": "curl-sys 0.4.52+curl-7.81.0",
-              "target": "curl_sys"
-            },
-            {
-              "id": "encoding_rs 0.8.30",
-              "target": "encoding_rs"
-            },
-            {
-              "id": "event-listener 2.5.2",
-              "target": "event_listener"
-            },
-            {
-              "id": "futures-lite 1.12.0",
-              "target": "futures_lite"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "isahc 1.6.0",
-              "target": "build_script_build"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "mime 0.3.16",
-              "target": "mime"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "polling 2.2.0",
-              "target": "polling"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            },
-            {
-              "id": "sluice 0.5.5",
-              "target": "sluice"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            },
-            {
-              "id": "tracing-futures 0.2.5",
-              "target": "tracing_futures"
-            },
-            {
-              "id": "url 2.2.2",
-              "target": "url"
-            },
-            {
-              "id": "waker-fn 1.1.0",
-              "target": "waker_fn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.6.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT"
-    },
-    "itertools 0.10.3": {
-      "name": "itertools",
-      "version": "0.10.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/itertools/0.10.3/download",
-          "sha256": "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "itertools",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "itertools",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "use_alloc",
-          "use_std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "either 1.6.1",
-              "target": "either"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "itoa 1.0.1": {
-      "name": "itoa",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/itoa/1.0.1/download",
-          "sha256": "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "itoa",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "itoa",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "js-sys 0.3.56": {
-      "name": "js-sys",
-      "version": "0.3.56",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/js-sys/0.3.56/download",
-          "sha256": "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "js_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "js_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "wasm-bindgen 0.2.79",
-              "target": "wasm_bindgen"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.56"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "kv-log-macro 1.0.7": {
-      "name": "kv-log-macro",
-      "version": "1.0.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/kv-log-macro/1.0.7/download",
-          "sha256": "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "kv_log_macro",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "kv_log_macro",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.7"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "lalrpop 0.19.7": {
-      "name": "lalrpop",
-      "version": "0.19.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lalrpop/0.19.7/download",
-          "sha256": "852b75a095da6b69da8c5557731c3afd06525d4f655a4fc1c799e2ec8bc4dce4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lalrpop",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "Binary": {
-            "crate_name": "lalrpop",
-            "crate_root": "src/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lalrpop",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lexer",
-          "pico-args"
-        ],
-        "data_glob": [
-          "**/*.lalrpop"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ascii-canvas 3.0.0",
-              "target": "ascii_canvas"
-            },
-            {
-              "id": "atty 0.2.14",
-              "target": "atty"
-            },
-            {
-              "id": "bit-set 0.5.2",
-              "target": "bit_set"
-            },
-            {
-              "id": "diff 0.1.12",
-              "target": "diff"
-            },
-            {
-              "id": "ena 0.14.0",
-              "target": "ena"
-            },
-            {
-              "id": "itertools 0.10.3",
-              "target": "itertools"
-            },
-            {
-              "id": "lalrpop-util 0.19.7",
-              "target": "lalrpop_util"
-            },
-            {
-              "id": "petgraph 0.5.1",
-              "target": "petgraph"
-            },
-            {
-              "id": "pico-args 0.4.2",
-              "target": "pico_args"
-            },
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "regex-syntax 0.6.25",
-              "target": "regex_syntax"
-            },
-            {
-              "id": "string_cache 0.8.3",
-              "target": "string_cache"
-            },
-            {
-              "id": "term 0.7.0",
-              "target": "term"
-            },
-            {
-              "id": "tiny-keccak 2.0.2",
-              "target": "tiny_keccak"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.19.7"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "lalrpop-util 0.19.7": {
-      "name": "lalrpop-util",
-      "version": "0.19.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lalrpop-util/0.19.7/download",
-          "sha256": "d6d265705249fe209280676d8f68887859fa42e1d34f342fc05bd47726a5e188"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lalrpop_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lalrpop_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lexer",
-          "regex",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.19.7"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "lazy_static 1.4.0": {
-      "name": "lazy_static",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lazy_static",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lazy_static",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "levenshtein 1.0.5": {
-      "name": "levenshtein",
-      "version": "1.0.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/levenshtein/1.0.5/download",
-          "sha256": "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "levenshtein",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "levenshtein",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.0.5"
-      },
-      "license": "MIT"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "libnghttp2-sys 0.1.7+1.45.0": {
-      "name": "libnghttp2-sys",
-      "version": "0.1.7+1.45.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libnghttp2-sys/0.1.7+1.45.0/download",
-          "sha256": "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libnghttp2_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libnghttp2_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "data_glob": [
-          "nghttp2/**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "libnghttp2-sys 0.1.7+1.45.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.7+1.45.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**",
-          "nghttp2/**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cc 1.0.73",
-              "target": "cc"
-            }
-          ],
-          "selects": {}
-        },
-        "links": "nghttp2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libz-sys 1.1.4": {
-      "name": "libz-sys",
-      "version": "1.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libz-sys/1.1.4/download",
-          "sha256": "df2bf61678a0a521c3f7daf815d2e6717d85a272a7dcd02c9768272b32bd1e2a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libz_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libz_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "libc"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "libz-sys 1.1.4",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.1.4"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cc 1.0.73",
-              "target": "cc"
-            },
-            {
-              "id": "pkg-config 0.3.24",
-              "target": "pkg_config"
-            }
-          ],
-          "selects": {
-            "cfg(target_env = \"msvc\")": [
-              {
-                "id": "vcpkg 0.2.15",
-                "target": "vcpkg"
-              }
-            ]
-          }
-        },
-        "links": "z"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "lock_api 0.4.6": {
-      "name": "lock_api",
-      "version": "0.4.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lock_api/0.4.6/download",
-          "sha256": "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lock_api",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lock_api",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "scopeguard 1.1.0",
-              "target": "scopeguard"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.6"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "log 0.4.14": {
-      "name": "log",
-      "version": "0.4.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/log/0.4.14/download",
-          "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "kv_unstable",
-          "value-bag"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "build_script_build"
-            },
-            {
-              "id": "value-bag 1.0.0-alpha.8",
-              "target": "value_bag"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "matches 0.1.9": {
-      "name": "matches",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/matches/0.1.9/download",
-          "sha256": "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "matches",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "matches",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT"
-    },
-    "md-5 0.9.1": {
-      "name": "md-5",
-      "version": "0.9.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/md-5/0.9.1/download",
-          "sha256": "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "md5",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "md5",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "block-buffer 0.9.0",
-              "target": "block_buffer"
-            },
-            {
-              "id": "digest 0.9.0",
-              "target": "digest"
-            },
-            {
-              "id": "opaque-debug 0.3.0",
-              "target": "opaque_debug"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.9.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "memchr 2.4.1": {
-      "name": "memchr",
-      "version": "2.4.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-          "sha256": "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "memchr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "memchr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.4.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Unlicense/MIT"
-    },
-    "mime 0.3.16": {
-      "name": "mime",
-      "version": "0.3.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/mime/0.3.16/download",
-          "sha256": "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "mime",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "mime",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.16"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "mio 0.8.0": {
-      "name": "mio",
-      "version": "0.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/mio/0.8.0/download",
-          "sha256": "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "mio",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "mio",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "net",
-          "os-ext",
-          "os-poll"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "miow 0.3.7",
-                "target": "miow"
-              },
-              {
-                "id": "ntapi 0.3.7",
-                "target": "ntapi"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.0"
-      },
-      "license": "MIT"
-    },
-    "miow 0.3.7": {
-      "name": "miow",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/miow/0.3.7/download",
-          "sha256": "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "miow",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "miow",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "native-tls 0.2.8": {
-      "name": "native-tls",
-      "version": "0.2.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/native-tls/0.2.8/download",
-          "sha256": "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "native_tls",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "native_tls",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "native-tls 0.2.8",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "cfg(any(target_os = \"macos\", target_os = \"ios\"))": [
-              {
-                "id": "lazy_static 1.4.0",
-                "target": "lazy_static"
-              },
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              },
-              {
-                "id": "security-framework 2.6.1",
-                "target": "security_framework"
-              },
-              {
-                "id": "security-framework-sys 2.6.1",
-                "target": "security_framework_sys"
-              },
-              {
-                "id": "tempfile 3.3.0",
-                "target": "tempfile"
-              }
-            ],
-            "cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))": [
-              {
-                "id": "log 0.4.14",
-                "target": "log"
-              },
-              {
-                "id": "openssl 0.10.38",
-                "target": "openssl"
-              },
-              {
-                "id": "openssl-probe 0.1.5",
-                "target": "openssl_probe"
-              },
-              {
-                "id": "openssl-sys 0.9.72",
-                "target": "openssl_sys"
-              }
-            ],
-            "cfg(target_os = \"windows\")": [
-              {
-                "id": "schannel 0.1.19",
-                "target": "schannel"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.2.8"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "new_debug_unreachable 1.0.4": {
-      "name": "new_debug_unreachable",
-      "version": "1.0.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/new_debug_unreachable/1.0.4/download",
-          "sha256": "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "debug_unreachable",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "debug_unreachable",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.4"
-      },
-      "license": "MIT"
-    },
-    "ntapi 0.3.7": {
-      "name": "ntapi",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ntapi/0.3.7/download",
-          "sha256": "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ntapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ntapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "user"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ntapi 0.3.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "num_cpus 1.13.1": {
-      "name": "num_cpus",
-      "version": "1.13.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
-          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_cpus",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_cpus",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(not(windows))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "1.13.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "once_cell 1.10.0": {
-      "name": "once_cell",
-      "version": "1.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/once_cell/1.10.0/download",
-          "sha256": "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "once_cell",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "once_cell",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "race",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.10.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "opaque-debug 0.3.0": {
-      "name": "opaque-debug",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/opaque-debug/0.3.0/download",
-          "sha256": "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "opaque_debug",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "opaque_debug",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "openssl 0.10.38": {
-      "name": "openssl",
-      "version": "0.10.38",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/openssl/0.10.38/download",
-          "sha256": "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "openssl",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "openssl",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "foreign-types 0.3.2",
-              "target": "foreign_types"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "openssl 0.10.38",
-              "target": "build_script_build"
-            },
-            {
-              "id": "openssl-sys 0.9.72",
-              "target": "openssl_sys",
-              "alias": "ffi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.38"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "openssl-sys 0.9.72",
-              "target": "openssl_sys",
-              "alias": "ffi"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0"
-    },
-    "openssl-probe 0.1.5": {
-      "name": "openssl-probe",
-      "version": "0.1.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/openssl-probe/0.1.5/download",
-          "sha256": "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "openssl_probe",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "openssl_probe",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.5"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "openssl-sys 0.9.72": {
-      "name": "openssl-sys",
-      "version": "0.9.72",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/openssl-sys/0.9.72/download",
-          "sha256": "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "openssl_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_main",
-            "crate_root": "build/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "openssl_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "data": {
-          "common": [
-            "@openssl"
-          ],
-          "selects": {}
-        },
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "openssl-sys 0.9.72",
-              "target": "build_script_main"
-            }
-          ],
-          "selects": {}
-        },
-        "extra_deps": [
-          "@openssl"
-        ],
-        "edition": "2015",
-        "version": "0.9.72"
-      },
-      "build_script_attrs": {
-        "data": {
-          "common": [
-            "@openssl//:gen_dir",
-            "@openssl//:openssl"
-          ],
-          "selects": {}
-        },
-        "data_glob": [
-          "**",
-          "build/**/*.c"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            },
-            {
-              "id": "cc 1.0.73",
-              "target": "cc"
-            },
-            {
-              "id": "pkg-config 0.3.24",
-              "target": "pkg_config"
-            }
-          ],
-          "selects": {
-            "cfg(target_env = \"msvc\")": [
-              {
-                "id": "vcpkg 0.2.15",
-                "target": "vcpkg"
-              }
-            ]
-          }
-        },
-        "build_script_env": {
-          "common": {
-            "OPENSSL_DIR": "$(execpath @openssl//:gen_dir)",
-            "OPENSSL_STATIC": "1"
-          },
-          "selects": {}
-        },
-        "links": "openssl"
-      },
-      "license": "MIT"
-    },
-    "parking 2.0.0": {
-      "name": "parking",
-      "version": "2.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parking/2.0.0/download",
-          "sha256": "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parking",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parking",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "2.0.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "parking_lot 0.11.2": {
-      "name": "parking_lot",
-      "version": "0.11.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parking_lot/0.11.2/download",
-          "sha256": "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parking_lot",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parking_lot",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "instant 0.1.12",
-              "target": "instant"
-            },
-            {
-              "id": "lock_api 0.4.6",
-              "target": "lock_api"
-            },
-            {
-              "id": "parking_lot_core 0.8.5",
-              "target": "parking_lot_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.11.2"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "parking_lot_core 0.8.5": {
-      "name": "parking_lot_core",
-      "version": "0.8.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parking_lot_core/0.8.5/download",
-          "sha256": "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parking_lot_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parking_lot_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "instant 0.1.12",
-              "target": "instant"
-            },
-            {
-              "id": "parking_lot_core 0.8.5",
-              "target": "build_script_build"
-            },
-            {
-              "id": "smallvec 1.8.0",
-              "target": "smallvec"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"redox\")": [
-              {
-                "id": "redox_syscall 0.2.11",
-                "target": "syscall"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.5"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "percent-encoding 2.1.0": {
-      "name": "percent-encoding",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
-          "sha256": "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "percent_encoding",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "percent_encoding",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "2.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "petgraph 0.5.1": {
-      "name": "petgraph",
-      "version": "0.5.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/petgraph/0.5.1/download",
-          "sha256": "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "petgraph",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "petgraph",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "fixedbitset 0.2.0",
-              "target": "fixedbitset"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "indexmap"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.5.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "phf_shared 0.10.0": {
-      "name": "phf_shared",
-      "version": "0.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/phf_shared/0.10.0/download",
-          "sha256": "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "phf_shared",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "phf_shared",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "siphasher 0.3.10",
-              "target": "siphasher"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.10.0"
-      },
-      "license": "MIT"
-    },
-    "pico-args 0.4.2": {
-      "name": "pico-args",
-      "version": "0.4.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pico-args/0.4.2/download",
-          "sha256": "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pico_args",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pico_args",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.4.2"
-      },
-      "license": "MIT"
-    },
-    "pin-project 1.0.10": {
-      "name": "pin-project",
-      "version": "1.0.10",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project/1.0.10/download",
-          "sha256": "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_project",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "pin-project-internal 1.0.10",
-              "target": "pin_project_internal"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.10"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-project-internal 1.0.10": {
-      "name": "pin-project-internal",
-      "version": "1.0.10",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-internal/1.0.10/download",
-          "sha256": "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "pin_project_internal",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project_internal",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.10"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-project-lite 0.2.8": {
-      "name": "pin-project-lite",
-      "version": "0.2.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download",
-          "sha256": "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_project_lite",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project_lite",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.2.8"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-utils 0.1.0": {
-      "name": "pin-utils",
-      "version": "0.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-utils/0.1.0/download",
-          "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_utils",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_utils",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "pkg-config 0.3.24": {
-      "name": "pkg-config",
-      "version": "0.3.24",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pkg-config/0.3.24/download",
-          "sha256": "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pkg_config",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pkg_config",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.24"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pkg_a 0.1.0": {
-      "name": "pkg_a",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pkg_a",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pkg_a",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "anyhow 1.0.55",
-              "target": "anyhow"
-            },
-            {
-              "id": "reqwest 0.11.9",
-              "target": "reqwest"
-            }
-          ],
-          "selects": {}
-        },
-        "deps_dev": {
-          "common": [
-            {
-              "id": "httpmock 0.6.6",
-              "target": "httpmock"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "pkg_b 0.1.0": {
-      "name": "pkg_b",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pkg_b",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pkg_b",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "openssl 0.10.38",
-              "target": "openssl"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "pkg_c 0.1.0": {
-      "name": "pkg_c",
-      "version": "0.1.0",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pkg_c",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pkg_c",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "md-5 0.9.1",
-              "target": "md5"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps_dev": {
-          "common": [
-            {
-              "id": "hex-literal 0.3.4",
-              "target": "hex_literal"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.1.0"
-      },
-      "license": null
-    },
-    "polling 2.2.0": {
-      "name": "polling",
-      "version": "2.2.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/polling/2.2.0/download",
-          "sha256": "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "polling",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "polling",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {
-            "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "wepoll-ffi 0.1.2",
-                "target": "wepoll_ffi"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "2.2.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "precomputed-hash 0.1.1": {
-      "name": "precomputed-hash",
-      "version": "0.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/precomputed-hash/0.1.1/download",
-          "sha256": "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "precomputed_hash",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "precomputed_hash",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.1"
-      },
-      "license": "MIT"
-    },
-    "proc-macro2 1.0.36": {
-      "name": "proc-macro2",
-      "version": "1.0.36",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.36/download",
-          "sha256": "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.36"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "quote 1.0.15": {
-      "name": "quote",
-      "version": "1.0.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.15/download",
-          "sha256": "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "quote",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "quote",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.15"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "redox_syscall 0.2.11": {
-      "name": "redox_syscall",
-      "version": "0.2.11",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/redox_syscall/0.2.11/download",
-          "sha256": "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syscall",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syscall",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.11"
-      },
-      "license": "MIT"
-    },
-    "redox_users 0.4.0": {
-      "name": "redox_users",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/redox_users/0.4.0/download",
-          "sha256": "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "redox_users",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "redox_users",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "getrandom 0.2.5",
-              "target": "getrandom"
-            },
-            {
-              "id": "redox_syscall 0.2.11",
-              "target": "syscall"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.0"
-      },
-      "license": "MIT"
-    },
-    "regex 1.5.4": {
-      "name": "regex",
-      "version": "1.5.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex/1.5.4/download",
-          "sha256": "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "aho-corasick",
-          "default",
-          "memchr",
-          "perf",
-          "perf-cache",
-          "perf-dfa",
-          "perf-inline",
-          "perf-literal",
-          "std",
-          "unicode",
-          "unicode-age",
-          "unicode-bool",
-          "unicode-case",
-          "unicode-gencat",
-          "unicode-perl",
-          "unicode-script",
-          "unicode-segment"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "aho-corasick 0.7.18",
-              "target": "aho_corasick"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "regex-syntax 0.6.25",
-              "target": "regex_syntax"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "regex-syntax 0.6.25": {
-      "name": "regex-syntax",
-      "version": "0.6.25",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-          "sha256": "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "regex_syntax",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "regex_syntax",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "unicode",
-          "unicode-age",
-          "unicode-bool",
-          "unicode-case",
-          "unicode-gencat",
-          "unicode-perl",
-          "unicode-script",
-          "unicode-segment"
-        ],
-        "edition": "2018",
-        "version": "0.6.25"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "remove_dir_all 0.5.3": {
-      "name": "remove_dir_all",
-      "version": "0.5.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download",
-          "sha256": "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "remove_dir_all",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "remove_dir_all",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.5.3"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "reqwest 0.11.9": {
-      "name": "reqwest",
-      "version": "0.11.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/reqwest/0.11.9/download",
-          "sha256": "87f242f1488a539a79bac6dbe7c8609ae43b7914b7736210f239a37cccb32525"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "reqwest",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "reqwest",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "__tls",
-          "blocking",
-          "default",
-          "default-tls",
-          "hyper-tls",
-          "json",
-          "native-tls-crate",
-          "serde_json",
-          "tokio-native-tls"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "serde_urlencoded 0.7.1",
-              "target": "serde_urlencoded"
-            },
-            {
-              "id": "url 2.2.2",
-              "target": "url"
-            }
-          ],
-          "selects": {
-            "cfg(not(target_arch = \"wasm32\"))": [
-              {
-                "id": "base64 0.13.0",
-                "target": "base64"
-              },
-              {
-                "id": "encoding_rs 0.8.30",
-                "target": "encoding_rs"
-              },
-              {
-                "id": "futures-core 0.3.21",
-                "target": "futures_core"
-              },
-              {
-                "id": "futures-util 0.3.21",
-                "target": "futures_util"
-              },
-              {
-                "id": "h2 0.3.11",
-                "target": "h2"
-              },
-              {
-                "id": "http-body 0.4.4",
-                "target": "http_body"
-              },
-              {
-                "id": "hyper 0.14.17",
-                "target": "hyper"
-              },
-              {
-                "id": "hyper-tls 0.5.0",
-                "target": "hyper_tls"
-              },
-              {
-                "id": "ipnet 2.4.0",
-                "target": "ipnet"
-              },
-              {
-                "id": "lazy_static 1.4.0",
-                "target": "lazy_static"
-              },
-              {
-                "id": "log 0.4.14",
-                "target": "log"
-              },
-              {
-                "id": "mime 0.3.16",
-                "target": "mime"
-              },
-              {
-                "id": "native-tls 0.2.8",
-                "target": "native_tls",
-                "alias": "native_tls_crate"
-              },
-              {
-                "id": "percent-encoding 2.1.0",
-                "target": "percent_encoding"
-              },
-              {
-                "id": "pin-project-lite 0.2.8",
-                "target": "pin_project_lite"
-              },
-              {
-                "id": "tokio 1.17.0",
-                "target": "tokio"
-              },
-              {
-                "id": "tokio-native-tls 0.3.0",
-                "target": "tokio_native_tls"
-              }
-            ],
-            "cfg(target_arch = \"wasm32\")": [
-              {
-                "id": "js-sys 0.3.56",
-                "target": "js_sys"
-              },
-              {
-                "id": "serde_json 1.0.79",
-                "target": "serde_json"
-              },
-              {
-                "id": "wasm-bindgen 0.2.79",
-                "target": "wasm_bindgen"
-              },
-              {
-                "id": "wasm-bindgen-futures 0.4.29",
-                "target": "wasm_bindgen_futures"
-              },
-              {
-                "id": "web-sys 0.3.56",
-                "target": "web_sys"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winreg 0.7.0",
-                "target": "winreg"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.11.9"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "rustversion 1.0.6": {
-      "name": "rustversion",
-      "version": "1.0.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/rustversion/1.0.6/download",
-          "sha256": "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "rustversion",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build/build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "rustversion",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "rustversion 1.0.6",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.6"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "ryu 1.0.9": {
-      "name": "ryu",
-      "version": "1.0.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ryu/1.0.9/download",
-          "sha256": "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ryu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ryu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.9"
-      },
-      "license": "Apache-2.0 OR BSL-1.0"
-    },
-    "schannel 0.1.19": {
-      "name": "schannel",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/schannel/0.1.19/download",
-          "sha256": "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "schannel",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "schannel",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.1.19"
-      },
-      "license": "MIT"
-    },
-    "scopeguard 1.1.0": {
-      "name": "scopeguard",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
-          "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "scopeguard",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "scopeguard",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "security-framework 2.6.1": {
-      "name": "security-framework",
-      "version": "2.6.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/security-framework/2.6.1/download",
-          "sha256": "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "security_framework",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "security_framework",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "OSX_10_9",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "core-foundation 0.9.3",
-              "target": "core_foundation"
-            },
-            {
-              "id": "core-foundation-sys 0.8.3",
-              "target": "core_foundation_sys"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "security-framework-sys 2.6.1",
-              "target": "security_framework_sys"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.6.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "security-framework-sys 2.6.1": {
-      "name": "security-framework-sys",
-      "version": "2.6.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/security-framework-sys/2.6.1/download",
-          "sha256": "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "security_framework_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "security_framework_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "OSX_10_9",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "core-foundation-sys 0.8.3",
-              "target": "core_foundation_sys"
-            },
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.6.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde 1.0.136": {
-      "name": "serde",
-      "version": "1.0.136",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde/1.0.136/download",
-          "sha256": "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "derive",
-          "serde_derive",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "serde_derive"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.136"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_derive 1.0.136": {
-      "name": "serde_derive",
-      "version": "1.0.136",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_derive/1.0.136/download",
-          "sha256": "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "serde_derive",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_derive",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "serde_derive 1.0.136",
-              "target": "build_script_build"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.0.136"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_json 1.0.79": {
-      "name": "serde_json",
-      "version": "1.0.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_json/1.0.79/download",
-          "sha256": "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_json",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_json",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "ryu 1.0.9",
-              "target": "ryu"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.79"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_regex 1.1.0": {
-      "name": "serde_regex",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_regex/1.1.0/download",
-          "sha256": "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_regex",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_regex",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "regex 1.5.4",
-              "target": "regex"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "serde_urlencoded 0.7.1": {
-      "name": "serde_urlencoded",
-      "version": "0.7.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_urlencoded/0.7.1/download",
-          "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_urlencoded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_urlencoded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "form_urlencoded 1.0.1",
-              "target": "form_urlencoded"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "ryu 1.0.9",
-              "target": "ryu"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "signal-hook 0.3.13": {
-      "name": "signal-hook",
-      "version": "0.3.13",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/signal-hook/0.3.13/download",
-          "sha256": "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "signal_hook",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "signal_hook",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "channel",
-          "iterator"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            },
-            {
-              "id": "signal-hook 0.3.13",
-              "target": "build_script_build"
-            },
-            {
-              "id": "signal-hook-registry 1.4.0",
-              "target": "signal_hook_registry"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.13"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "signal-hook-registry 1.4.0": {
-      "name": "signal-hook-registry",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/signal-hook-registry/1.4.0/download",
-          "sha256": "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "signal_hook_registry",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "signal_hook_registry",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "similar 2.1.0": {
-      "name": "similar",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/similar/2.1.0/download",
-          "sha256": "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "similar",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "similar",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "text"
-        ],
-        "edition": "2018",
-        "version": "2.1.0"
-      },
-      "license": "Apache-2.0"
-    },
-    "siphasher 0.3.10": {
-      "name": "siphasher",
-      "version": "0.3.10",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/siphasher/0.3.10/download",
-          "sha256": "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "siphasher",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "siphasher",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.10"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "slab 0.4.5": {
-      "name": "slab",
-      "version": "0.4.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/slab/0.4.5/download",
-          "sha256": "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "slab",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "slab",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.4.5"
-      },
-      "license": "MIT"
-    },
-    "sluice 0.5.5": {
-      "name": "sluice",
-      "version": "0.5.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/sluice/0.5.5/download",
-          "sha256": "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "sluice",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "sluice",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-channel 1.6.1",
-              "target": "async_channel"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-io 0.3.21",
-              "target": "futures_io"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.5.5"
-      },
-      "license": "MIT"
-    },
-    "smallvec 1.8.0": {
-      "name": "smallvec",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smallvec/1.8.0/download",
-          "sha256": "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smallvec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smallvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "socket2 0.4.4": {
-      "name": "socket2",
-      "version": "0.4.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/socket2/0.4.4/download",
-          "sha256": "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "socket2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "socket2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "all"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.4.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "string_cache 0.8.3": {
-      "name": "string_cache",
-      "version": "0.8.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/string_cache/0.8.3/download",
-          "sha256": "33994d0838dc2d152d17a62adf608a869b5e846b65b389af7f3dbc1de45c5b26"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "string_cache",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "string_cache",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "new_debug_unreachable 1.0.4",
-              "target": "debug_unreachable"
-            },
-            {
-              "id": "parking_lot 0.11.2",
-              "target": "parking_lot"
-            },
-            {
-              "id": "phf_shared 0.10.0",
-              "target": "phf_shared"
-            },
-            {
-              "id": "precomputed-hash 0.1.1",
-              "target": "precomputed_hash"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.8.3"
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "syn 1.0.86": {
-      "name": "syn",
-      "version": "1.0.86",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.86/download",
-          "sha256": "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clone-impls",
-          "default",
-          "derive",
-          "extra-traits",
-          "full",
-          "parsing",
-          "printing",
-          "proc-macro",
-          "quote",
-          "visit",
-          "visit-mut"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.86"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "tempfile 3.3.0": {
-      "name": "tempfile",
-      "version": "3.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tempfile/3.3.0/download",
-          "sha256": "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tempfile",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tempfile",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "fastrand 1.7.0",
-              "target": "fastrand"
-            },
-            {
-              "id": "remove_dir_all 0.5.3",
-              "target": "remove_dir_all"
-            }
-          ],
-          "selects": {
-            "cfg(any(unix, target_os = \"wasi\"))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(target_os = \"redox\")": [
-              {
-                "id": "redox_syscall 0.2.11",
-                "target": "syscall"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "3.3.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "term 0.7.0": {
-      "name": "term",
-      "version": "0.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/term/0.7.0/download",
-          "sha256": "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "term",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "term",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "dirs-next 2.0.0",
-              "target": "dirs_next"
-            }
-          ],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [],
-          "selects": {
-            "cfg(windows)": [
-              {
-                "id": "rustversion 1.0.6",
-                "target": "rustversion"
-              }
-            ]
-          }
-        },
-        "version": "0.7.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "tiny-keccak 2.0.2": {
-      "name": "tiny-keccak",
-      "version": "2.0.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tiny-keccak/2.0.2/download",
-          "sha256": "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tiny_keccak",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tiny_keccak",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "sha3"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "crunchy 0.2.2",
-              "target": "crunchy"
-            },
-            {
-              "id": "tiny-keccak 2.0.2",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.0.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "CC0-1.0"
-    },
-    "tinyvec 1.5.1": {
-      "name": "tinyvec",
-      "version": "1.5.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tinyvec/1.5.1/download",
-          "sha256": "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tinyvec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tinyvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "tinyvec_macros"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "tinyvec_macros 0.1.0",
-              "target": "tinyvec_macros"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.5.1"
-      },
-      "license": "Zlib OR Apache-2.0 OR MIT"
-    },
-    "tinyvec_macros 0.1.0": {
-      "name": "tinyvec_macros",
-      "version": "0.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download",
-          "sha256": "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tinyvec_macros",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tinyvec_macros",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": "MIT OR Apache-2.0 OR Zlib"
-    },
-    "tokio 1.17.0": {
-      "name": "tokio",
-      "version": "1.17.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio/1.17.0/download",
-          "sha256": "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "bytes",
-          "default",
-          "io-util",
-          "libc",
-          "macros",
-          "memchr",
-          "mio",
-          "net",
-          "num_cpus",
-          "once_cell",
-          "rt",
-          "rt-multi-thread",
-          "signal",
-          "signal-hook-registry",
-          "socket2",
-          "sync",
-          "time",
-          "tokio-macros",
-          "winapi"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "mio 0.8.0",
-              "target": "mio"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              },
-              {
-                "id": "signal-hook-registry 1.4.0",
-                "target": "signal_hook_registry"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "tokio-macros 1.7.0",
-              "target": "tokio_macros"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.17.0"
-      },
-      "license": "MIT"
-    },
-    "tokio-macros 1.7.0": {
-      "name": "tokio-macros",
-      "version": "1.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-macros/1.7.0/download",
-          "sha256": "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "tokio_macros",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_macros",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.7.0"
-      },
-      "license": "MIT"
-    },
-    "tokio-native-tls 0.3.0": {
-      "name": "tokio-native-tls",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-native-tls/0.3.0/download",
-          "sha256": "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio_native_tls",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_native_tls",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "native-tls 0.2.8",
-              "target": "native_tls"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "tokio-util 0.6.9": {
-      "name": "tokio-util",
-      "version": "0.6.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-util/0.6.9/download",
-          "sha256": "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "codec",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-sink 0.3.21",
-              "target": "futures_sink"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.6.9"
-      },
-      "license": "MIT"
-    },
-    "tower-service 0.3.1": {
-      "name": "tower-service",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tower-service/0.3.1/download",
-          "sha256": "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tower_service",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tower_service",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "tracing 0.1.31": {
-      "name": "tracing",
-      "version": "0.1.31",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing/0.1.31/download",
-          "sha256": "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "attributes",
-          "default",
-          "log",
-          "std",
-          "tracing-attributes"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tracing-core 0.1.22",
-              "target": "tracing_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "tracing-attributes 0.1.19",
-              "target": "tracing_attributes"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.1.31"
-      },
-      "license": "MIT"
-    },
-    "tracing-attributes 0.1.19": {
-      "name": "tracing-attributes",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.19/download",
-          "sha256": "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "tracing_attributes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_attributes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT"
-    },
-    "tracing-core 0.1.22": {
-      "name": "tracing-core",
-      "version": "0.1.22",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.22/download",
-          "sha256": "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "lazy_static",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.22"
-      },
-      "license": "MIT"
-    },
-    "tracing-futures 0.2.5": {
-      "name": "tracing-futures",
-      "version": "0.2.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-futures/0.2.5/download",
-          "sha256": "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing_futures",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_futures",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "pin-project",
-          "std",
-          "std-future"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "pin-project 1.0.10",
-              "target": "pin_project"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.5"
-      },
-      "license": "MIT"
-    },
-    "try-lock 0.2.3": {
-      "name": "try-lock",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/try-lock/0.2.3/download",
-          "sha256": "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "try_lock",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "try_lock",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.3"
-      },
-      "license": "MIT"
-    },
-    "typenum 1.15.0": {
-      "name": "typenum",
-      "version": "1.15.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/typenum/1.15.0/download",
-          "sha256": "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "typenum",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_main",
-            "crate_root": "build/main.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "typenum",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "typenum 1.15.0",
-              "target": "build_script_main"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.15.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "unicode-bidi 0.3.7": {
-      "name": "unicode-bidi",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.7/download",
-          "sha256": "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_bidi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_bidi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "license": "MIT / Apache-2.0"
-    },
-    "unicode-normalization 0.1.19": {
-      "name": "unicode-normalization",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-normalization/0.1.19/download",
-          "sha256": "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_normalization",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_normalization",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "tinyvec 1.5.1",
-              "target": "tinyvec"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "unicode-xid 0.2.2": {
-      "name": "unicode-xid",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-          "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_xid",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_xid",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "url 2.2.2": {
-      "name": "url",
-      "version": "2.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/url/2.2.2/download",
-          "sha256": "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "url",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "url",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "form_urlencoded 1.0.1",
-              "target": "form_urlencoded"
-            },
-            {
-              "id": "idna 0.2.3",
-              "target": "idna"
-            },
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.2.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "value-bag 1.0.0-alpha.8": {
-      "name": "value-bag",
-      "version": "1.0.0-alpha.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/value-bag/1.0.0-alpha.8/download",
-          "sha256": "79923f7731dc61ebfba3633098bf3ac533bbd35ccd8c57e7088d9a5eebe0263f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "value_bag",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "value_bag",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "value-bag 1.0.0-alpha.8",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "ctor 0.1.21",
-              "target": "ctor"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.0-alpha.8"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "version_check 0.9.4",
-              "target": "version_check",
-              "alias": "rustc"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "vcpkg 0.2.15": {
-      "name": "vcpkg",
-      "version": "0.2.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/vcpkg/0.2.15/download",
-          "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "vcpkg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "vcpkg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.15"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "version_check 0.9.4": {
-      "name": "version_check",
-      "version": "0.9.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
-          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "version_check",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "version_check",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.9.4"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "waker-fn 1.1.0": {
-      "name": "waker-fn",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/waker-fn/1.1.0/download",
-          "sha256": "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "waker_fn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "waker_fn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "want 0.3.0": {
-      "name": "want",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/want/0.3.0/download",
-          "sha256": "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "want",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "want",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "try-lock 0.2.3",
-              "target": "try_lock"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "wasi 0.10.2+wasi-snapshot-preview1": {
-      "name": "wasi",
-      "version": "0.10.2+wasi-snapshot-preview1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download",
-          "sha256": "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.10.2+wasi-snapshot-preview1"
-      },
-      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
-    },
-    "wasm-bindgen 0.2.79": {
-      "name": "wasm-bindgen",
-      "version": "0.2.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen/0.2.79/download",
-          "sha256": "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasm_bindgen",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "spans",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "wasm-bindgen 0.2.79",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "wasm-bindgen-macro 0.2.79",
-              "target": "wasm_bindgen_macro"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.2.79"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasm-bindgen-backend 0.2.79": {
-      "name": "wasm-bindgen-backend",
-      "version": "0.2.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.79/download",
-          "sha256": "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasm_bindgen_backend",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen_backend",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "spans"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bumpalo 3.9.1",
-              "target": "bumpalo"
-            },
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            },
-            {
-              "id": "wasm-bindgen-shared 0.2.79",
-              "target": "wasm_bindgen_shared"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.79"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasm-bindgen-futures 0.4.29": {
-      "name": "wasm-bindgen-futures",
-      "version": "0.4.29",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen-futures/0.4.29/download",
-          "sha256": "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasm_bindgen_futures",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen_futures",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "js-sys 0.3.56",
-              "target": "js_sys"
-            },
-            {
-              "id": "wasm-bindgen 0.2.79",
-              "target": "wasm_bindgen"
-            }
-          ],
-          "selects": {
-            "cfg(target_feature = \"atomics\")": [
-              {
-                "id": "web-sys 0.3.56",
-                "target": "web_sys"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.4.29"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasm-bindgen-macro 0.2.79": {
-      "name": "wasm-bindgen-macro",
-      "version": "0.2.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.79/download",
-          "sha256": "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "wasm_bindgen_macro",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen_macro",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "spans"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "wasm-bindgen-macro-support 0.2.79",
-              "target": "wasm_bindgen_macro_support"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.79"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasm-bindgen-macro-support 0.2.79": {
-      "name": "wasm-bindgen-macro-support",
-      "version": "0.2.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.79/download",
-          "sha256": "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasm_bindgen_macro_support",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen_macro_support",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "spans"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            },
-            {
-              "id": "wasm-bindgen-backend 0.2.79",
-              "target": "wasm_bindgen_backend"
-            },
-            {
-              "id": "wasm-bindgen-shared 0.2.79",
-              "target": "wasm_bindgen_shared"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.79"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wasm-bindgen-shared 0.2.79": {
-      "name": "wasm-bindgen-shared",
-      "version": "0.2.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.79/download",
-          "sha256": "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wasm_bindgen_shared",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wasm_bindgen_shared",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "wasm-bindgen-shared 0.2.79",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.79"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "links": "wasm_bindgen"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "web-sys 0.3.56": {
-      "name": "web-sys",
-      "version": "0.3.56",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/web-sys/0.3.56/download",
-          "sha256": "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "web_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "web_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "Blob",
-          "BlobPropertyBag",
-          "Event",
-          "EventTarget",
-          "File",
-          "FormData",
-          "Headers",
-          "MessageEvent",
-          "Request",
-          "RequestCredentials",
-          "RequestInit",
-          "RequestMode",
-          "Response",
-          "ServiceWorkerGlobalScope",
-          "Window",
-          "Worker",
-          "WorkerGlobalScope"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "js-sys 0.3.56",
-              "target": "js_sys"
-            },
-            {
-              "id": "wasm-bindgen 0.2.79",
-              "target": "wasm_bindgen"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.56"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "wepoll-ffi 0.1.2": {
-      "name": "wepoll-ffi",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/wepoll-ffi/0.1.2/download",
-          "sha256": "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "wepoll_ffi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "wepoll_ffi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "null-overlapped-wakeups-patch"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "wepoll-ffi 0.1.2",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**",
-          "vendor/**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cc 1.0.73",
-              "target": "cc"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "MIT OR Apache-2.0 OR BSD-2-Clause"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "cfg",
-          "consoleapi",
-          "errhandlingapi",
-          "evntrace",
-          "fileapi",
-          "handleapi",
-          "impl-debug",
-          "impl-default",
-          "in6addr",
-          "inaddr",
-          "ioapiset",
-          "knownfolders",
-          "libloaderapi",
-          "lmcons",
-          "minschannel",
-          "minwinbase",
-          "minwindef",
-          "mswsock",
-          "namedpipeapi",
-          "ntdef",
-          "ntsecapi",
-          "ntstatus",
-          "objbase",
-          "processenv",
-          "schannel",
-          "securitybaseapi",
-          "shlobj",
-          "sspi",
-          "std",
-          "synchapi",
-          "sysinfoapi",
-          "timezoneapi",
-          "winbase",
-          "wincon",
-          "wincrypt",
-          "windef",
-          "winerror",
-          "winioctl",
-          "winnt",
-          "winreg",
-          "winsock2",
-          "ws2def",
-          "ws2ipdef",
-          "ws2tcpip"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winreg 0.7.0": {
-      "name": "winreg",
-      "version": "0.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winreg/0.7.0/download",
-          "sha256": "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winreg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winreg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.7.0"
-      },
-      "license": "MIT"
-    }
-  },
-  "binary_crates": [
-    "cc 1.0.73",
-    "httpmock 0.6.6",
-    "lalrpop 0.19.7"
-  ],
-  "workspace_members": {
-    "direct-cargo-bazel-deps 0.0.1": "",
-    "pkg_a 0.1.0": "multi_package/pkg_a",
-    "pkg_b 0.1.0": "multi_package/sub_pkgs/pkg_b",
-    "pkg_c 0.1.0": "multi_package/sub_pkgs/pkg_c"
-  },
-  "conditions": {
-    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(all(unix, not(target_os = \"macos\")))": [
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(any(target_os = \"macos\", target_os = \"ios\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "i686-apple-darwin",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios"
-    ],
-    "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(any(unix, target_os = \"wasi\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))": [
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(target_arch = \"wasm32\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-pc-windows-msvc",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-pc-windows-msvc",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(target_os = \"unknown\"))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-pc-windows-msvc",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-pc-windows-msvc",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(not(windows))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(target_arch = \"wasm32\")": [
-      "wasm32-unknown-unknown",
-      "wasm32-wasi"
-    ],
-    "cfg(target_env = \"msvc\")": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "cfg(target_feature = \"atomics\")": [],
-    "cfg(target_os = \"hermit\")": [],
-    "cfg(target_os = \"redox\")": [],
-    "cfg(target_os = \"wasi\")": [
-      "wasm32-wasi"
-    ],
-    "cfg(target_os = \"windows\")": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "x86_64-pc-windows-gnu": []
-  }
-}
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
+
+[[package]]
+name = "ascii-canvas"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+dependencies = [
+ "term",
+]
+
+[[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "async-channel"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "futures-core",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "once_cell",
+ "slab",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940"
+dependencies = [
+ "async-channel",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "blocking",
+ "futures-lite",
+ "num_cpus",
+ "once_cell",
+]
+
+[[package]]
+name = "async-io"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
+dependencies = [
+ "concurrent-queue",
+ "futures-lite",
+ "libc",
+ "log",
+ "once_cell",
+ "parking",
+ "polling",
+ "slab",
+ "socket2",
+ "waker-fn",
+ "winapi",
+]
+
+[[package]]
+name = "async-lock"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
+dependencies = [
+ "event-listener",
+]
+
+[[package]]
+name = "async-object-pool"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc"
+dependencies = [
+ "async-std",
+]
+
+[[package]]
+name = "async-process"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c"
+dependencies = [
+ "async-io",
+ "blocking",
+ "cfg-if",
+ "event-listener",
+ "futures-lite",
+ "libc",
+ "once_cell",
+ "signal-hook",
+ "winapi",
+]
+
+[[package]]
+name = "async-std"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+dependencies = [
+ "async-channel",
+ "async-global-executor",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-task"
+version = "4.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
+
+[[package]]
+name = "async-trait"
+version = "0.1.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
+name = "basic-cookies"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
+dependencies = [
+ "lalrpop",
+ "lalrpop-util",
+ "regex",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "block-buffer"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
+dependencies = [
+ "async-channel",
+ "async-task",
+ "atomic-waker",
+ "fastrand",
+ "futures-lite",
+ "once_cell",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+
+[[package]]
+name = "bytes"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+
+[[package]]
+name = "cache-padded"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
+
+[[package]]
+name = "castaway"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
+dependencies = [
+ "cache-padded",
+]
+
+[[package]]
+name = "core-foundation"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "ctor"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.55+curl-7.83.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762"
+dependencies = [
+ "cc",
+ "libc",
+ "libnghttp2-sys",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "either"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "ena"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
+
+[[package]]
+name = "fastrand"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+
+[[package]]
+name = "futures-io"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+
+[[package]]
+name = "futures-lite"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+
+[[package]]
+name = "futures-task"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+
+[[package]]
+name = "futures-util"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+dependencies = [
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gloo-timers"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hex-literal"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
+
+[[package]]
+name = "http"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "httparse"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "httpmock"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c159c4fc205e6c1a9b325cb7ec135d13b5f47188ce175dabb76ec847f331d9bd"
+dependencies = [
+ "assert-json-diff",
+ "async-object-pool",
+ "async-trait",
+ "base64",
+ "basic-cookies",
+ "crossbeam-utils",
+ "form_urlencoded",
+ "futures-util",
+ "hyper",
+ "isahc",
+ "lazy_static",
+ "levenshtein",
+ "log",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_regex",
+ "similar",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "hyper"
+version = "0.14.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-tls"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+dependencies = [
+ "bytes",
+ "hyper",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+]
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "ipnet"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
+
+[[package]]
+name = "isahc"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+dependencies = [
+ "async-channel",
+ "castaway",
+ "crossbeam-utils",
+ "curl",
+ "curl-sys",
+ "encoding_rs",
+ "event-listener",
+ "futures-lite",
+ "http",
+ "log",
+ "mime",
+ "once_cell",
+ "polling",
+ "slab",
+ "sluice",
+ "tracing",
+ "tracing-futures",
+ "url",
+ "waker-fn",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+
+[[package]]
+name = "js-sys"
+version = "0.3.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "lalrpop"
+version = "0.19.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b30455341b0e18f276fa64540aff54deafb54c589de6aca68659c63dd2d5d823"
+dependencies = [
+ "ascii-canvas",
+ "atty",
+ "bit-set",
+ "diff",
+ "ena",
+ "itertools",
+ "lalrpop-util",
+ "petgraph",
+ "pico-args",
+ "regex",
+ "regex-syntax",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.19.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf796c978e9b4d983414f4caedc9273aa33ee214c5b887bd55fde84c85d2dc4"
+dependencies = [
+ "regex",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "levenshtein"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "libnghttp2-sys"
+version = "0.1.7+1.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "lock_api"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+ "value-bag",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "md-5"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
+dependencies = [
+ "block-buffer",
+ "digest",
+ "opaque-debug",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "mio"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys",
+]
+
+[[package]]
+name = "native-tls"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "openssl",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "security-framework",
+ "security-framework-sys",
+ "tempfile",
+]
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
+[[package]]
+name = "openssl"
+version = "0.10.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "parking"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "petgraph"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
+dependencies = [
+ "fixedbitset",
+ "indexmap",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pico-args"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
+
+[[package]]
+name = "pin-project"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+
+[[package]]
+name = "pkg_a"
+version = "0.1.0"
+dependencies = [
+ "anyhow",
+ "httpmock",
+ "reqwest",
+]
+
+[[package]]
+name = "pkg_b"
+version = "0.1.0"
+dependencies = [
+ "openssl",
+]
+
+[[package]]
+name = "pkg_c"
+version = "0.1.0"
+dependencies = [
+ "hex-literal",
+ "md-5",
+]
+
+[[package]]
+name = "polling"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "log",
+ "wepoll-ffi",
+ "winapi",
+]
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.11.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92"
+dependencies = [
+ "base64",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-tls",
+ "ipnet",
+ "js-sys",
+ "lazy_static",
+ "log",
+ "mime",
+ "native-tls",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf"
+
+[[package]]
+name = "ryu"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
+[[package]]
+name = "schannel"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
+dependencies = [
+ "lazy_static",
+ "windows-sys",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "security-framework"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+dependencies = [
+ "bitflags",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.138"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.138"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_regex"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
+dependencies = [
+ "regex",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "signal-hook"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+dependencies = [
+ "libc",
+ "signal-hook-registry",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "similar"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3"
+
+[[package]]
+name = "siphasher"
+version = "0.3.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+
+[[package]]
+name = "slab"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+
+[[package]]
+name = "sluice"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+dependencies = [
+ "async-channel",
+ "futures-core",
+ "futures-io",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+
+[[package]]
+name = "socket2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "string_cache"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared",
+ "precomputed-hash",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "tokio"
+version = "1.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
+dependencies = [
+ "bytes",
+ "libc",
+ "memchr",
+ "mio",
+ "num_cpus",
+ "once_cell",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "winapi",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tokio-native-tls"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+dependencies = [
+ "native-tls",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
+dependencies = [
+ "cfg-if",
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tracing-futures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+dependencies = [
+ "pin-project",
+ "tracing",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+
+[[package]]
+name = "typenum"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "value-bag"
+version = "1.0.0-alpha.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
+dependencies = [
+ "ctor",
+ "version_check",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "waker-fn"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+
+[[package]]
+name = "want"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be"
+
+[[package]]
+name = "web-sys"
+version = "0.3.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wepoll-ffi"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
+[[package]]
+name = "winreg"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+dependencies = [
+ "winapi",
+]
diff --git a/third_party/rules_rust/examples/crate_universe/multi_package/cargo-bazel-lock.json b/third_party/rules_rust/examples/crate_universe/multi_package/cargo-bazel-lock.json
new file mode 100644
index 0000000..2f3eb5c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/multi_package/cargo-bazel-lock.json
@@ -0,0 +1,11318 @@
+{
+  "checksum": "fa8d2ec1c932effeab92d593fcf5e2294469a693cf931fe7166c6bdf4373c713",
+  "crates": {
+    "aho-corasick 0.7.18": {
+      "name": "aho-corasick",
+      "version": "0.7.18",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
+          "sha256": "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "aho_corasick",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "aho_corasick",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.18"
+      },
+      "license": "Unlicense/MIT"
+    },
+    "anyhow 1.0.58": {
+      "name": "anyhow",
+      "version": "1.0.58",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/anyhow/1.0.58/download",
+          "sha256": "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "anyhow",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "anyhow",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "anyhow 1.0.58",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.58"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "ascii-canvas 3.0.0": {
+      "name": "ascii-canvas",
+      "version": "3.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ascii-canvas/3.0.0/download",
+          "sha256": "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ascii_canvas",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ascii_canvas",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "term 0.7.0",
+              "target": "term"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "3.0.0"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "assert-json-diff 2.0.2": {
+      "name": "assert-json-diff",
+      "version": "2.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/assert-json-diff/2.0.2/download",
+          "sha256": "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "assert_json_diff",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "assert_json_diff",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "serde_json"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.0.2"
+      },
+      "license": "MIT"
+    },
+    "async-channel 1.6.1": {
+      "name": "async-channel",
+      "version": "1.6.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-channel/1.6.1/download",
+          "sha256": "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_channel",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_channel",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "concurrent-queue 1.2.2",
+              "target": "concurrent_queue"
+            },
+            {
+              "id": "event-listener 2.5.2",
+              "target": "event_listener"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.6.1"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-executor 1.4.1": {
+      "name": "async-executor",
+      "version": "1.4.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-executor/1.4.1/download",
+          "sha256": "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_executor",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_executor",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-task 4.2.0",
+              "target": "async_task"
+            },
+            {
+              "id": "concurrent-queue 1.2.2",
+              "target": "concurrent_queue"
+            },
+            {
+              "id": "fastrand 1.7.0",
+              "target": "fastrand"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.4.1"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-global-executor 2.2.0": {
+      "name": "async-global-executor",
+      "version": "2.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-global-executor/2.2.0/download",
+          "sha256": "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_global_executor",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_global_executor",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "async-io",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-channel 1.6.1",
+              "target": "async_channel"
+            },
+            {
+              "id": "async-executor 1.4.1",
+              "target": "async_executor"
+            },
+            {
+              "id": "async-io 1.7.0",
+              "target": "async_io"
+            },
+            {
+              "id": "async-lock 2.5.0",
+              "target": "async_lock"
+            },
+            {
+              "id": "blocking 1.2.0",
+              "target": "blocking"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "num_cpus 1.13.1",
+              "target": "num_cpus"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.2.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-io 1.7.0": {
+      "name": "async-io",
+      "version": "1.7.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-io/1.7.0/download",
+          "sha256": "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_io",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_io",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "concurrent-queue 1.2.2",
+              "target": "concurrent_queue"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "parking 2.0.0",
+              "target": "parking"
+            },
+            {
+              "id": "polling 2.2.0",
+              "target": "polling"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            },
+            {
+              "id": "waker-fn 1.1.0",
+              "target": "waker_fn"
+            }
+          ],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "1.7.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-lock 2.5.0": {
+      "name": "async-lock",
+      "version": "2.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-lock/2.5.0/download",
+          "sha256": "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_lock",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_lock",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "event-listener 2.5.2",
+              "target": "event_listener"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.5.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-object-pool 0.1.4": {
+      "name": "async-object-pool",
+      "version": "0.1.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-object-pool/0.1.4/download",
+          "sha256": "aeb901c30ebc2fc4ab46395bbfbdba9542c16559d853645d75190c3056caf3bc"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_object_pool",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_object_pool",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-std 1.12.0",
+              "target": "async_std"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.4"
+      },
+      "license": "MIT"
+    },
+    "async-process 1.4.0": {
+      "name": "async-process",
+      "version": "1.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-process/1.4.0/download",
+          "sha256": "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_process",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_process",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "event-listener 2.5.2",
+              "target": "event_listener"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "async-io 1.7.0",
+                "target": "async_io"
+              },
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "signal-hook 0.3.14",
+                "target": "signal_hook"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "blocking 1.2.0",
+                "target": "blocking"
+              },
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "1.4.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-std 1.12.0": {
+      "name": "async-std",
+      "version": "1.12.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-std/1.12.0/download",
+          "sha256": "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_std",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_std",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "async-channel",
+          "async-global-executor",
+          "async-io",
+          "async-lock",
+          "async-process",
+          "crossbeam-utils",
+          "default",
+          "futures-channel",
+          "futures-core",
+          "futures-io",
+          "futures-lite",
+          "gloo-timers",
+          "kv-log-macro",
+          "log",
+          "memchr",
+          "once_cell",
+          "pin-project-lite",
+          "pin-utils",
+          "slab",
+          "std",
+          "unstable",
+          "wasm-bindgen-futures"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-channel 1.6.1",
+              "target": "async_channel"
+            },
+            {
+              "id": "async-lock 2.5.0",
+              "target": "async_lock"
+            },
+            {
+              "id": "crossbeam-utils 0.8.10",
+              "target": "crossbeam_utils"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-io 0.3.21",
+              "target": "futures_io"
+            },
+            {
+              "id": "kv-log-macro 1.0.7",
+              "target": "kv_log_macro"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "pin-utils 0.1.0",
+              "target": "pin_utils"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            }
+          ],
+          "selects": {
+            "cfg(not(target_os = \"unknown\"))": [
+              {
+                "id": "async-global-executor 2.2.0",
+                "target": "async_global_executor"
+              },
+              {
+                "id": "async-io 1.7.0",
+                "target": "async_io"
+              },
+              {
+                "id": "async-process 1.4.0",
+                "target": "async_process"
+              },
+              {
+                "id": "futures-lite 1.12.0",
+                "target": "futures_lite"
+              }
+            ],
+            "cfg(target_arch = \"wasm32\")": [
+              {
+                "id": "futures-channel 0.3.21",
+                "target": "futures_channel"
+              },
+              {
+                "id": "gloo-timers 0.2.4",
+                "target": "gloo_timers"
+              },
+              {
+                "id": "wasm-bindgen-futures 0.4.31",
+                "target": "wasm_bindgen_futures"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "1.12.0"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "async-task 4.2.0": {
+      "name": "async-task",
+      "version": "4.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-task/4.2.0/download",
+          "sha256": "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "async_task",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_task",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "4.2.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "async-trait 0.1.56": {
+      "name": "async-trait",
+      "version": "0.1.56",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-trait/0.1.56/download",
+          "sha256": "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "async_trait",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_trait",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-trait 0.1.56",
+              "target": "build_script_build"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.56"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "atomic-waker 1.0.0": {
+      "name": "atomic-waker",
+      "version": "1.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/atomic-waker/1.0.0/download",
+          "sha256": "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "atomic_waker",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "atomic_waker",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "atty 0.2.14": {
+      "name": "atty",
+      "version": "0.2.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/atty/0.2.14/download",
+          "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "atty",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "atty",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"hermit\")": [
+              {
+                "id": "hermit-abi 0.1.19",
+                "target": "hermit_abi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.2.14"
+      },
+      "license": "MIT"
+    },
+    "autocfg 1.1.0": {
+      "name": "autocfg",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
+          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "autocfg",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "autocfg",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.1.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "base64 0.13.0": {
+      "name": "base64",
+      "version": "0.13.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/base64/0.13.0/download",
+          "sha256": "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "base64",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "base64",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.13.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "basic-cookies 0.1.4": {
+      "name": "basic-cookies",
+      "version": "0.1.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/basic-cookies/0.1.4/download",
+          "sha256": "cb53b6b315f924c7f113b162e53b3901c05fc9966baf84d201dfcc7432a4bb38"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "basic_cookies",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "basic_cookies",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "basic-cookies 0.1.4",
+              "target": "build_script_build"
+            },
+            {
+              "id": "lalrpop-util 0.19.8",
+              "target": "lalrpop_util"
+            },
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.4"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lalrpop 0.19.8",
+              "target": "lalrpop"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT"
+    },
+    "bit-set 0.5.2": {
+      "name": "bit-set",
+      "version": "0.5.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bit-set/0.5.2/download",
+          "sha256": "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bit_set",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bit_set",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bit-vec 0.6.3",
+              "target": "bit_vec"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.5.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "bit-vec 0.6.3": {
+      "name": "bit-vec",
+      "version": "0.6.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bit-vec/0.6.3/download",
+          "sha256": "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bit_vec",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bit_vec",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.6.3"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "bitflags 1.3.2": {
+      "name": "bitflags",
+      "version": "1.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
+          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bitflags",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bitflags",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "1.3.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "block-buffer 0.9.0": {
+      "name": "block-buffer",
+      "version": "0.9.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/block-buffer/0.9.0/download",
+          "sha256": "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "block_buffer",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "block_buffer",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "generic-array 0.14.5",
+              "target": "generic_array"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.9.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "blocking 1.2.0": {
+      "name": "blocking",
+      "version": "1.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/blocking/1.2.0/download",
+          "sha256": "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "blocking",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "blocking",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-channel 1.6.1",
+              "target": "async_channel"
+            },
+            {
+              "id": "async-task 4.2.0",
+              "target": "async_task"
+            },
+            {
+              "id": "atomic-waker 1.0.0",
+              "target": "atomic_waker"
+            },
+            {
+              "id": "fastrand 1.7.0",
+              "target": "fastrand"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.2.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "bumpalo 3.10.0": {
+      "name": "bumpalo",
+      "version": "3.10.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bumpalo/3.10.0/download",
+          "sha256": "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bumpalo",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bumpalo",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "3.10.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "bytes 1.1.0": {
+      "name": "bytes",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bytes/1.1.0/download",
+          "sha256": "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bytes",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bytes",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "1.1.0"
+      },
+      "license": "MIT"
+    },
+    "cache-padded 1.2.0": {
+      "name": "cache-padded",
+      "version": "1.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cache-padded/1.2.0/download",
+          "sha256": "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cache_padded",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cache_padded",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.2.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "castaway 0.1.2": {
+      "name": "castaway",
+      "version": "0.1.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/castaway/0.1.2/download",
+          "sha256": "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "castaway",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "castaway",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.1.2"
+      },
+      "license": "MIT"
+    },
+    "cc 1.0.73": {
+      "name": "cc",
+      "version": "1.0.73",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cc/1.0.73/download",
+          "sha256": "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "gcc-shim",
+            "crate_root": "src/bin/gcc-shim.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.73"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "cfg-if 1.0.0": {
+      "name": "cfg-if",
+      "version": "1.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
+          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cfg_if",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cfg_if",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "concurrent-queue 1.2.2": {
+      "name": "concurrent-queue",
+      "version": "1.2.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/concurrent-queue/1.2.2/download",
+          "sha256": "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "concurrent_queue",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "concurrent_queue",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cache-padded 1.2.0",
+              "target": "cache_padded"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.2.2"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "core-foundation 0.9.3": {
+      "name": "core-foundation",
+      "version": "0.9.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/core-foundation/0.9.3/download",
+          "sha256": "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "core_foundation",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "core_foundation",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "core-foundation-sys 0.8.3",
+              "target": "core_foundation_sys"
+            },
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.9.3"
+      },
+      "license": "MIT / Apache-2.0"
+    },
+    "core-foundation-sys 0.8.3": {
+      "name": "core-foundation-sys",
+      "version": "0.8.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/core-foundation-sys/0.8.3/download",
+          "sha256": "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "core_foundation_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "core_foundation_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "core-foundation-sys 0.8.3",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.8.3"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT / Apache-2.0"
+    },
+    "crossbeam-utils 0.8.10": {
+      "name": "crossbeam-utils",
+      "version": "0.8.10",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/crossbeam-utils/0.8.10/download",
+          "sha256": "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "crossbeam_utils",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "crossbeam_utils",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "once_cell",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "crossbeam-utils 0.8.10",
+              "target": "build_script_build"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.8.10"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "crunchy 0.2.2": {
+      "name": "crunchy",
+      "version": "0.2.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/crunchy/0.2.2/download",
+          "sha256": "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "crunchy",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "crunchy",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "limit_128"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "crunchy 0.2.2",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.2"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    },
+    "ctor 0.1.22": {
+      "name": "ctor",
+      "version": "0.1.22",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ctor/0.1.22/download",
+          "sha256": "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "ctor",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ctor",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.22"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "curl 0.4.43": {
+      "name": "curl",
+      "version": "0.4.43",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/curl/0.4.43/download",
+          "sha256": "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "curl",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "curl",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "http2",
+          "openssl-probe",
+          "openssl-sys",
+          "ssl",
+          "static-curl"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "curl 0.4.43",
+              "target": "build_script_build"
+            },
+            {
+              "id": "curl-sys 0.4.55+curl-7.83.1",
+              "target": "curl_sys"
+            },
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            }
+          ],
+          "selects": {
+            "cfg(all(unix, not(target_os = \"macos\")))": [
+              {
+                "id": "openssl-probe 0.1.5",
+                "target": "openssl_probe"
+              },
+              {
+                "id": "openssl-sys 0.9.74",
+                "target": "openssl_sys"
+              }
+            ],
+            "cfg(target_env = \"msvc\")": [
+              {
+                "id": "schannel 0.1.20",
+                "target": "schannel"
+              },
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.4.43"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "curl-sys 0.4.55+curl-7.83.1",
+              "target": "curl_sys"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT"
+    },
+    "curl-sys 0.4.55+curl-7.83.1": {
+      "name": "curl-sys",
+      "version": "0.4.55+curl-7.83.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/curl-sys/0.4.55+curl-7.83.1/download",
+          "sha256": "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "curl_sys",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "curl_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "http2",
+          "libnghttp2-sys",
+          "openssl-sys",
+          "ssl",
+          "static-curl"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "libnghttp2-sys 0.1.7+1.45.0",
+              "target": "libnghttp2_sys"
+            },
+            {
+              "id": "libz-sys 1.1.8",
+              "target": "libz_sys"
+            }
+          ],
+          "selects": {
+            "cfg(all(unix, not(target_os = \"macos\")))": [
+              {
+                "id": "openssl-sys 0.9.74",
+                "target": "openssl_sys"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "extra_deps": [
+          "@curl",
+          "@libssh2"
+        ],
+        "edition": "2018",
+        "version": "0.4.55+curl-7.83.1"
+      },
+      "license": "MIT"
+    },
+    "diff 0.1.13": {
+      "name": "diff",
+      "version": "0.1.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/diff/0.1.13/download",
+          "sha256": "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "diff",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "diff",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.13"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "digest 0.9.0": {
+      "name": "digest",
+      "version": "0.9.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/digest/0.9.0/download",
+          "sha256": "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "digest",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "digest",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "generic-array 0.14.5",
+              "target": "generic_array"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.9.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "direct-cargo-bazel-deps 0.0.1": {
+      "name": "direct-cargo-bazel-deps",
+      "version": "0.0.1",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "direct_cargo_bazel_deps",
+            "crate_root": ".direct_cargo_bazel_deps.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "direct_cargo_bazel_deps",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.0.1"
+      },
+      "license": null
+    },
+    "dirs-next 2.0.0": {
+      "name": "dirs-next",
+      "version": "2.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/dirs-next/2.0.0/download",
+          "sha256": "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "dirs_next",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "dirs_next",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "dirs-sys-next 0.1.2",
+              "target": "dirs_sys_next"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.0.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "dirs-sys-next 0.1.2": {
+      "name": "dirs-sys-next",
+      "version": "0.1.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/dirs-sys-next/0.1.2/download",
+          "sha256": "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "dirs_sys_next",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "dirs_sys_next",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"redox\")": [
+              {
+                "id": "redox_users 0.4.3",
+                "target": "redox_users"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.1.2"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "either 1.7.0": {
+      "name": "either",
+      "version": "1.7.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/either/1.7.0/download",
+          "sha256": "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "either",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "either",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.7.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "ena 0.14.0": {
+      "name": "ena",
+      "version": "0.14.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ena/0.14.0/download",
+          "sha256": "d7402b94a93c24e742487327a7cd839dc9d36fec9de9fb25b09f2dae459f36c3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ena",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ena",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.14.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "encoding_rs 0.8.31": {
+      "name": "encoding_rs",
+      "version": "0.8.31",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/encoding_rs/0.8.31/download",
+          "sha256": "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "encoding_rs",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "encoding_rs",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "encoding_rs 0.8.31",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.8.31"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "(Apache-2.0 OR MIT) AND BSD-3-Clause"
+    },
+    "event-listener 2.5.2": {
+      "name": "event-listener",
+      "version": "2.5.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/event-listener/2.5.2/download",
+          "sha256": "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "event_listener",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "event_listener",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "2.5.2"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "fastrand 1.7.0": {
+      "name": "fastrand",
+      "version": "1.7.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/fastrand/1.7.0/download",
+          "sha256": "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "fastrand",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "fastrand",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_arch = \"wasm32\")": [
+              {
+                "id": "instant 0.1.12",
+                "target": "instant"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "1.7.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "fixedbitset 0.4.2": {
+      "name": "fixedbitset",
+      "version": "0.4.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/fixedbitset/0.4.2/download",
+          "sha256": "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "fixedbitset",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "fixedbitset",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.4.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "fnv 1.0.7": {
+      "name": "fnv",
+      "version": "1.0.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/fnv/1.0.7/download",
+          "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "fnv",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "fnv",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2015",
+        "version": "1.0.7"
+      },
+      "license": "Apache-2.0 / MIT"
+    },
+    "foreign-types 0.3.2": {
+      "name": "foreign-types",
+      "version": "0.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/foreign-types/0.3.2/download",
+          "sha256": "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "foreign_types",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "foreign_types",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "foreign-types-shared 0.1.1",
+              "target": "foreign_types_shared"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.3.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "foreign-types-shared 0.1.1": {
+      "name": "foreign-types-shared",
+      "version": "0.1.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download",
+          "sha256": "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "foreign_types_shared",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "foreign_types_shared",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "form_urlencoded 1.0.1": {
+      "name": "form_urlencoded",
+      "version": "1.0.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
+          "sha256": "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "form_urlencoded",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "form_urlencoded",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "matches 0.1.9",
+              "target": "matches"
+            },
+            {
+              "id": "percent-encoding 2.1.0",
+              "target": "percent_encoding"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "futures-channel 0.3.21": {
+      "name": "futures-channel",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-channel/0.3.21/download",
+          "sha256": "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_channel",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_channel",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-channel 0.3.21",
+              "target": "build_script_build"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-core 0.3.21": {
+      "name": "futures-core",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-core/0.3.21/download",
+          "sha256": "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-core 0.3.21",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-io 0.3.21": {
+      "name": "futures-io",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-io/0.3.21/download",
+          "sha256": "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_io",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_io",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-lite 1.12.0": {
+      "name": "futures-lite",
+      "version": "1.12.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-lite/1.12.0/download",
+          "sha256": "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_lite",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_lite",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "fastrand",
+          "futures-io",
+          "memchr",
+          "parking",
+          "std",
+          "waker-fn"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "fastrand 1.7.0",
+              "target": "fastrand"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-io 0.3.21",
+              "target": "futures_io"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "parking 2.0.0",
+              "target": "parking"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "waker-fn 1.1.0",
+              "target": "waker_fn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.12.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "futures-macro 0.3.21": {
+      "name": "futures-macro",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-macro/0.3.21/download",
+          "sha256": "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "futures_macro",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_macro",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-sink 0.3.21": {
+      "name": "futures-sink",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-sink/0.3.21/download",
+          "sha256": "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_sink",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_sink",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-task 0.3.21": {
+      "name": "futures-task",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-task/0.3.21/download",
+          "sha256": "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_task",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_task",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-task 0.3.21",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-util 0.3.21": {
+      "name": "futures-util",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-util/0.3.21/download",
+          "sha256": "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "async-await",
+          "async-await-macro",
+          "default",
+          "futures-io",
+          "futures-macro",
+          "io",
+          "memchr",
+          "slab",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-io 0.3.21",
+              "target": "futures_io"
+            },
+            {
+              "id": "futures-task 0.3.21",
+              "target": "futures_task"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "build_script_build"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "pin-utils 0.1.0",
+              "target": "pin_utils"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "futures-macro 0.3.21",
+              "target": "futures_macro"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "generic-array 0.14.5": {
+      "name": "generic-array",
+      "version": "0.14.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/generic-array/0.14.5/download",
+          "sha256": "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "generic_array",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "generic_array",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "generic-array 0.14.5",
+              "target": "build_script_build"
+            },
+            {
+              "id": "typenum 1.15.0",
+              "target": "typenum"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.14.5"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "version_check 0.9.4",
+              "target": "version_check"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT"
+    },
+    "getrandom 0.2.7": {
+      "name": "getrandom",
+      "version": "0.2.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/getrandom/0.2.7/download",
+          "sha256": "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "getrandom",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "getrandom",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"wasi\")": [
+              {
+                "id": "wasi 0.11.0+wasi-snapshot-preview1",
+                "target": "wasi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.2.7"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "gloo-timers 0.2.4": {
+      "name": "gloo-timers",
+      "version": "0.2.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/gloo-timers/0.2.4/download",
+          "sha256": "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "gloo_timers",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "gloo_timers",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "futures",
+          "futures-channel",
+          "futures-core"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-channel 0.3.21",
+              "target": "futures_channel"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "js-sys 0.3.58",
+              "target": "js_sys"
+            },
+            {
+              "id": "wasm-bindgen 0.2.81",
+              "target": "wasm_bindgen"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.4"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "h2 0.3.13": {
+      "name": "h2",
+      "version": "0.3.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/h2/0.3.13/download",
+          "sha256": "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "h2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "h2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "fnv 1.0.7",
+              "target": "fnv"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-sink 0.3.21",
+              "target": "futures_sink"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "indexmap"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tokio-util 0.7.3",
+              "target": "tokio_util"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.13"
+      },
+      "license": "MIT"
+    },
+    "hashbrown 0.12.1": {
+      "name": "hashbrown",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hashbrown/0.12.1/download",
+          "sha256": "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hashbrown",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hashbrown",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "raw"
+        ],
+        "edition": "2021",
+        "version": "0.12.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "hermit-abi 0.1.19": {
+      "name": "hermit-abi",
+      "version": "0.1.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
+          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hermit_abi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hermit_abi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.19"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "hex-literal 0.3.4": {
+      "name": "hex-literal",
+      "version": "0.3.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hex-literal/0.3.4/download",
+          "sha256": "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "hex_literal",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hex_literal",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.4"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "http 0.2.8": {
+      "name": "http",
+      "version": "0.2.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/http/0.2.8/download",
+          "sha256": "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "http",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "http",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "fnv 1.0.7",
+              "target": "fnv"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.8"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "http-body 0.4.5": {
+      "name": "http-body",
+      "version": "0.4.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/http-body/0.4.5/download",
+          "sha256": "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "http_body",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "http_body",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.5"
+      },
+      "license": "MIT"
+    },
+    "httparse 1.7.1": {
+      "name": "httparse",
+      "version": "1.7.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/httparse/1.7.1/download",
+          "sha256": "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "httparse",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "httparse",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "httparse 1.7.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.7.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "httpdate 1.0.2": {
+      "name": "httpdate",
+      "version": "1.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/httpdate/1.0.2/download",
+          "sha256": "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "httpdate",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "httpdate",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "httpmock 0.6.6": {
+      "name": "httpmock",
+      "version": "0.6.6",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/httpmock/0.6.6/download",
+          "sha256": "c159c4fc205e6c1a9b325cb7ec135d13b5f47188ce175dabb76ec847f331d9bd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "httpmock",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "httpmock",
+            "crate_root": "src/main.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "httpmock",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "basic-cookies",
+          "cookies",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "assert-json-diff 2.0.2",
+              "target": "assert_json_diff"
+            },
+            {
+              "id": "async-object-pool 0.1.4",
+              "target": "async_object_pool"
+            },
+            {
+              "id": "base64 0.13.0",
+              "target": "base64"
+            },
+            {
+              "id": "basic-cookies 0.1.4",
+              "target": "basic_cookies"
+            },
+            {
+              "id": "crossbeam-utils 0.8.10",
+              "target": "crossbeam_utils"
+            },
+            {
+              "id": "form_urlencoded 1.0.1",
+              "target": "form_urlencoded"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "hyper 0.14.19",
+              "target": "hyper"
+            },
+            {
+              "id": "isahc 1.7.2",
+              "target": "isahc"
+            },
+            {
+              "id": "lazy_static 1.4.0",
+              "target": "lazy_static"
+            },
+            {
+              "id": "levenshtein 1.0.5",
+              "target": "levenshtein"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "serde_json"
+            },
+            {
+              "id": "serde_regex 1.1.0",
+              "target": "serde_regex"
+            },
+            {
+              "id": "similar 2.1.0",
+              "target": "similar"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "url 2.2.2",
+              "target": "url"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "async-trait 0.1.56",
+              "target": "async_trait"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.6.6"
+      },
+      "license": "MIT"
+    },
+    "hyper 0.14.19": {
+      "name": "hyper",
+      "version": "0.14.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hyper/0.14.19/download",
+          "sha256": "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hyper",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hyper",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "client",
+          "default",
+          "h2",
+          "http1",
+          "http2",
+          "runtime",
+          "server",
+          "socket2",
+          "tcp"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-channel 0.3.21",
+              "target": "futures_channel"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "h2 0.3.13",
+              "target": "h2"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "http-body 0.4.5",
+              "target": "http_body"
+            },
+            {
+              "id": "httparse 1.7.1",
+              "target": "httparse"
+            },
+            {
+              "id": "httpdate 1.0.2",
+              "target": "httpdate"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            },
+            {
+              "id": "want 0.3.0",
+              "target": "want"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.14.19"
+      },
+      "license": "MIT"
+    },
+    "hyper-tls 0.5.0": {
+      "name": "hyper-tls",
+      "version": "0.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hyper-tls/0.5.0/download",
+          "sha256": "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hyper_tls",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hyper_tls",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "hyper 0.14.19",
+              "target": "hyper"
+            },
+            {
+              "id": "native-tls 0.2.10",
+              "target": "native_tls"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tokio-native-tls 0.3.0",
+              "target": "tokio_native_tls"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.5.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "idna 0.2.3": {
+      "name": "idna",
+      "version": "0.2.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/idna/0.2.3/download",
+          "sha256": "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "idna",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "idna",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "matches 0.1.9",
+              "target": "matches"
+            },
+            {
+              "id": "unicode-bidi 0.3.8",
+              "target": "unicode_bidi"
+            },
+            {
+              "id": "unicode-normalization 0.1.21",
+              "target": "unicode_normalization"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.3"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "indexmap 1.9.1": {
+      "name": "indexmap",
+      "version": "1.9.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/indexmap/1.9.1/download",
+          "sha256": "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "indexmap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "indexmap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "hashbrown 0.12.1",
+              "target": "hashbrown"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "version": "1.9.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "instant 0.1.12": {
+      "name": "instant",
+      "version": "0.1.12",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/instant/0.1.12/download",
+          "sha256": "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "instant",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "instant",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.12"
+      },
+      "license": "BSD-3-Clause"
+    },
+    "ipnet 2.5.0": {
+      "name": "ipnet",
+      "version": "2.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ipnet/2.5.0/download",
+          "sha256": "879d54834c8c76457ef4293a689b2a8c59b076067ad77b15efafbb05f92a592b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ipnet",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ipnet",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "2.5.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "isahc 1.7.2": {
+      "name": "isahc",
+      "version": "1.7.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/isahc/1.7.2/download",
+          "sha256": "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "isahc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "isahc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "encoding_rs",
+          "http2",
+          "mime",
+          "static-curl",
+          "text-decoding"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-channel 1.6.1",
+              "target": "async_channel"
+            },
+            {
+              "id": "castaway 0.1.2",
+              "target": "castaway"
+            },
+            {
+              "id": "crossbeam-utils 0.8.10",
+              "target": "crossbeam_utils"
+            },
+            {
+              "id": "curl 0.4.43",
+              "target": "curl"
+            },
+            {
+              "id": "curl-sys 0.4.55+curl-7.83.1",
+              "target": "curl_sys"
+            },
+            {
+              "id": "encoding_rs 0.8.31",
+              "target": "encoding_rs"
+            },
+            {
+              "id": "event-listener 2.5.2",
+              "target": "event_listener"
+            },
+            {
+              "id": "futures-lite 1.12.0",
+              "target": "futures_lite"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "isahc 1.7.2",
+              "target": "build_script_build"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "mime 0.3.16",
+              "target": "mime"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "polling 2.2.0",
+              "target": "polling"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            },
+            {
+              "id": "sluice 0.5.5",
+              "target": "sluice"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            },
+            {
+              "id": "tracing-futures 0.2.5",
+              "target": "tracing_futures"
+            },
+            {
+              "id": "url 2.2.2",
+              "target": "url"
+            },
+            {
+              "id": "waker-fn 1.1.0",
+              "target": "waker_fn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.7.2"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    },
+    "itertools 0.10.3": {
+      "name": "itertools",
+      "version": "0.10.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/itertools/0.10.3/download",
+          "sha256": "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "itertools",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "itertools",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "use_alloc",
+          "use_std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "either 1.7.0",
+              "target": "either"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.10.3"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "itoa 1.0.2": {
+      "name": "itoa",
+      "version": "1.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/itoa/1.0.2/download",
+          "sha256": "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "itoa",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "itoa",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.2"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "js-sys 0.3.58": {
+      "name": "js-sys",
+      "version": "0.3.58",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/js-sys/0.3.58/download",
+          "sha256": "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "js_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "js_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "wasm-bindgen 0.2.81",
+              "target": "wasm_bindgen"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.58"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "kv-log-macro 1.0.7": {
+      "name": "kv-log-macro",
+      "version": "1.0.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/kv-log-macro/1.0.7/download",
+          "sha256": "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "kv_log_macro",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "kv_log_macro",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.7"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "lalrpop 0.19.8": {
+      "name": "lalrpop",
+      "version": "0.19.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lalrpop/0.19.8/download",
+          "sha256": "b30455341b0e18f276fa64540aff54deafb54c589de6aca68659c63dd2d5d823"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lalrpop",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "Binary": {
+            "crate_name": "lalrpop",
+            "crate_root": "src/main.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lalrpop",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "lexer",
+          "pico-args"
+        ],
+        "data_glob": [
+          "**/*.lalrpop"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "ascii-canvas 3.0.0",
+              "target": "ascii_canvas"
+            },
+            {
+              "id": "atty 0.2.14",
+              "target": "atty"
+            },
+            {
+              "id": "bit-set 0.5.2",
+              "target": "bit_set"
+            },
+            {
+              "id": "diff 0.1.13",
+              "target": "diff"
+            },
+            {
+              "id": "ena 0.14.0",
+              "target": "ena"
+            },
+            {
+              "id": "itertools 0.10.3",
+              "target": "itertools"
+            },
+            {
+              "id": "lalrpop-util 0.19.8",
+              "target": "lalrpop_util"
+            },
+            {
+              "id": "petgraph 0.6.2",
+              "target": "petgraph"
+            },
+            {
+              "id": "pico-args 0.4.2",
+              "target": "pico_args"
+            },
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            },
+            {
+              "id": "regex-syntax 0.6.27",
+              "target": "regex_syntax"
+            },
+            {
+              "id": "string_cache 0.8.4",
+              "target": "string_cache"
+            },
+            {
+              "id": "term 0.7.0",
+              "target": "term"
+            },
+            {
+              "id": "tiny-keccak 2.0.2",
+              "target": "tiny_keccak"
+            },
+            {
+              "id": "unicode-xid 0.2.3",
+              "target": "unicode_xid"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.19.8"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "lalrpop-util 0.19.8": {
+      "name": "lalrpop-util",
+      "version": "0.19.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lalrpop-util/0.19.8/download",
+          "sha256": "bcf796c978e9b4d983414f4caedc9273aa33ee214c5b887bd55fde84c85d2dc4"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lalrpop_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lalrpop_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "lexer",
+          "regex",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.19.8"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "lazy_static 1.4.0": {
+      "name": "lazy_static",
+      "version": "1.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
+          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lazy_static",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lazy_static",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.4.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "levenshtein 1.0.5": {
+      "name": "levenshtein",
+      "version": "1.0.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/levenshtein/1.0.5/download",
+          "sha256": "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "levenshtein",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "levenshtein",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.0.5"
+      },
+      "license": "MIT"
+    },
+    "libc 0.2.126": {
+      "name": "libc",
+      "version": "0.2.126",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libc/0.2.126/download",
+          "sha256": "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.126"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "libnghttp2-sys 0.1.7+1.45.0": {
+      "name": "libnghttp2-sys",
+      "version": "0.1.7+1.45.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libnghttp2-sys/0.1.7+1.45.0/download",
+          "sha256": "57ed28aba195b38d5ff02b9170cbff627e336a20925e43b4945390401c5dc93f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libnghttp2_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libnghttp2_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "data_glob": [
+          "nghttp2/**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "libnghttp2-sys 0.1.7+1.45.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.1.7+1.45.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**",
+          "nghttp2/**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cc 1.0.73",
+              "target": "cc"
+            }
+          ],
+          "selects": {}
+        },
+        "links": "nghttp2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "libz-sys 1.1.8": {
+      "name": "libz-sys",
+      "version": "1.1.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libz-sys/1.1.8/download",
+          "sha256": "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libz_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libz_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "libc"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "libz-sys 1.1.8",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.1.8"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cc 1.0.73",
+              "target": "cc"
+            },
+            {
+              "id": "pkg-config 0.3.25",
+              "target": "pkg_config"
+            }
+          ],
+          "selects": {
+            "cfg(target_env = \"msvc\")": [
+              {
+                "id": "vcpkg 0.2.15",
+                "target": "vcpkg"
+              }
+            ]
+          }
+        },
+        "links": "z"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "lock_api 0.4.7": {
+      "name": "lock_api",
+      "version": "0.4.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lock_api/0.4.7/download",
+          "sha256": "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lock_api",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lock_api",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lock_api 0.4.7",
+              "target": "build_script_build"
+            },
+            {
+              "id": "scopeguard 1.1.0",
+              "target": "scopeguard"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.7"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "log 0.4.17": {
+      "name": "log",
+      "version": "0.4.17",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/log/0.4.17/download",
+          "sha256": "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "log",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "log",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "kv_unstable",
+          "value-bag"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "build_script_build"
+            },
+            {
+              "id": "value-bag 1.0.0-alpha.9",
+              "target": "value_bag"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.17"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "matches 0.1.9": {
+      "name": "matches",
+      "version": "0.1.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/matches/0.1.9/download",
+          "sha256": "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "matches",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "matches",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.9"
+      },
+      "license": "MIT"
+    },
+    "md-5 0.9.1": {
+      "name": "md-5",
+      "version": "0.9.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/md-5/0.9.1/download",
+          "sha256": "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "md5",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "md5",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "block-buffer 0.9.0",
+              "target": "block_buffer"
+            },
+            {
+              "id": "digest 0.9.0",
+              "target": "digest"
+            },
+            {
+              "id": "opaque-debug 0.3.0",
+              "target": "opaque_debug"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.9.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "memchr 2.5.0": {
+      "name": "memchr",
+      "version": "2.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/memchr/2.5.0/download",
+          "sha256": "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "memchr",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "memchr",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "memchr 2.5.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.5.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "Unlicense/MIT"
+    },
+    "mime 0.3.16": {
+      "name": "mime",
+      "version": "0.3.16",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/mime/0.3.16/download",
+          "sha256": "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "mime",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "mime",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.3.16"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "mio 0.8.4": {
+      "name": "mio",
+      "version": "0.8.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/mio/0.8.4/download",
+          "sha256": "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "mio",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "mio",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "net",
+          "os-ext",
+          "os-poll"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"wasi\")": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "wasi 0.11.0+wasi-snapshot-preview1",
+                "target": "wasi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "windows-sys 0.36.1",
+                "target": "windows_sys"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.8.4"
+      },
+      "license": "MIT"
+    },
+    "native-tls 0.2.10": {
+      "name": "native-tls",
+      "version": "0.2.10",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/native-tls/0.2.10/download",
+          "sha256": "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "native_tls",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "native_tls",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "native-tls 0.2.10",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "cfg(any(target_os = \"macos\", target_os = \"ios\"))": [
+              {
+                "id": "lazy_static 1.4.0",
+                "target": "lazy_static"
+              },
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "security-framework 2.6.1",
+                "target": "security_framework"
+              },
+              {
+                "id": "security-framework-sys 2.6.1",
+                "target": "security_framework_sys"
+              },
+              {
+                "id": "tempfile 3.3.0",
+                "target": "tempfile"
+              }
+            ],
+            "cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))": [
+              {
+                "id": "log 0.4.17",
+                "target": "log"
+              },
+              {
+                "id": "openssl 0.10.40",
+                "target": "openssl"
+              },
+              {
+                "id": "openssl-probe 0.1.5",
+                "target": "openssl_probe"
+              },
+              {
+                "id": "openssl-sys 0.9.74",
+                "target": "openssl_sys"
+              }
+            ],
+            "cfg(target_os = \"windows\")": [
+              {
+                "id": "schannel 0.1.20",
+                "target": "schannel"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.2.10"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "new_debug_unreachable 1.0.4": {
+      "name": "new_debug_unreachable",
+      "version": "1.0.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/new_debug_unreachable/1.0.4/download",
+          "sha256": "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "debug_unreachable",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "debug_unreachable",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.4"
+      },
+      "license": "MIT"
+    },
+    "num_cpus 1.13.1": {
+      "name": "num_cpus",
+      "version": "1.13.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
+          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "num_cpus",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "num_cpus",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
+              {
+                "id": "hermit-abi 0.1.19",
+                "target": "hermit_abi"
+              }
+            ],
+            "cfg(not(windows))": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "1.13.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "once_cell 1.13.0": {
+      "name": "once_cell",
+      "version": "1.13.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/once_cell/1.13.0/download",
+          "sha256": "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "once_cell",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "once_cell",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "race",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "1.13.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "opaque-debug 0.3.0": {
+      "name": "opaque-debug",
+      "version": "0.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/opaque-debug/0.3.0/download",
+          "sha256": "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "opaque_debug",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "opaque_debug",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "openssl 0.10.40": {
+      "name": "openssl",
+      "version": "0.10.40",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/openssl/0.10.40/download",
+          "sha256": "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "openssl",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "openssl",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "foreign-types 0.3.2",
+              "target": "foreign_types"
+            },
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "openssl 0.10.40",
+              "target": "build_script_build"
+            },
+            {
+              "id": "openssl-sys 0.9.74",
+              "target": "openssl_sys",
+              "alias": "ffi"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "openssl-macros 0.1.0",
+              "target": "openssl_macros"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.10.40"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "openssl-sys 0.9.74",
+              "target": "openssl_sys",
+              "alias": "ffi"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0"
+    },
+    "openssl-macros 0.1.0": {
+      "name": "openssl-macros",
+      "version": "0.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/openssl-macros/0.1.0/download",
+          "sha256": "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "openssl_macros",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "openssl_macros",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "openssl-probe 0.1.5": {
+      "name": "openssl-probe",
+      "version": "0.1.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/openssl-probe/0.1.5/download",
+          "sha256": "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "openssl_probe",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "openssl_probe",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.5"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "openssl-sys 0.9.74": {
+      "name": "openssl-sys",
+      "version": "0.9.74",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/openssl-sys/0.9.74/download",
+          "sha256": "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "openssl_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_main",
+            "crate_root": "build/main.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "openssl_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "data": {
+          "common": [
+            "@openssl"
+          ],
+          "selects": {}
+        },
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "openssl-sys 0.9.74",
+              "target": "build_script_main"
+            }
+          ],
+          "selects": {}
+        },
+        "extra_deps": [
+          "@openssl"
+        ],
+        "edition": "2015",
+        "version": "0.9.74"
+      },
+      "build_script_attrs": {
+        "data": {
+          "common": [
+            "@openssl//:gen_dir",
+            "@openssl//:openssl"
+          ],
+          "selects": {}
+        },
+        "data_glob": [
+          "**",
+          "build/**/*.c"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            },
+            {
+              "id": "cc 1.0.73",
+              "target": "cc"
+            },
+            {
+              "id": "pkg-config 0.3.25",
+              "target": "pkg_config"
+            }
+          ],
+          "selects": {
+            "cfg(target_env = \"msvc\")": [
+              {
+                "id": "vcpkg 0.2.15",
+                "target": "vcpkg"
+              }
+            ]
+          }
+        },
+        "build_script_env": {
+          "common": {
+            "OPENSSL_DIR": "$(execpath @openssl//:gen_dir)",
+            "OPENSSL_STATIC": "1"
+          },
+          "selects": {}
+        },
+        "links": "openssl"
+      },
+      "license": "MIT"
+    },
+    "parking 2.0.0": {
+      "name": "parking",
+      "version": "2.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/parking/2.0.0/download",
+          "sha256": "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "parking",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "parking",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "2.0.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "parking_lot 0.12.1": {
+      "name": "parking_lot",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/parking_lot/0.12.1/download",
+          "sha256": "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "parking_lot",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "parking_lot",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lock_api 0.4.7",
+              "target": "lock_api"
+            },
+            {
+              "id": "parking_lot_core 0.9.3",
+              "target": "parking_lot_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.12.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "parking_lot_core 0.9.3": {
+      "name": "parking_lot_core",
+      "version": "0.9.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/parking_lot_core/0.9.3/download",
+          "sha256": "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "parking_lot_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "parking_lot_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "parking_lot_core 0.9.3",
+              "target": "build_script_build"
+            },
+            {
+              "id": "smallvec 1.9.0",
+              "target": "smallvec"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"redox\")": [
+              {
+                "id": "redox_syscall 0.2.13",
+                "target": "syscall"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "windows-sys 0.36.1",
+                "target": "windows_sys"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.9.3"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "percent-encoding 2.1.0": {
+      "name": "percent-encoding",
+      "version": "2.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
+          "sha256": "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "percent_encoding",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "percent_encoding",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "2.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "petgraph 0.6.2": {
+      "name": "petgraph",
+      "version": "0.6.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/petgraph/0.6.2/download",
+          "sha256": "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "petgraph",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "petgraph",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "fixedbitset 0.4.2",
+              "target": "fixedbitset"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "indexmap"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.6.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "phf_shared 0.10.0": {
+      "name": "phf_shared",
+      "version": "0.10.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/phf_shared/0.10.0/download",
+          "sha256": "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "phf_shared",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "phf_shared",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "siphasher 0.3.10",
+              "target": "siphasher"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.10.0"
+      },
+      "license": "MIT"
+    },
+    "pico-args 0.4.2": {
+      "name": "pico-args",
+      "version": "0.4.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pico-args/0.4.2/download",
+          "sha256": "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pico_args",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pico_args",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.4.2"
+      },
+      "license": "MIT"
+    },
+    "pin-project 1.0.11": {
+      "name": "pin-project",
+      "version": "1.0.11",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project/1.0.11/download",
+          "sha256": "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_project",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "pin-project-internal 1.0.11",
+              "target": "pin_project_internal"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.11"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-project-internal 1.0.11": {
+      "name": "pin-project-internal",
+      "version": "1.0.11",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project-internal/1.0.11/download",
+          "sha256": "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "pin_project_internal",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project_internal",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.11"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-project-lite 0.2.9": {
+      "name": "pin-project-lite",
+      "version": "0.2.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download",
+          "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_project_lite",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project_lite",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.2.9"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-utils 0.1.0": {
+      "name": "pin-utils",
+      "version": "0.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-utils/0.1.0/download",
+          "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_utils",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_utils",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "pkg-config 0.3.25": {
+      "name": "pkg-config",
+      "version": "0.3.25",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pkg-config/0.3.25/download",
+          "sha256": "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pkg_config",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pkg_config",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.3.25"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "pkg_a 0.1.0": {
+      "name": "pkg_a",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pkg_a",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pkg_a",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "anyhow 1.0.58",
+              "target": "anyhow"
+            },
+            {
+              "id": "reqwest 0.11.11",
+              "target": "reqwest"
+            }
+          ],
+          "selects": {}
+        },
+        "deps_dev": {
+          "common": [
+            {
+              "id": "httpmock 0.6.6",
+              "target": "httpmock"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "pkg_b 0.1.0": {
+      "name": "pkg_b",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pkg_b",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pkg_b",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "openssl 0.10.40",
+              "target": "openssl"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "pkg_c 0.1.0": {
+      "name": "pkg_c",
+      "version": "0.1.0",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pkg_c",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pkg_c",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "md-5 0.9.1",
+              "target": "md5"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps_dev": {
+          "common": [
+            {
+              "id": "hex-literal 0.3.4",
+              "target": "hex_literal"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.1.0"
+      },
+      "license": null
+    },
+    "polling 2.2.0": {
+      "name": "polling",
+      "version": "2.2.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/polling/2.2.0/download",
+          "sha256": "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "polling",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "polling",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            }
+          ],
+          "selects": {
+            "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "wepoll-ffi 0.1.2",
+                "target": "wepoll_ffi"
+              },
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "2.2.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "precomputed-hash 0.1.1": {
+      "name": "precomputed-hash",
+      "version": "0.1.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/precomputed-hash/0.1.1/download",
+          "sha256": "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "precomputed_hash",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "precomputed_hash",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.1"
+      },
+      "license": "MIT"
+    },
+    "proc-macro2 1.0.40": {
+      "name": "proc-macro2",
+      "version": "1.0.40",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.40/download",
+          "sha256": "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "proc_macro2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "proc_macro2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.40"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "quote 1.0.20": {
+      "name": "quote",
+      "version": "1.0.20",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/quote/1.0.20/download",
+          "sha256": "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "quote",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "quote",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.20"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "redox_syscall 0.2.13": {
+      "name": "redox_syscall",
+      "version": "0.2.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/redox_syscall/0.2.13/download",
+          "sha256": "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "syscall",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "syscall",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.13"
+      },
+      "license": "MIT"
+    },
+    "redox_users 0.4.3": {
+      "name": "redox_users",
+      "version": "0.4.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/redox_users/0.4.3/download",
+          "sha256": "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "redox_users",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "redox_users",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "getrandom 0.2.7",
+              "target": "getrandom"
+            },
+            {
+              "id": "redox_syscall 0.2.13",
+              "target": "syscall"
+            },
+            {
+              "id": "thiserror 1.0.31",
+              "target": "thiserror"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.3"
+      },
+      "license": "MIT"
+    },
+    "regex 1.6.0": {
+      "name": "regex",
+      "version": "1.6.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/regex/1.6.0/download",
+          "sha256": "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "regex",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "regex",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "aho-corasick",
+          "default",
+          "memchr",
+          "perf",
+          "perf-cache",
+          "perf-dfa",
+          "perf-inline",
+          "perf-literal",
+          "std",
+          "unicode",
+          "unicode-age",
+          "unicode-bool",
+          "unicode-case",
+          "unicode-gencat",
+          "unicode-perl",
+          "unicode-script",
+          "unicode-segment"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "aho-corasick 0.7.18",
+              "target": "aho_corasick"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "regex-syntax 0.6.27",
+              "target": "regex_syntax"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.6.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "regex-syntax 0.6.27": {
+      "name": "regex-syntax",
+      "version": "0.6.27",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/regex-syntax/0.6.27/download",
+          "sha256": "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "regex_syntax",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "regex_syntax",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "unicode",
+          "unicode-age",
+          "unicode-bool",
+          "unicode-case",
+          "unicode-gencat",
+          "unicode-perl",
+          "unicode-script",
+          "unicode-segment"
+        ],
+        "edition": "2018",
+        "version": "0.6.27"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "remove_dir_all 0.5.3": {
+      "name": "remove_dir_all",
+      "version": "0.5.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download",
+          "sha256": "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "remove_dir_all",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "remove_dir_all",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.5.3"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "reqwest 0.11.11": {
+      "name": "reqwest",
+      "version": "0.11.11",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/reqwest/0.11.11/download",
+          "sha256": "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "reqwest",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "reqwest",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "__tls",
+          "blocking",
+          "default",
+          "default-tls",
+          "hyper-tls",
+          "json",
+          "native-tls-crate",
+          "serde_json",
+          "tokio-native-tls"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "base64 0.13.0",
+              "target": "base64"
+            },
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "serde_json"
+            },
+            {
+              "id": "serde_urlencoded 0.7.1",
+              "target": "serde_urlencoded"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            },
+            {
+              "id": "url 2.2.2",
+              "target": "url"
+            }
+          ],
+          "selects": {
+            "cfg(not(target_arch = \"wasm32\"))": [
+              {
+                "id": "encoding_rs 0.8.31",
+                "target": "encoding_rs"
+              },
+              {
+                "id": "futures-core 0.3.21",
+                "target": "futures_core"
+              },
+              {
+                "id": "futures-util 0.3.21",
+                "target": "futures_util"
+              },
+              {
+                "id": "h2 0.3.13",
+                "target": "h2"
+              },
+              {
+                "id": "http-body 0.4.5",
+                "target": "http_body"
+              },
+              {
+                "id": "hyper 0.14.19",
+                "target": "hyper"
+              },
+              {
+                "id": "hyper-tls 0.5.0",
+                "target": "hyper_tls"
+              },
+              {
+                "id": "ipnet 2.5.0",
+                "target": "ipnet"
+              },
+              {
+                "id": "lazy_static 1.4.0",
+                "target": "lazy_static"
+              },
+              {
+                "id": "log 0.4.17",
+                "target": "log"
+              },
+              {
+                "id": "mime 0.3.16",
+                "target": "mime"
+              },
+              {
+                "id": "native-tls 0.2.10",
+                "target": "native_tls",
+                "alias": "native_tls_crate"
+              },
+              {
+                "id": "percent-encoding 2.1.0",
+                "target": "percent_encoding"
+              },
+              {
+                "id": "pin-project-lite 0.2.9",
+                "target": "pin_project_lite"
+              },
+              {
+                "id": "tokio 1.19.2",
+                "target": "tokio"
+              },
+              {
+                "id": "tokio-native-tls 0.3.0",
+                "target": "tokio_native_tls"
+              }
+            ],
+            "cfg(target_arch = \"wasm32\")": [
+              {
+                "id": "js-sys 0.3.58",
+                "target": "js_sys"
+              },
+              {
+                "id": "serde_json 1.0.82",
+                "target": "serde_json"
+              },
+              {
+                "id": "wasm-bindgen 0.2.81",
+                "target": "wasm_bindgen"
+              },
+              {
+                "id": "wasm-bindgen-futures 0.4.31",
+                "target": "wasm_bindgen_futures"
+              },
+              {
+                "id": "web-sys 0.3.58",
+                "target": "web_sys"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winreg 0.10.1",
+                "target": "winreg"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.11.11"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "rustversion 1.0.7": {
+      "name": "rustversion",
+      "version": "1.0.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/rustversion/1.0.7/download",
+          "sha256": "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "rustversion",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build/build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "rustversion",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "rustversion 1.0.7",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.7"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "ryu 1.0.10": {
+      "name": "ryu",
+      "version": "1.0.10",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ryu/1.0.10/download",
+          "sha256": "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ryu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ryu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.10"
+      },
+      "license": "Apache-2.0 OR BSL-1.0"
+    },
+    "schannel 0.1.20": {
+      "name": "schannel",
+      "version": "0.1.20",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/schannel/0.1.20/download",
+          "sha256": "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "schannel",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "schannel",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lazy_static 1.4.0",
+              "target": "lazy_static"
+            },
+            {
+              "id": "windows-sys 0.36.1",
+              "target": "windows_sys"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.20"
+      },
+      "license": "MIT"
+    },
+    "scopeguard 1.1.0": {
+      "name": "scopeguard",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
+          "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "scopeguard",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "scopeguard",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "security-framework 2.6.1": {
+      "name": "security-framework",
+      "version": "2.6.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/security-framework/2.6.1/download",
+          "sha256": "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "security_framework",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "security_framework",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "OSX_10_9",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "core-foundation 0.9.3",
+              "target": "core_foundation"
+            },
+            {
+              "id": "core-foundation-sys 0.8.3",
+              "target": "core_foundation_sys"
+            },
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "security-framework-sys 2.6.1",
+              "target": "security_framework_sys"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.6.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "security-framework-sys 2.6.1": {
+      "name": "security-framework-sys",
+      "version": "2.6.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/security-framework-sys/2.6.1/download",
+          "sha256": "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "security_framework_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "security_framework_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "OSX_10_9",
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "core-foundation-sys 0.8.3",
+              "target": "core_foundation_sys"
+            },
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.6.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde 1.0.138": {
+      "name": "serde",
+      "version": "1.0.138",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde/1.0.138/download",
+          "sha256": "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "derive",
+          "serde_derive",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "serde 1.0.138",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "serde_derive 1.0.138",
+              "target": "serde_derive"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.138"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde_derive 1.0.138": {
+      "name": "serde_derive",
+      "version": "1.0.138",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_derive/1.0.138/download",
+          "sha256": "023e9b1467aef8a10fb88f25611870ada9800ef7e22afce356bb0d2387b6f27c"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "serde_derive",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_derive",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "serde_derive 1.0.138",
+              "target": "build_script_build"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.0.138"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde_json 1.0.82": {
+      "name": "serde_json",
+      "version": "1.0.82",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_json/1.0.82/download",
+          "sha256": "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde_json",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_json",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "ryu 1.0.10",
+              "target": "ryu"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.82"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde_regex 1.1.0": {
+      "name": "serde_regex",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_regex/1.1.0/download",
+          "sha256": "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde_regex",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_regex",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "regex 1.6.0",
+              "target": "regex"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "serde_urlencoded 0.7.1": {
+      "name": "serde_urlencoded",
+      "version": "0.7.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_urlencoded/0.7.1/download",
+          "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde_urlencoded",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_urlencoded",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "form_urlencoded 1.0.1",
+              "target": "form_urlencoded"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "ryu 1.0.10",
+              "target": "ryu"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "signal-hook 0.3.14": {
+      "name": "signal-hook",
+      "version": "0.3.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/signal-hook/0.3.14/download",
+          "sha256": "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "signal_hook",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "signal_hook",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "channel",
+          "iterator"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            },
+            {
+              "id": "signal-hook 0.3.14",
+              "target": "build_script_build"
+            },
+            {
+              "id": "signal-hook-registry 1.4.0",
+              "target": "signal_hook_registry"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.14"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "signal-hook-registry 1.4.0": {
+      "name": "signal-hook-registry",
+      "version": "1.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/signal-hook-registry/1.4.0/download",
+          "sha256": "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "signal_hook_registry",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "signal_hook_registry",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.4.0"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "similar 2.1.0": {
+      "name": "similar",
+      "version": "2.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/similar/2.1.0/download",
+          "sha256": "2e24979f63a11545f5f2c60141afe249d4f19f84581ea2138065e400941d83d3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "similar",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "similar",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "text"
+        ],
+        "edition": "2018",
+        "version": "2.1.0"
+      },
+      "license": "Apache-2.0"
+    },
+    "siphasher 0.3.10": {
+      "name": "siphasher",
+      "version": "0.3.10",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/siphasher/0.3.10/download",
+          "sha256": "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "siphasher",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "siphasher",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.3.10"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "slab 0.4.6": {
+      "name": "slab",
+      "version": "0.4.6",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/slab/0.4.6/download",
+          "sha256": "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "slab",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "slab",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.4.6"
+      },
+      "license": "MIT"
+    },
+    "sluice 0.5.5": {
+      "name": "sluice",
+      "version": "0.5.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/sluice/0.5.5/download",
+          "sha256": "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "sluice",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "sluice",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-channel 1.6.1",
+              "target": "async_channel"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-io 0.3.21",
+              "target": "futures_io"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.5.5"
+      },
+      "license": "MIT"
+    },
+    "smallvec 1.9.0": {
+      "name": "smallvec",
+      "version": "1.9.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/smallvec/1.9.0/download",
+          "sha256": "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "smallvec",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "smallvec",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.9.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "socket2 0.4.4": {
+      "name": "socket2",
+      "version": "0.4.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/socket2/0.4.4/download",
+          "sha256": "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "socket2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "socket2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "all"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.4.4"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "string_cache 0.8.4": {
+      "name": "string_cache",
+      "version": "0.8.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/string_cache/0.8.4/download",
+          "sha256": "213494b7a2b503146286049378ce02b482200519accc31872ee8be91fa820a08"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "string_cache",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "string_cache",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "new_debug_unreachable 1.0.4",
+              "target": "debug_unreachable"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "parking_lot 0.12.1",
+              "target": "parking_lot"
+            },
+            {
+              "id": "phf_shared 0.10.0",
+              "target": "phf_shared"
+            },
+            {
+              "id": "precomputed-hash 0.1.1",
+              "target": "precomputed_hash"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.8.4"
+      },
+      "license": "MIT / Apache-2.0"
+    },
+    "syn 1.0.98": {
+      "name": "syn",
+      "version": "1.0.98",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/syn/1.0.98/download",
+          "sha256": "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "syn",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "syn",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "clone-impls",
+          "default",
+          "derive",
+          "extra-traits",
+          "full",
+          "parsing",
+          "printing",
+          "proc-macro",
+          "quote",
+          "visit",
+          "visit-mut"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.98"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "tempfile 3.3.0": {
+      "name": "tempfile",
+      "version": "3.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tempfile/3.3.0/download",
+          "sha256": "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tempfile",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tempfile",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "fastrand 1.7.0",
+              "target": "fastrand"
+            },
+            {
+              "id": "remove_dir_all 0.5.3",
+              "target": "remove_dir_all"
+            }
+          ],
+          "selects": {
+            "cfg(any(unix, target_os = \"wasi\"))": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(target_os = \"redox\")": [
+              {
+                "id": "redox_syscall 0.2.13",
+                "target": "syscall"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "3.3.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "term 0.7.0": {
+      "name": "term",
+      "version": "0.7.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/term/0.7.0/download",
+          "sha256": "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "term",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "term",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "dirs-next 2.0.0",
+              "target": "dirs_next"
+            }
+          ],
+          "selects": {
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [],
+          "selects": {
+            "cfg(windows)": [
+              {
+                "id": "rustversion 1.0.7",
+                "target": "rustversion"
+              }
+            ]
+          }
+        },
+        "version": "0.7.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "thiserror 1.0.31": {
+      "name": "thiserror",
+      "version": "1.0.31",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/thiserror/1.0.31/download",
+          "sha256": "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "thiserror",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "thiserror",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "thiserror-impl 1.0.31",
+              "target": "thiserror_impl"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.31"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "thiserror-impl 1.0.31": {
+      "name": "thiserror-impl",
+      "version": "1.0.31",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/thiserror-impl/1.0.31/download",
+          "sha256": "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "thiserror_impl",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "thiserror_impl",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.31"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "tiny-keccak 2.0.2": {
+      "name": "tiny-keccak",
+      "version": "2.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tiny-keccak/2.0.2/download",
+          "sha256": "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tiny_keccak",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tiny_keccak",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "sha3"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "crunchy 0.2.2",
+              "target": "crunchy"
+            },
+            {
+              "id": "tiny-keccak 2.0.2",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.0.2"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "CC0-1.0"
+    },
+    "tinyvec 1.6.0": {
+      "name": "tinyvec",
+      "version": "1.6.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tinyvec/1.6.0/download",
+          "sha256": "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tinyvec",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tinyvec",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "tinyvec_macros"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "tinyvec_macros 0.1.0",
+              "target": "tinyvec_macros"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.6.0"
+      },
+      "license": "Zlib OR Apache-2.0 OR MIT"
+    },
+    "tinyvec_macros 0.1.0": {
+      "name": "tinyvec_macros",
+      "version": "0.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download",
+          "sha256": "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tinyvec_macros",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tinyvec_macros",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": "MIT OR Apache-2.0 OR Zlib"
+    },
+    "tokio 1.19.2": {
+      "name": "tokio",
+      "version": "1.19.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio/1.19.2/download",
+          "sha256": "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tokio",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "bytes",
+          "default",
+          "io-util",
+          "libc",
+          "macros",
+          "memchr",
+          "mio",
+          "net",
+          "num_cpus",
+          "once_cell",
+          "rt",
+          "rt-multi-thread",
+          "signal",
+          "signal-hook-registry",
+          "socket2",
+          "sync",
+          "time",
+          "tokio-macros",
+          "winapi"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "mio 0.8.4",
+              "target": "mio"
+            },
+            {
+              "id": "num_cpus 1.13.1",
+              "target": "num_cpus"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            }
+          ],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "signal-hook-registry 1.4.0",
+                "target": "signal_hook_registry"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "tokio-macros 1.8.0",
+              "target": "tokio_macros"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.19.2"
+      },
+      "license": "MIT"
+    },
+    "tokio-macros 1.8.0": {
+      "name": "tokio-macros",
+      "version": "1.8.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio-macros/1.8.0/download",
+          "sha256": "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "tokio_macros",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio_macros",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.8.0"
+      },
+      "license": "MIT"
+    },
+    "tokio-native-tls 0.3.0": {
+      "name": "tokio-native-tls",
+      "version": "0.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio-native-tls/0.3.0/download",
+          "sha256": "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tokio_native_tls",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio_native_tls",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "native-tls 0.2.10",
+              "target": "native_tls"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.0"
+      },
+      "license": "MIT"
+    },
+    "tokio-util 0.7.3": {
+      "name": "tokio-util",
+      "version": "0.7.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio-util/0.7.3/download",
+          "sha256": "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tokio_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "codec",
+          "default",
+          "tracing"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-sink 0.3.21",
+              "target": "futures_sink"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.3"
+      },
+      "license": "MIT"
+    },
+    "tower-service 0.3.2": {
+      "name": "tower-service",
+      "version": "0.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tower-service/0.3.2/download",
+          "sha256": "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tower_service",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tower_service",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.2"
+      },
+      "license": "MIT"
+    },
+    "tracing 0.1.35": {
+      "name": "tracing",
+      "version": "0.1.35",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing/0.1.35/download",
+          "sha256": "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "attributes",
+          "default",
+          "log",
+          "std",
+          "tracing-attributes"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tracing-core 0.1.28",
+              "target": "tracing_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "tracing-attributes 0.1.22",
+              "target": "tracing_attributes"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.1.35"
+      },
+      "license": "MIT"
+    },
+    "tracing-attributes 0.1.22": {
+      "name": "tracing-attributes",
+      "version": "0.1.22",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.22/download",
+          "sha256": "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "tracing_attributes",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_attributes",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.22"
+      },
+      "license": "MIT"
+    },
+    "tracing-core 0.1.28": {
+      "name": "tracing-core",
+      "version": "0.1.28",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.28/download",
+          "sha256": "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "once_cell",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.28"
+      },
+      "license": "MIT"
+    },
+    "tracing-futures 0.2.5": {
+      "name": "tracing-futures",
+      "version": "0.2.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-futures/0.2.5/download",
+          "sha256": "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing_futures",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_futures",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "pin-project",
+          "std",
+          "std-future"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "pin-project 1.0.11",
+              "target": "pin_project"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.5"
+      },
+      "license": "MIT"
+    },
+    "try-lock 0.2.3": {
+      "name": "try-lock",
+      "version": "0.2.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/try-lock/0.2.3/download",
+          "sha256": "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "try_lock",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "try_lock",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.2.3"
+      },
+      "license": "MIT"
+    },
+    "typenum 1.15.0": {
+      "name": "typenum",
+      "version": "1.15.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/typenum/1.15.0/download",
+          "sha256": "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "typenum",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_main",
+            "crate_root": "build/main.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "typenum",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "typenum 1.15.0",
+              "target": "build_script_main"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.15.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "unicode-bidi 0.3.8": {
+      "name": "unicode-bidi",
+      "version": "0.3.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download",
+          "sha256": "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_bidi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_bidi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "hardcoded-data",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.3.8"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "unicode-ident 1.0.1": {
+      "name": "unicode-ident",
+      "version": "1.0.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.1/download",
+          "sha256": "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_ident",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_ident",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "unicode-normalization 0.1.21": {
+      "name": "unicode-normalization",
+      "version": "0.1.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-normalization/0.1.21/download",
+          "sha256": "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_normalization",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_normalization",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "tinyvec 1.6.0",
+              "target": "tinyvec"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.21"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "unicode-xid 0.2.3": {
+      "name": "unicode-xid",
+      "version": "0.2.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.3/download",
+          "sha256": "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_xid",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_xid",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.2.3"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "url 2.2.2": {
+      "name": "url",
+      "version": "2.2.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/url/2.2.2/download",
+          "sha256": "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "url",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "url",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "form_urlencoded 1.0.1",
+              "target": "form_urlencoded"
+            },
+            {
+              "id": "idna 0.2.3",
+              "target": "idna"
+            },
+            {
+              "id": "matches 0.1.9",
+              "target": "matches"
+            },
+            {
+              "id": "percent-encoding 2.1.0",
+              "target": "percent_encoding"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.2.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "value-bag 1.0.0-alpha.9": {
+      "name": "value-bag",
+      "version": "1.0.0-alpha.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/value-bag/1.0.0-alpha.9/download",
+          "sha256": "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "value_bag",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "value_bag",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "value-bag 1.0.0-alpha.9",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "ctor 0.1.22",
+              "target": "ctor"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.0-alpha.9"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "version_check 0.9.4",
+              "target": "version_check",
+              "alias": "rustc"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "vcpkg 0.2.15": {
+      "name": "vcpkg",
+      "version": "0.2.15",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/vcpkg/0.2.15/download",
+          "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "vcpkg",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "vcpkg",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.2.15"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "version_check 0.9.4": {
+      "name": "version_check",
+      "version": "0.9.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/version_check/0.9.4/download",
+          "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "version_check",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "version_check",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.9.4"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "waker-fn 1.1.0": {
+      "name": "waker-fn",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/waker-fn/1.1.0/download",
+          "sha256": "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "waker_fn",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "waker_fn",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.1.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "want 0.3.0": {
+      "name": "want",
+      "version": "0.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/want/0.3.0/download",
+          "sha256": "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "want",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "want",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "try-lock 0.2.3",
+              "target": "try_lock"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.0"
+      },
+      "license": "MIT"
+    },
+    "wasi 0.11.0+wasi-snapshot-preview1": {
+      "name": "wasi",
+      "version": "0.11.0+wasi-snapshot-preview1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download",
+          "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.11.0+wasi-snapshot-preview1"
+      },
+      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+    },
+    "wasm-bindgen 0.2.81": {
+      "name": "wasm-bindgen",
+      "version": "0.2.81",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen/0.2.81/download",
+          "sha256": "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasm_bindgen",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "spans",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "wasm-bindgen 0.2.81",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "wasm-bindgen-macro 0.2.81",
+              "target": "wasm_bindgen_macro"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.2.81"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasm-bindgen-backend 0.2.81": {
+      "name": "wasm-bindgen-backend",
+      "version": "0.2.81",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.81/download",
+          "sha256": "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasm_bindgen_backend",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen_backend",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "spans"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bumpalo 3.10.0",
+              "target": "bumpalo"
+            },
+            {
+              "id": "lazy_static 1.4.0",
+              "target": "lazy_static"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            },
+            {
+              "id": "wasm-bindgen-shared 0.2.81",
+              "target": "wasm_bindgen_shared"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.81"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasm-bindgen-futures 0.4.31": {
+      "name": "wasm-bindgen-futures",
+      "version": "0.4.31",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen-futures/0.4.31/download",
+          "sha256": "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasm_bindgen_futures",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen_futures",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "js-sys 0.3.58",
+              "target": "js_sys"
+            },
+            {
+              "id": "wasm-bindgen 0.2.81",
+              "target": "wasm_bindgen"
+            }
+          ],
+          "selects": {
+            "cfg(target_feature = \"atomics\")": [
+              {
+                "id": "web-sys 0.3.58",
+                "target": "web_sys"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.4.31"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasm-bindgen-macro 0.2.81": {
+      "name": "wasm-bindgen-macro",
+      "version": "0.2.81",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.81/download",
+          "sha256": "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "wasm_bindgen_macro",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen_macro",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "spans"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "wasm-bindgen-macro-support 0.2.81",
+              "target": "wasm_bindgen_macro_support"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.81"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasm-bindgen-macro-support 0.2.81": {
+      "name": "wasm-bindgen-macro-support",
+      "version": "0.2.81",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.81/download",
+          "sha256": "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasm_bindgen_macro_support",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen_macro_support",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "spans"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            },
+            {
+              "id": "wasm-bindgen-backend 0.2.81",
+              "target": "wasm_bindgen_backend"
+            },
+            {
+              "id": "wasm-bindgen-shared 0.2.81",
+              "target": "wasm_bindgen_shared"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.81"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wasm-bindgen-shared 0.2.81": {
+      "name": "wasm-bindgen-shared",
+      "version": "0.2.81",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.81/download",
+          "sha256": "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasm_bindgen_shared",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasm_bindgen_shared",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "wasm-bindgen-shared 0.2.81",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.81"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "links": "wasm_bindgen"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "web-sys 0.3.58": {
+      "name": "web-sys",
+      "version": "0.3.58",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/web-sys/0.3.58/download",
+          "sha256": "2fed94beee57daf8dd7d51f2b15dc2bcde92d7a72304cdf662a4371008b71b90"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "web_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "web_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "Blob",
+          "BlobPropertyBag",
+          "Event",
+          "EventTarget",
+          "File",
+          "FormData",
+          "Headers",
+          "MessageEvent",
+          "Request",
+          "RequestCredentials",
+          "RequestInit",
+          "RequestMode",
+          "Response",
+          "ServiceWorkerGlobalScope",
+          "Window",
+          "Worker",
+          "WorkerGlobalScope"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "js-sys 0.3.58",
+              "target": "js_sys"
+            },
+            {
+              "id": "wasm-bindgen 0.2.81",
+              "target": "wasm_bindgen"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.58"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "wepoll-ffi 0.1.2": {
+      "name": "wepoll-ffi",
+      "version": "0.1.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wepoll-ffi/0.1.2/download",
+          "sha256": "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wepoll_ffi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wepoll_ffi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "null-overlapped-wakeups-patch"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "wepoll-ffi 0.1.2",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.2"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**",
+          "vendor/**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cc 1.0.73",
+              "target": "cc"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT OR Apache-2.0 OR BSD-2-Clause"
+    },
+    "winapi 0.3.9": {
+      "name": "winapi",
+      "version": "0.3.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
+          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "consoleapi",
+          "errhandlingapi",
+          "fileapi",
+          "handleapi",
+          "impl-debug",
+          "impl-default",
+          "ioapiset",
+          "knownfolders",
+          "libloaderapi",
+          "minwinbase",
+          "minwindef",
+          "mswsock",
+          "namedpipeapi",
+          "objbase",
+          "processenv",
+          "shlobj",
+          "std",
+          "timezoneapi",
+          "winbase",
+          "wincon",
+          "wincrypt",
+          "winerror",
+          "winnt",
+          "winreg",
+          "winsock2",
+          "ws2def",
+          "ws2ipdef",
+          "ws2tcpip"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi 0.3.9",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "i686-pc-windows-gnu": [
+              {
+                "id": "winapi-i686-pc-windows-gnu 0.4.0",
+                "target": "winapi_i686_pc_windows_gnu"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+                "target": "winapi_x86_64_pc_windows_gnu"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.3.9"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-i686-pc-windows-gnu 0.4.0": {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
+          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_i686_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_i686_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-i686-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-x86_64-pc-windows-gnu 0.4.0": {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
+          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_x86_64_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_x86_64_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "windows-sys 0.36.1": {
+      "name": "windows-sys",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows-sys/0.36.1/download",
+          "sha256": "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "Win32",
+          "Win32_Foundation",
+          "Win32_Networking",
+          "Win32_Networking_WinSock",
+          "Win32_Security",
+          "Win32_Security_Authentication",
+          "Win32_Security_Authentication_Identity",
+          "Win32_Security_Credentials",
+          "Win32_Security_Cryptography",
+          "Win32_Storage",
+          "Win32_Storage_FileSystem",
+          "Win32_System",
+          "Win32_System_IO",
+          "Win32_System_LibraryLoader",
+          "Win32_System_Memory",
+          "Win32_System_Pipes",
+          "Win32_System_SystemServices",
+          "Win32_System_WindowsProgramming",
+          "default"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "aarch64-pc-windows-msvc": [
+              {
+                "id": "windows_aarch64_msvc 0.36.1",
+                "target": "windows_aarch64_msvc"
+              }
+            ],
+            "aarch64-uwp-windows-msvc": [
+              {
+                "id": "windows_aarch64_msvc 0.36.1",
+                "target": "windows_aarch64_msvc"
+              }
+            ],
+            "i686-pc-windows-gnu": [
+              {
+                "id": "windows_i686_gnu 0.36.1",
+                "target": "windows_i686_gnu"
+              }
+            ],
+            "i686-pc-windows-msvc": [
+              {
+                "id": "windows_i686_msvc 0.36.1",
+                "target": "windows_i686_msvc"
+              }
+            ],
+            "i686-uwp-windows-gnu": [
+              {
+                "id": "windows_i686_gnu 0.36.1",
+                "target": "windows_i686_gnu"
+              }
+            ],
+            "i686-uwp-windows-msvc": [
+              {
+                "id": "windows_i686_msvc 0.36.1",
+                "target": "windows_i686_msvc"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "windows_x86_64_gnu 0.36.1",
+                "target": "windows_x86_64_gnu"
+              }
+            ],
+            "x86_64-pc-windows-msvc": [
+              {
+                "id": "windows_x86_64_msvc 0.36.1",
+                "target": "windows_x86_64_msvc"
+              }
+            ],
+            "x86_64-uwp-windows-gnu": [
+              {
+                "id": "windows_x86_64_gnu 0.36.1",
+                "target": "windows_x86_64_gnu"
+              }
+            ],
+            "x86_64-uwp-windows-msvc": [
+              {
+                "id": "windows_x86_64_msvc 0.36.1",
+                "target": "windows_x86_64_msvc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_aarch64_msvc 0.36.1": {
+      "name": "windows_aarch64_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.36.1/download",
+          "sha256": "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_aarch64_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_aarch64_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_aarch64_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_i686_gnu 0.36.1": {
+      "name": "windows_i686_gnu",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.36.1/download",
+          "sha256": "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_i686_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_i686_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_i686_gnu 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_i686_msvc 0.36.1": {
+      "name": "windows_i686_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.36.1/download",
+          "sha256": "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_i686_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_i686_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_i686_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_x86_64_gnu 0.36.1": {
+      "name": "windows_x86_64_gnu",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.36.1/download",
+          "sha256": "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_x86_64_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_x86_64_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_x86_64_gnu 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_x86_64_msvc 0.36.1": {
+      "name": "windows_x86_64_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.36.1/download",
+          "sha256": "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_x86_64_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_x86_64_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_x86_64_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "winreg 0.10.1": {
+      "name": "winreg",
+      "version": "0.10.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winreg/0.10.1/download",
+          "sha256": "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winreg",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winreg",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi 0.3.9",
+              "target": "winapi"
+            },
+            {
+              "id": "winreg 0.10.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.10.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    }
+  },
+  "binary_crates": [
+    "cc 1.0.73",
+    "httpmock 0.6.6",
+    "lalrpop 0.19.8"
+  ],
+  "workspace_members": {
+    "direct-cargo-bazel-deps 0.0.1": "",
+    "pkg_a 0.1.0": "multi_package/pkg_a",
+    "pkg_b 0.1.0": "multi_package/sub_pkgs/pkg_b",
+    "pkg_c 0.1.0": "multi_package/sub_pkgs/pkg_c"
+  },
+  "conditions": {
+    "aarch64-pc-windows-msvc": [],
+    "aarch64-uwp-windows-msvc": [],
+    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
+    "cfg(all(unix, not(target_os = \"macos\")))": [
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(any(target_os = \"macos\", target_os = \"ios\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "i686-apple-darwin",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios"
+    ],
+    "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(any(unix, target_os = \"wasi\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(not(any(target_os = \"windows\", target_os = \"macos\", target_os = \"ios\")))": [
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-unknown-unknown",
+      "wasm32-wasi",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(not(target_arch = \"wasm32\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-pc-windows-msvc",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-pc-windows-msvc",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(not(target_os = \"unknown\"))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-pc-windows-msvc",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-pc-windows-msvc",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(not(windows))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-unknown-unknown",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(target_arch = \"wasm32\")": [
+      "wasm32-unknown-unknown",
+      "wasm32-wasi"
+    ],
+    "cfg(target_env = \"msvc\")": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "cfg(target_feature = \"atomics\")": [],
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(target_os = \"redox\")": [],
+    "cfg(target_os = \"wasi\")": [
+      "wasm32-wasi"
+    ],
+    "cfg(target_os = \"windows\")": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "cfg(unix)": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(windows)": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "i686-pc-windows-gnu": [],
+    "i686-pc-windows-msvc": [
+      "i686-pc-windows-msvc"
+    ],
+    "i686-uwp-windows-gnu": [],
+    "i686-uwp-windows-msvc": [],
+    "x86_64-pc-windows-gnu": [],
+    "x86_64-pc-windows-msvc": [
+      "x86_64-pc-windows-msvc"
+    ],
+    "x86_64-uwp-windows-gnu": [],
+    "x86_64-uwp-windows-msvc": []
+  }
+}
diff --git a/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock b/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
index 6164f28..4a77a8b 100644
--- a/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
+++ b/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/Cargo.Bazel.lock
@@ -1,5006 +1,805 @@
-{
-  "checksum": "5c8bd4f7527784376a1667a00ecf8f9ddd398a2a3ccefee5201b383f56d2c99b",
-  "crates": {
-    "ansi_term 0.12.1": {
-      "name": "ansi_term",
-      "version": "0.12.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ansi_term/0.12.1/download",
-          "sha256": "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ansi_term",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ansi_term",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(target_os = \"windows\")": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.12.1"
-      },
-      "license": "MIT"
-    },
-    "async-trait 0.1.52": {
-      "name": "async-trait",
-      "version": "0.1.52",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/async-trait/0.1.52/download",
-          "sha256": "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "async_trait",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "async_trait",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "async-trait 0.1.52",
-              "target": "build_script_build"
-            },
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.52"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "autocfg 1.1.0": {
-      "name": "autocfg",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
-          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "autocfg",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "autocfg",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "axum 0.4.8": {
-      "name": "axum",
-      "version": "0.4.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/axum/0.4.8/download",
-          "sha256": "c9f346c92c1e9a71d14fe4aaf7c2a5d9932cc4e5e48d8fb6641524416eb79ddd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "axum",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "axum",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**",
-          "**/*.md"
-        ],
-        "crate_features": [
-          "default",
-          "http1",
-          "json",
-          "serde_json",
-          "tower-log"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "axum-core 0.1.2",
-              "target": "axum_core"
-            },
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "http-body 0.4.4",
-              "target": "http_body"
-            },
-            {
-              "id": "hyper 0.14.17",
-              "target": "hyper"
-            },
-            {
-              "id": "matchit 0.4.6",
-              "target": "matchit"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "mime 0.3.16",
-              "target": "mime"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "serde_urlencoded 0.7.1",
-              "target": "serde_urlencoded"
-            },
-            {
-              "id": "sync_wrapper 0.1.1",
-              "target": "sync_wrapper"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tower 0.4.12",
-              "target": "tower"
-            },
-            {
-              "id": "tower-http 0.2.4",
-              "target": "tower_http"
-            },
-            {
-              "id": "tower-layer 0.3.1",
-              "target": "tower_layer"
-            },
-            {
-              "id": "tower-service 0.3.1",
-              "target": "tower_service"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "async-trait 0.1.52",
-              "target": "async_trait"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.4.8"
-      },
-      "license": "MIT"
-    },
-    "axum-core 0.1.2": {
-      "name": "axum-core",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/axum-core/0.1.2/download",
-          "sha256": "6dbcda393bef9c87572779cb8ef916f12d77750b27535dd6819fa86591627a51"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "axum_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "axum_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "http-body 0.4.4",
-              "target": "http_body"
-            },
-            {
-              "id": "mime 0.3.16",
-              "target": "mime"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "async-trait 0.1.52",
-              "target": "async_trait"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.1.2"
-      },
-      "license": "MIT"
-    },
-    "bitflags 1.3.2": {
-      "name": "bitflags",
-      "version": "1.3.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bitflags",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bitflags",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "1.3.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "bytes 1.1.0": {
-      "name": "bytes",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/bytes/1.1.0/download",
-          "sha256": "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "bytes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "bytes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.1.0"
-      },
-      "license": "MIT"
-    },
-    "cfg-if 1.0.0": {
-      "name": "cfg-if",
-      "version": "1.0.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "cfg_if",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "cfg_if",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "direct-cargo-bazel-deps 0.0.1": {
-      "name": "direct-cargo-bazel-deps",
-      "version": "0.0.1",
-      "repository": null,
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "direct_cargo_bazel_deps",
-            "crate_root": ".direct_cargo_bazel_deps.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "direct_cargo_bazel_deps",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "axum 0.4.8",
-              "target": "axum"
-            },
-            {
-              "id": "hyper 0.14.17",
-              "target": "hyper"
-            },
-            {
-              "id": "mime 0.3.16",
-              "target": "mime"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "serde_json"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tower 0.4.12",
-              "target": "tower"
-            },
-            {
-              "id": "tower-http 0.2.4",
-              "target": "tower_http"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            },
-            {
-              "id": "tracing-subscriber 0.3.9",
-              "target": "tracing_subscriber"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.0.1"
-      },
-      "license": null
-    },
-    "fnv 1.0.7": {
-      "name": "fnv",
-      "version": "1.0.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/fnv/1.0.7/download",
-          "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "fnv",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "fnv",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2015",
-        "version": "1.0.7"
-      },
-      "license": "Apache-2.0 / MIT"
-    },
-    "form_urlencoded 1.0.1": {
-      "name": "form_urlencoded",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
-          "sha256": "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "form_urlencoded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "form_urlencoded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "matches 0.1.9",
-              "target": "matches"
-            },
-            {
-              "id": "percent-encoding 2.1.0",
-              "target": "percent_encoding"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "futures-channel 0.3.21": {
-      "name": "futures-channel",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-channel/0.3.21/download",
-          "sha256": "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_channel",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_channel",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-channel 0.3.21",
-              "target": "build_script_build"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-core 0.3.21": {
-      "name": "futures-core",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-core/0.3.21/download",
-          "sha256": "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-core 0.3.21",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-sink 0.3.21": {
-      "name": "futures-sink",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-sink/0.3.21/download",
-          "sha256": "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_sink",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_sink",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-task 0.3.21": {
-      "name": "futures-task",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-task/0.3.21/download",
-          "sha256": "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_task",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_task",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-task 0.3.21",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "futures-util 0.3.21": {
-      "name": "futures-util",
-      "version": "0.3.21",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/futures-util/0.3.21/download",
-          "sha256": "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "futures_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "futures_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-task 0.3.21",
-              "target": "futures_task"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "build_script_build"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "pin-utils 0.1.0",
-              "target": "pin_utils"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.21"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "h2 0.3.11": {
-      "name": "h2",
-      "version": "0.3.11",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/h2/0.3.11/download",
-          "sha256": "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "h2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "h2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "fnv 1.0.7",
-              "target": "fnv"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-sink 0.3.21",
-              "target": "futures_sink"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "indexmap"
-            },
-            {
-              "id": "slab 0.4.5",
-              "target": "slab"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tokio-util 0.6.9",
-              "target": "tokio_util"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.11"
-      },
-      "license": "MIT"
-    },
-    "hashbrown 0.11.2": {
-      "name": "hashbrown",
-      "version": "0.11.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hashbrown/0.11.2/download",
-          "sha256": "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hashbrown",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hashbrown",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "raw"
-        ],
-        "edition": "2018",
-        "version": "0.11.2"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "hermit-abi 0.1.19": {
-      "name": "hermit-abi",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hermit_abi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hermit_abi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "http 0.2.6": {
-      "name": "http",
-      "version": "0.2.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/http/0.2.6/download",
-          "sha256": "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "http",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "http",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "fnv 1.0.7",
-              "target": "fnv"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.6"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "http-body 0.4.4": {
-      "name": "http-body",
-      "version": "0.4.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/http-body/0.4.4/download",
-          "sha256": "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "http_body",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "http_body",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.4"
-      },
-      "license": "MIT"
-    },
-    "http-range-header 0.3.0": {
-      "name": "http-range-header",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/http-range-header/0.3.0/download",
-          "sha256": "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "http_range_header",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "http_range_header",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "httparse 1.6.0": {
-      "name": "httparse",
-      "version": "1.6.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/httparse/1.6.0/download",
-          "sha256": "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "httparse",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "httparse",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "httparse 1.6.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.6.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "httpdate 1.0.2": {
-      "name": "httpdate",
-      "version": "1.0.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/httpdate/1.0.2/download",
-          "sha256": "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "httpdate",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "httpdate",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.2"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "hyper 0.14.17": {
-      "name": "hyper",
-      "version": "0.14.17",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/hyper/0.14.17/download",
-          "sha256": "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "hyper",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "hyper",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "client",
-          "default",
-          "full",
-          "h2",
-          "http1",
-          "http2",
-          "runtime",
-          "server",
-          "socket2",
-          "stream",
-          "tcp"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-channel 0.3.21",
-              "target": "futures_channel"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "h2 0.3.11",
-              "target": "h2"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "http-body 0.4.4",
-              "target": "http_body"
-            },
-            {
-              "id": "httparse 1.6.0",
-              "target": "httparse"
-            },
-            {
-              "id": "httpdate 1.0.2",
-              "target": "httpdate"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tower-service 0.3.1",
-              "target": "tower_service"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            },
-            {
-              "id": "want 0.3.0",
-              "target": "want"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.14.17"
-      },
-      "license": "MIT"
-    },
-    "indexmap 1.8.0": {
-      "name": "indexmap",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/indexmap/1.8.0/download",
-          "sha256": "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "indexmap",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "indexmap",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "hashbrown 0.11.2",
-              "target": "hashbrown"
-            },
-            {
-              "id": "indexmap 1.8.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "autocfg 1.1.0",
-              "target": "autocfg"
-            }
-          ],
-          "selects": {}
-        }
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "itoa 1.0.1": {
-      "name": "itoa",
-      "version": "1.0.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/itoa/1.0.1/download",
-          "sha256": "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "itoa",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "itoa",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "lazy_static 1.4.0": {
-      "name": "lazy_static",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lazy_static",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lazy_static",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "libc 0.2.119": {
-      "name": "libc",
-      "version": "0.2.119",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/libc/0.2.119/download",
-          "sha256": "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "libc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "libc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.2.119"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "lock_api 0.4.6": {
-      "name": "lock_api",
-      "version": "0.4.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/lock_api/0.4.6/download",
-          "sha256": "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "lock_api",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "lock_api",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "scopeguard 1.1.0",
-              "target": "scopeguard"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.6"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "log 0.4.14": {
-      "name": "log",
-      "version": "0.4.14",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/log/0.4.14/download",
-          "sha256": "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.14"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "matches 0.1.9": {
-      "name": "matches",
-      "version": "0.1.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/matches/0.1.9/download",
-          "sha256": "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "matches",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "matches",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.1.9"
-      },
-      "license": "MIT"
-    },
-    "matchit 0.4.6": {
-      "name": "matchit",
-      "version": "0.4.6",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/matchit/0.4.6/download",
-          "sha256": "9376a4f0340565ad675d11fc1419227faf5f60cd7ac9cb2e7185a471f30af833"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "matchit",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "matchit",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2018",
-        "version": "0.4.6"
-      },
-      "license": "MIT"
-    },
-    "memchr 2.4.1": {
-      "name": "memchr",
-      "version": "2.4.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-          "sha256": "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "memchr",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "memchr",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "memchr 2.4.1",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "2.4.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Unlicense/MIT"
-    },
-    "mime 0.3.16": {
-      "name": "mime",
-      "version": "0.3.16",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/mime/0.3.16/download",
-          "sha256": "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "mime",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "mime",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.3.16"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "mio 0.8.0": {
-      "name": "mio",
-      "version": "0.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/mio/0.8.0/download",
-          "sha256": "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "mio",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "mio",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "net",
-          "os-ext",
-          "os-poll"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "miow 0.3.7",
-                "target": "miow"
-              },
-              {
-                "id": "ntapi 0.3.7",
-                "target": "ntapi"
-              },
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.8.0"
-      },
-      "license": "MIT"
-    },
-    "miow 0.3.7": {
-      "name": "miow",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/miow/0.3.7/download",
-          "sha256": "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "miow",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "miow",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "ntapi 0.3.7": {
-      "name": "ntapi",
-      "version": "0.3.7",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ntapi/0.3.7/download",
-          "sha256": "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ntapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ntapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "user"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ntapi 0.3.7",
-              "target": "build_script_build"
-            },
-            {
-              "id": "winapi 0.3.9",
-              "target": "winapi"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.7"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "num_cpus 1.13.1": {
-      "name": "num_cpus",
-      "version": "1.13.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
-          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "num_cpus",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "num_cpus",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
-              {
-                "id": "hermit-abi 0.1.19",
-                "target": "hermit_abi"
-              }
-            ],
-            "cfg(not(windows))": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "1.13.1"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "once_cell 1.10.0": {
-      "name": "once_cell",
-      "version": "1.10.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/once_cell/1.10.0/download",
-          "sha256": "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "once_cell",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "once_cell",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "default",
-          "race",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "1.10.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "parking_lot 0.12.0": {
-      "name": "parking_lot",
-      "version": "0.12.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parking_lot/0.12.0/download",
-          "sha256": "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parking_lot",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parking_lot",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lock_api 0.4.6",
-              "target": "lock_api"
-            },
-            {
-              "id": "parking_lot_core 0.9.1",
-              "target": "parking_lot_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.12.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "parking_lot_core 0.9.1": {
-      "name": "parking_lot_core",
-      "version": "0.9.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/parking_lot_core/0.9.1/download",
-          "sha256": "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "parking_lot_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "parking_lot_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "parking_lot_core 0.9.1",
-              "target": "build_script_build"
-            },
-            {
-              "id": "smallvec 1.8.0",
-              "target": "smallvec"
-            }
-          ],
-          "selects": {
-            "cfg(target_os = \"redox\")": [
-              {
-                "id": "redox_syscall 0.2.11",
-                "target": "syscall"
-              }
-            ],
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "windows-sys 0.32.0",
-                "target": "windows_sys"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.9.1"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "percent-encoding 2.1.0": {
-      "name": "percent-encoding",
-      "version": "2.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
-          "sha256": "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "percent_encoding",
-            "crate_root": "lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "percent_encoding",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "2.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "pin-project 1.0.10": {
-      "name": "pin-project",
-      "version": "1.0.10",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project/1.0.10/download",
-          "sha256": "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_project",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "pin-project-internal 1.0.10",
-              "target": "pin_project_internal"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.0.10"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-project-internal 1.0.10": {
-      "name": "pin-project-internal",
-      "version": "1.0.10",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-internal/1.0.10/download",
-          "sha256": "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "pin_project_internal",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project_internal",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.10"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-project-lite 0.2.8": {
-      "name": "pin-project-lite",
-      "version": "0.2.8",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download",
-          "sha256": "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_project_lite",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_project_lite",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.2.8"
-      },
-      "license": "Apache-2.0 OR MIT"
-    },
-    "pin-utils 0.1.0": {
-      "name": "pin-utils",
-      "version": "0.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/pin-utils/0.1.0/download",
-          "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "pin_utils",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "pin_utils",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "proc-macro2 1.0.36": {
-      "name": "proc-macro2",
-      "version": "1.0.36",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.36/download",
-          "sha256": "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "proc_macro2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "proc_macro2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.36"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "quote 1.0.15": {
-      "name": "quote",
-      "version": "1.0.15",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/quote/1.0.15/download",
-          "sha256": "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "quote",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "quote",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "proc-macro"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.15"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "redox_syscall 0.2.11": {
-      "name": "redox_syscall",
-      "version": "0.2.11",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/redox_syscall/0.2.11/download",
-          "sha256": "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syscall",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syscall",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.11"
-      },
-      "license": "MIT"
-    },
-    "ryu 1.0.9": {
-      "name": "ryu",
-      "version": "1.0.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/ryu/1.0.9/download",
-          "sha256": "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "ryu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "ryu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.0.9"
-      },
-      "license": "Apache-2.0 OR BSL-1.0"
-    },
-    "scopeguard 1.1.0": {
-      "name": "scopeguard",
-      "version": "1.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
-          "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "scopeguard",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "scopeguard",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "1.1.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "serde 1.0.136": {
-      "name": "serde",
-      "version": "1.0.136",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde/1.0.136/download",
-          "sha256": "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "serde 1.0.136",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.0.136"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_json 1.0.79": {
-      "name": "serde_json",
-      "version": "1.0.79",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_json/1.0.79/download",
-          "sha256": "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_json",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_json",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "raw_value",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "ryu 1.0.9",
-              "target": "ryu"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            },
-            {
-              "id": "serde_json 1.0.79",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.79"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "serde_urlencoded 0.7.1": {
-      "name": "serde_urlencoded",
-      "version": "0.7.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/serde_urlencoded/0.7.1/download",
-          "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "serde_urlencoded",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "serde_urlencoded",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "form_urlencoded 1.0.1",
-              "target": "form_urlencoded"
-            },
-            {
-              "id": "itoa 1.0.1",
-              "target": "itoa"
-            },
-            {
-              "id": "ryu 1.0.9",
-              "target": "ryu"
-            },
-            {
-              "id": "serde 1.0.136",
-              "target": "serde"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.1"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "sharded-slab 0.1.4": {
-      "name": "sharded-slab",
-      "version": "0.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/sharded-slab/0.1.4/download",
-          "sha256": "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "sharded_slab",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "sharded_slab",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.4"
-      },
-      "license": "MIT"
-    },
-    "signal-hook-registry 1.4.0": {
-      "name": "signal-hook-registry",
-      "version": "1.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/signal-hook-registry/1.4.0/download",
-          "sha256": "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "signal_hook_registry",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "signal_hook_registry",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "libc 0.2.119",
-              "target": "libc"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "1.4.0"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "slab 0.4.5": {
-      "name": "slab",
-      "version": "0.4.5",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/slab/0.4.5/download",
-          "sha256": "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "slab",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "slab",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "std"
-        ],
-        "edition": "2018",
-        "version": "0.4.5"
-      },
-      "license": "MIT"
-    },
-    "smallvec 1.8.0": {
-      "name": "smallvec",
-      "version": "1.8.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/smallvec/1.8.0/download",
-          "sha256": "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "smallvec",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "smallvec",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "1.8.0"
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "socket2 0.4.4": {
-      "name": "socket2",
-      "version": "0.4.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/socket2/0.4.4/download",
-          "sha256": "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "socket2",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "socket2",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "all"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.4.4"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "syn 1.0.86": {
-      "name": "syn",
-      "version": "1.0.86",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/syn/1.0.86/download",
-          "sha256": "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "syn",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "syn",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "clone-impls",
-          "default",
-          "derive",
-          "extra-traits",
-          "full",
-          "parsing",
-          "printing",
-          "proc-macro",
-          "quote",
-          "visit",
-          "visit-mut"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "build_script_build"
-            },
-            {
-              "id": "unicode-xid 0.2.2",
-              "target": "unicode_xid"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.0.86"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "sync_wrapper 0.1.1": {
-      "name": "sync_wrapper",
-      "version": "0.1.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/sync_wrapper/0.1.1/download",
-          "sha256": "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "sync_wrapper",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "sync_wrapper",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.1.1"
-      },
-      "license": "Apache-2.0"
-    },
-    "thread_local 1.1.4": {
-      "name": "thread_local",
-      "version": "1.1.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/thread_local/1.1.4/download",
-          "sha256": "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "thread_local",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "thread_local",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.1.4"
-      },
-      "license": "Apache-2.0/MIT"
-    },
-    "tokio 1.17.0": {
-      "name": "tokio",
-      "version": "1.17.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio/1.17.0/download",
-          "sha256": "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "bytes",
-          "default",
-          "fs",
-          "full",
-          "io-std",
-          "io-util",
-          "libc",
-          "macros",
-          "memchr",
-          "mio",
-          "net",
-          "num_cpus",
-          "once_cell",
-          "parking_lot",
-          "process",
-          "rt",
-          "rt-multi-thread",
-          "signal",
-          "signal-hook-registry",
-          "socket2",
-          "sync",
-          "time",
-          "tokio-macros",
-          "winapi"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "memchr 2.4.1",
-              "target": "memchr"
-            },
-            {
-              "id": "mio 0.8.0",
-              "target": "mio"
-            },
-            {
-              "id": "num_cpus 1.13.1",
-              "target": "num_cpus"
-            },
-            {
-              "id": "once_cell 1.10.0",
-              "target": "once_cell"
-            },
-            {
-              "id": "parking_lot 0.12.0",
-              "target": "parking_lot"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "socket2 0.4.4",
-              "target": "socket2"
-            }
-          ],
-          "selects": {
-            "cfg(unix)": [
-              {
-                "id": "libc 0.2.119",
-                "target": "libc"
-              },
-              {
-                "id": "signal-hook-registry 1.4.0",
-                "target": "signal_hook_registry"
-              }
-            ],
-            "cfg(windows)": [
-              {
-                "id": "winapi 0.3.9",
-                "target": "winapi"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "tokio-macros 1.7.0",
-              "target": "tokio_macros"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "1.17.0"
-      },
-      "license": "MIT"
-    },
-    "tokio-macros 1.7.0": {
-      "name": "tokio-macros",
-      "version": "1.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-macros/1.7.0/download",
-          "sha256": "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "tokio_macros",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_macros",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "1.7.0"
-      },
-      "license": "MIT"
-    },
-    "tokio-util 0.6.9": {
-      "name": "tokio-util",
-      "version": "0.6.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-util/0.6.9/download",
-          "sha256": "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "codec",
-          "default"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-sink 0.3.21",
-              "target": "futures_sink"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.6.9"
-      },
-      "license": "MIT"
-    },
-    "tokio-util 0.7.0": {
-      "name": "tokio-util",
-      "version": "0.7.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tokio-util/0.7.0/download",
-          "sha256": "64910e1b9c1901aaf5375561e35b9c057d95ff41a44ede043a03e09279eabaf1"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tokio_util",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tokio_util",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-sink 0.3.21",
-              "target": "futures_sink"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.7.0"
-      },
-      "license": "MIT"
-    },
-    "tower 0.4.12": {
-      "name": "tower",
-      "version": "0.4.12",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tower/0.4.12/download",
-          "sha256": "9a89fd63ad6adf737582df5db40d286574513c69a11dac5214dc3b5603d6713e"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tower",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tower",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "__common",
-          "buffer",
-          "default",
-          "futures-core",
-          "futures-util",
-          "log",
-          "make",
-          "pin-project",
-          "pin-project-lite",
-          "tokio",
-          "tokio-util",
-          "tracing",
-          "util"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "pin-project 1.0.10",
-              "target": "pin_project"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tokio 1.17.0",
-              "target": "tokio"
-            },
-            {
-              "id": "tokio-util 0.7.0",
-              "target": "tokio_util"
-            },
-            {
-              "id": "tower-layer 0.3.1",
-              "target": "tower_layer"
-            },
-            {
-              "id": "tower-service 0.3.1",
-              "target": "tower_service"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.4.12"
-      },
-      "license": "MIT"
-    },
-    "tower-http 0.2.4": {
-      "name": "tower-http",
-      "version": "0.2.4",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tower-http/0.2.4/download",
-          "sha256": "90c125fdea84614a4368fd35786b51d0682ab8d42705e061e92f0b955dea40fb"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tower_http",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tower_http",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "map-response-body",
-          "tower",
-          "trace",
-          "tracing",
-          "util"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "bitflags 1.3.2",
-              "target": "bitflags"
-            },
-            {
-              "id": "bytes 1.1.0",
-              "target": "bytes"
-            },
-            {
-              "id": "futures-core 0.3.21",
-              "target": "futures_core"
-            },
-            {
-              "id": "futures-util 0.3.21",
-              "target": "futures_util"
-            },
-            {
-              "id": "http 0.2.6",
-              "target": "http"
-            },
-            {
-              "id": "http-body 0.4.4",
-              "target": "http_body"
-            },
-            {
-              "id": "http-range-header 0.3.0",
-              "target": "http_range_header"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tower 0.4.12",
-              "target": "tower"
-            },
-            {
-              "id": "tower-layer 0.3.1",
-              "target": "tower_layer"
-            },
-            {
-              "id": "tower-service 0.3.1",
-              "target": "tower_service"
-            },
-            {
-              "id": "tracing 0.1.31",
-              "target": "tracing"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.2.4"
-      },
-      "license": "MIT"
-    },
-    "tower-layer 0.3.1": {
-      "name": "tower-layer",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tower-layer/0.3.1/download",
-          "sha256": "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tower_layer",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tower_layer",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "tower-service 0.3.1": {
-      "name": "tower-service",
-      "version": "0.3.1",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tower-service/0.3.1/download",
-          "sha256": "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tower_service",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tower_service",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2018",
-        "version": "0.3.1"
-      },
-      "license": "MIT"
-    },
-    "tracing 0.1.31": {
-      "name": "tracing",
-      "version": "0.1.31",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing/0.1.31/download",
-          "sha256": "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "attributes",
-          "default",
-          "log",
-          "std",
-          "tracing-attributes"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "cfg-if 1.0.0",
-              "target": "cfg_if"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "pin-project-lite 0.2.8",
-              "target": "pin_project_lite"
-            },
-            {
-              "id": "tracing-core 0.1.22",
-              "target": "tracing_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "proc_macro_deps": {
-          "common": [
-            {
-              "id": "tracing-attributes 0.1.19",
-              "target": "tracing_attributes"
-            }
-          ],
-          "selects": {}
-        },
-        "version": "0.1.31"
-      },
-      "license": "MIT"
-    },
-    "tracing-attributes 0.1.19": {
-      "name": "tracing-attributes",
-      "version": "0.1.19",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.19/download",
-          "sha256": "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716"
-        }
-      },
-      "targets": [
-        {
-          "ProcMacro": {
-            "crate_name": "tracing_attributes",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_attributes",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "proc-macro2 1.0.36",
-              "target": "proc_macro2"
-            },
-            {
-              "id": "quote 1.0.15",
-              "target": "quote"
-            },
-            {
-              "id": "syn 1.0.86",
-              "target": "syn"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.19"
-      },
-      "license": "MIT"
-    },
-    "tracing-core 0.1.22": {
-      "name": "tracing-core",
-      "version": "0.1.22",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.22/download",
-          "sha256": "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing_core",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_core",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default",
-          "lazy_static",
-          "std",
-          "valuable"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            }
-          ],
-          "selects": {
-            "cfg(tracing_unstable)": [
-              {
-                "id": "valuable 0.1.0",
-                "target": "valuable"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.1.22"
-      },
-      "license": "MIT"
-    },
-    "tracing-log 0.1.2": {
-      "name": "tracing-log",
-      "version": "0.1.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-log/0.1.2/download",
-          "sha256": "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing_log",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_log",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "log-tracer",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "lazy_static 1.4.0",
-              "target": "lazy_static"
-            },
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "tracing-core 0.1.22",
-              "target": "tracing_core"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.2"
-      },
-      "license": "MIT"
-    },
-    "tracing-subscriber 0.3.9": {
-      "name": "tracing-subscriber",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/tracing-subscriber/0.3.9/download",
-          "sha256": "9e0ab7bdc962035a87fba73f3acca9b8a8d0034c2e6f60b84aeaaddddc155dce"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "tracing_subscriber",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "tracing_subscriber",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "ansi",
-          "ansi_term",
-          "default",
-          "fmt",
-          "registry",
-          "sharded-slab",
-          "smallvec",
-          "std",
-          "thread_local",
-          "tracing-log"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "ansi_term 0.12.1",
-              "target": "ansi_term"
-            },
-            {
-              "id": "sharded-slab 0.1.4",
-              "target": "sharded_slab"
-            },
-            {
-              "id": "smallvec 1.8.0",
-              "target": "smallvec"
-            },
-            {
-              "id": "thread_local 1.1.4",
-              "target": "thread_local"
-            },
-            {
-              "id": "tracing-core 0.1.22",
-              "target": "tracing_core"
-            },
-            {
-              "id": "tracing-log 0.1.2",
-              "target": "tracing_log"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.9"
-      },
-      "license": "MIT"
-    },
-    "try-lock 0.2.3": {
-      "name": "try-lock",
-      "version": "0.2.3",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/try-lock/0.2.3/download",
-          "sha256": "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "try_lock",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "try_lock",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "edition": "2015",
-        "version": "0.2.3"
-      },
-      "license": "MIT"
-    },
-    "unicode-xid 0.2.2": {
-      "name": "unicode-xid",
-      "version": "0.2.2",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-          "sha256": "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "unicode_xid",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "unicode_xid",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "default"
-        ],
-        "edition": "2015",
-        "version": "0.2.2"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "valuable 0.1.0": {
-      "name": "valuable",
-      "version": "0.1.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/valuable/0.1.0/download",
-          "sha256": "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "valuable",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "valuable",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "alloc",
-          "std"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "valuable 0.1.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.1.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT"
-    },
-    "want 0.3.0": {
-      "name": "want",
-      "version": "0.3.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/want/0.3.0/download",
-          "sha256": "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "want",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "want",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "log 0.4.14",
-              "target": "log"
-            },
-            {
-              "id": "try-lock 0.2.3",
-              "target": "try_lock"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.3.0"
-      },
-      "license": "MIT"
-    },
-    "winapi 0.3.9": {
-      "name": "winapi",
-      "version": "0.3.9",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "cfg",
-          "consoleapi",
-          "errhandlingapi",
-          "evntrace",
-          "fileapi",
-          "handleapi",
-          "in6addr",
-          "inaddr",
-          "ioapiset",
-          "minwinbase",
-          "minwindef",
-          "mswsock",
-          "namedpipeapi",
-          "ntdef",
-          "ntsecapi",
-          "processenv",
-          "std",
-          "synchapi",
-          "threadpoollegacyapiset",
-          "windef",
-          "winerror",
-          "winioctl",
-          "winsock2",
-          "ws2def",
-          "ws2ipdef",
-          "ws2tcpip"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi 0.3.9",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {
-            "i686-pc-windows-gnu": [
-              {
-                "id": "winapi-i686-pc-windows-gnu 0.4.0",
-                "target": "winapi_i686_pc_windows_gnu"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-                "target": "winapi_x86_64_pc_windows_gnu"
-              }
-            ]
-          }
-        },
-        "edition": "2015",
-        "version": "0.3.9"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-i686-pc-windows-gnu 0.4.0": {
-      "name": "winapi-i686-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_i686_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_i686_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-i686-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "winapi-x86_64-pc-windows-gnu 0.4.0": {
-      "name": "winapi-x86_64-pc-windows-gnu",
-      "version": "0.4.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "winapi_x86_64_pc_windows_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "winapi_x86_64_pc_windows_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2015",
-        "version": "0.4.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT/Apache-2.0"
-    },
-    "windows-sys 0.32.0": {
-      "name": "windows-sys",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows-sys/0.32.0/download",
-          "sha256": "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_sys",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_sys",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "crate_features": [
-          "Win32",
-          "Win32_Foundation",
-          "Win32_System",
-          "Win32_System_LibraryLoader",
-          "Win32_System_SystemServices",
-          "Win32_System_WindowsProgramming",
-          "default"
-        ],
-        "deps": {
-          "common": [],
-          "selects": {
-            "aarch64-pc-windows-msvc": [
-              {
-                "id": "windows_aarch64_msvc 0.32.0",
-                "target": "windows_aarch64_msvc"
-              }
-            ],
-            "aarch64-uwp-windows-msvc": [
-              {
-                "id": "windows_aarch64_msvc 0.32.0",
-                "target": "windows_aarch64_msvc"
-              }
-            ],
-            "i686-pc-windows-gnu": [
-              {
-                "id": "windows_i686_gnu 0.32.0",
-                "target": "windows_i686_gnu"
-              }
-            ],
-            "i686-pc-windows-msvc": [
-              {
-                "id": "windows_i686_msvc 0.32.0",
-                "target": "windows_i686_msvc"
-              }
-            ],
-            "i686-uwp-windows-gnu": [
-              {
-                "id": "windows_i686_gnu 0.32.0",
-                "target": "windows_i686_gnu"
-              }
-            ],
-            "i686-uwp-windows-msvc": [
-              {
-                "id": "windows_i686_msvc 0.32.0",
-                "target": "windows_i686_msvc"
-              }
-            ],
-            "x86_64-pc-windows-gnu": [
-              {
-                "id": "windows_x86_64_gnu 0.32.0",
-                "target": "windows_x86_64_gnu"
-              }
-            ],
-            "x86_64-pc-windows-msvc": [
-              {
-                "id": "windows_x86_64_msvc 0.32.0",
-                "target": "windows_x86_64_msvc"
-              }
-            ],
-            "x86_64-uwp-windows-gnu": [
-              {
-                "id": "windows_x86_64_gnu 0.32.0",
-                "target": "windows_x86_64_gnu"
-              }
-            ],
-            "x86_64-uwp-windows-msvc": [
-              {
-                "id": "windows_x86_64_msvc 0.32.0",
-                "target": "windows_x86_64_msvc"
-              }
-            ]
-          }
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "windows_aarch64_msvc 0.32.0": {
-      "name": "windows_aarch64_msvc",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.32.0/download",
-          "sha256": "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_aarch64_msvc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_aarch64_msvc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "windows_aarch64_msvc 0.32.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "windows_i686_gnu 0.32.0": {
-      "name": "windows_i686_gnu",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.32.0/download",
-          "sha256": "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_i686_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_i686_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "windows_i686_gnu 0.32.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "windows_i686_msvc 0.32.0": {
-      "name": "windows_i686_msvc",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.32.0/download",
-          "sha256": "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_i686_msvc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_i686_msvc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "windows_i686_msvc 0.32.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "windows_x86_64_gnu 0.32.0": {
-      "name": "windows_x86_64_gnu",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.32.0/download",
-          "sha256": "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_x86_64_gnu",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_x86_64_gnu",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "windows_x86_64_gnu 0.32.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    },
-    "windows_x86_64_msvc 0.32.0": {
-      "name": "windows_x86_64_msvc",
-      "version": "0.32.0",
-      "repository": {
-        "Http": {
-          "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.32.0/download",
-          "sha256": "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316"
-        }
-      },
-      "targets": [
-        {
-          "Library": {
-            "crate_name": "windows_x86_64_msvc",
-            "crate_root": "src/lib.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        },
-        {
-          "BuildScript": {
-            "crate_name": "build_script_build",
-            "crate_root": "build.rs",
-            "srcs": {
-              "include": [
-                "**/*.rs"
-              ],
-              "exclude": []
-            }
-          }
-        }
-      ],
-      "library_target_name": "windows_x86_64_msvc",
-      "common_attrs": {
-        "compile_data_glob": [
-          "**"
-        ],
-        "deps": {
-          "common": [
-            {
-              "id": "windows_x86_64_msvc 0.32.0",
-              "target": "build_script_build"
-            }
-          ],
-          "selects": {}
-        },
-        "edition": "2018",
-        "version": "0.32.0"
-      },
-      "build_script_attrs": {
-        "data_glob": [
-          "**"
-        ]
-      },
-      "license": "MIT OR Apache-2.0"
-    }
-  },
-  "binary_crates": [],
-  "workspace_members": {
-    "direct-cargo-bazel-deps 0.0.1": ""
-  },
-  "conditions": {
-    "aarch64-pc-windows-msvc": [],
-    "aarch64-uwp-windows-msvc": [],
-    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(not(windows))": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "wasm32-unknown-unknown",
-      "wasm32-wasi",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(target_os = \"redox\")": [],
-    "cfg(target_os = \"windows\")": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "cfg(tracing_unstable)": [],
-    "cfg(unix)": [
-      "aarch64-apple-darwin",
-      "aarch64-apple-ios",
-      "aarch64-linux-android",
-      "aarch64-unknown-linux-gnu",
-      "arm-unknown-linux-gnueabi",
-      "armv7-unknown-linux-gnueabi",
-      "i686-apple-darwin",
-      "i686-linux-android",
-      "i686-unknown-freebsd",
-      "i686-unknown-linux-gnu",
-      "powerpc-unknown-linux-gnu",
-      "s390x-unknown-linux-gnu",
-      "x86_64-apple-darwin",
-      "x86_64-apple-ios",
-      "x86_64-linux-android",
-      "x86_64-unknown-freebsd",
-      "x86_64-unknown-linux-gnu"
-    ],
-    "cfg(windows)": [
-      "i686-pc-windows-msvc",
-      "x86_64-pc-windows-msvc"
-    ],
-    "i686-pc-windows-gnu": [],
-    "i686-pc-windows-msvc": [
-      "i686-pc-windows-msvc"
-    ],
-    "i686-uwp-windows-gnu": [],
-    "i686-uwp-windows-msvc": [],
-    "x86_64-pc-windows-gnu": [],
-    "x86_64-pc-windows-msvc": [
-      "x86_64-pc-windows-msvc"
-    ],
-    "x86_64-uwp-windows-gnu": [],
-    "x86_64-uwp-windows-msvc": []
-  }
-}
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "async-trait"
+version = "0.1.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "axum"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9f346c92c1e9a71d14fe4aaf7c2a5d9932cc4e5e48d8fb6641524416eb79ddd"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dbcda393bef9c87572779cb8ef916f12d77750b27535dd6819fa86591627a51"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bytes"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "axum",
+ "hyper",
+ "mime",
+ "serde_json",
+ "tokio",
+ "tower",
+ "tower-http",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+
+[[package]]
+name = "futures-sink"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+
+[[package]]
+name = "futures-task"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+
+[[package]]
+name = "futures-util"
+version = "0.3.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "http"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-range-header"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
+
+[[package]]
+name = "httparse"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+
+[[package]]
+name = "httpdate"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+
+[[package]]
+name = "hyper"
+version = "0.14.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "lock_api"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "matchit"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9376a4f0340565ad675d11fc1419227faf5f60cd7ac9cb2e7185a471f30af833"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "mio"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pin-project"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.138"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
+
+[[package]]
+name = "serde_json"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "slab"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+
+[[package]]
+name = "smallvec"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+
+[[package]]
+name = "socket2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
+
+[[package]]
+name = "thread_local"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "tokio"
+version = "1.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
+dependencies = [
+ "bytes",
+ "libc",
+ "memchr",
+ "mio",
+ "num_cpus",
+ "once_cell",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "winapi",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8"
+dependencies = [
+ "bitflags",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62"
+
+[[package]]
+name = "tower-service"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+
+[[package]]
+name = "tracing"
+version = "0.1.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
+dependencies = [
+ "cfg-if",
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+dependencies = [
+ "lazy_static",
+ "log",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59"
+dependencies = [
+ "ansi_term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "want"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+dependencies = [
+ "log",
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
diff --git a/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/cargo-bazel-lock.json b/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/cargo-bazel-lock.json
new file mode 100644
index 0000000..03692c0
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/no_cargo_manifests/cargo-bazel-lock.json
@@ -0,0 +1,4924 @@
+{
+  "checksum": "4b51399cb949606e8decd4492f40694118346c25f81e405088c43eecdc9b54ad",
+  "crates": {
+    "ansi_term 0.12.1": {
+      "name": "ansi_term",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ansi_term/0.12.1/download",
+          "sha256": "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ansi_term",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ansi_term",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(target_os = \"windows\")": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.12.1"
+      },
+      "license": "MIT"
+    },
+    "async-trait 0.1.56": {
+      "name": "async-trait",
+      "version": "0.1.56",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/async-trait/0.1.56/download",
+          "sha256": "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "async_trait",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "async_trait",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "async-trait 0.1.56",
+              "target": "build_script_build"
+            },
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.56"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "autocfg 1.1.0": {
+      "name": "autocfg",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/autocfg/1.1.0/download",
+          "sha256": "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "autocfg",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "autocfg",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.1.0"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "axum 0.4.8": {
+      "name": "axum",
+      "version": "0.4.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/axum/0.4.8/download",
+          "sha256": "c9f346c92c1e9a71d14fe4aaf7c2a5d9932cc4e5e48d8fb6641524416eb79ddd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "axum",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "axum",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**",
+          "**/*.md"
+        ],
+        "crate_features": [
+          "default",
+          "http1",
+          "json",
+          "serde_json",
+          "tower-log"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "axum-core 0.1.2",
+              "target": "axum_core"
+            },
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "http-body 0.4.5",
+              "target": "http_body"
+            },
+            {
+              "id": "hyper 0.14.19",
+              "target": "hyper"
+            },
+            {
+              "id": "matchit 0.4.6",
+              "target": "matchit"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "mime 0.3.16",
+              "target": "mime"
+            },
+            {
+              "id": "percent-encoding 2.1.0",
+              "target": "percent_encoding"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "serde_json"
+            },
+            {
+              "id": "serde_urlencoded 0.7.1",
+              "target": "serde_urlencoded"
+            },
+            {
+              "id": "sync_wrapper 0.1.1",
+              "target": "sync_wrapper"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tower 0.4.13",
+              "target": "tower"
+            },
+            {
+              "id": "tower-http 0.2.5",
+              "target": "tower_http"
+            },
+            {
+              "id": "tower-layer 0.3.1",
+              "target": "tower_layer"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "async-trait 0.1.56",
+              "target": "async_trait"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.4.8"
+      },
+      "license": "MIT"
+    },
+    "axum-core 0.1.2": {
+      "name": "axum-core",
+      "version": "0.1.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/axum-core/0.1.2/download",
+          "sha256": "6dbcda393bef9c87572779cb8ef916f12d77750b27535dd6819fa86591627a51"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "axum_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "axum_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "http-body 0.4.5",
+              "target": "http_body"
+            },
+            {
+              "id": "mime 0.3.16",
+              "target": "mime"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "async-trait 0.1.56",
+              "target": "async_trait"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.1.2"
+      },
+      "license": "MIT"
+    },
+    "bitflags 1.3.2": {
+      "name": "bitflags",
+      "version": "1.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
+          "sha256": "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bitflags",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bitflags",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "1.3.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "bytes 1.1.0": {
+      "name": "bytes",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/bytes/1.1.0/download",
+          "sha256": "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "bytes",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "bytes",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "1.1.0"
+      },
+      "license": "MIT"
+    },
+    "cfg-if 1.0.0": {
+      "name": "cfg-if",
+      "version": "1.0.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
+          "sha256": "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "cfg_if",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "cfg_if",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "direct-cargo-bazel-deps 0.0.1": {
+      "name": "direct-cargo-bazel-deps",
+      "version": "0.0.1",
+      "repository": null,
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "direct_cargo_bazel_deps",
+            "crate_root": ".direct_cargo_bazel_deps.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "direct_cargo_bazel_deps",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "axum 0.4.8",
+              "target": "axum"
+            },
+            {
+              "id": "hyper 0.14.19",
+              "target": "hyper"
+            },
+            {
+              "id": "mime 0.3.16",
+              "target": "mime"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "serde_json"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tower 0.4.13",
+              "target": "tower"
+            },
+            {
+              "id": "tower-http 0.2.5",
+              "target": "tower_http"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            },
+            {
+              "id": "tracing-subscriber 0.3.14",
+              "target": "tracing_subscriber"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.0.1"
+      },
+      "license": null
+    },
+    "fnv 1.0.7": {
+      "name": "fnv",
+      "version": "1.0.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/fnv/1.0.7/download",
+          "sha256": "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "fnv",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "fnv",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2015",
+        "version": "1.0.7"
+      },
+      "license": "Apache-2.0 / MIT"
+    },
+    "form_urlencoded 1.0.1": {
+      "name": "form_urlencoded",
+      "version": "1.0.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
+          "sha256": "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "form_urlencoded",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "form_urlencoded",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "matches 0.1.9",
+              "target": "matches"
+            },
+            {
+              "id": "percent-encoding 2.1.0",
+              "target": "percent_encoding"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "futures-channel 0.3.21": {
+      "name": "futures-channel",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-channel/0.3.21/download",
+          "sha256": "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_channel",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_channel",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-channel 0.3.21",
+              "target": "build_script_build"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-core 0.3.21": {
+      "name": "futures-core",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-core/0.3.21/download",
+          "sha256": "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-core 0.3.21",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-sink 0.3.21": {
+      "name": "futures-sink",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-sink/0.3.21/download",
+          "sha256": "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_sink",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_sink",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-task 0.3.21": {
+      "name": "futures-task",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-task/0.3.21/download",
+          "sha256": "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_task",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_task",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-task 0.3.21",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "futures-util 0.3.21": {
+      "name": "futures-util",
+      "version": "0.3.21",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/futures-util/0.3.21/download",
+          "sha256": "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "futures_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "futures_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-task 0.3.21",
+              "target": "futures_task"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "build_script_build"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "pin-utils 0.1.0",
+              "target": "pin_utils"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.21"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "h2 0.3.13": {
+      "name": "h2",
+      "version": "0.3.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/h2/0.3.13/download",
+          "sha256": "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "h2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "h2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "fnv 1.0.7",
+              "target": "fnv"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-sink 0.3.21",
+              "target": "futures_sink"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "indexmap"
+            },
+            {
+              "id": "slab 0.4.6",
+              "target": "slab"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tokio-util 0.7.3",
+              "target": "tokio_util"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.13"
+      },
+      "license": "MIT"
+    },
+    "hashbrown 0.12.1": {
+      "name": "hashbrown",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hashbrown/0.12.1/download",
+          "sha256": "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hashbrown",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hashbrown",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "raw"
+        ],
+        "edition": "2021",
+        "version": "0.12.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "hermit-abi 0.1.19": {
+      "name": "hermit-abi",
+      "version": "0.1.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
+          "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hermit_abi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hermit_abi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.19"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "http 0.2.8": {
+      "name": "http",
+      "version": "0.2.8",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/http/0.2.8/download",
+          "sha256": "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "http",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "http",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "fnv 1.0.7",
+              "target": "fnv"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.8"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "http-body 0.4.5": {
+      "name": "http-body",
+      "version": "0.4.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/http-body/0.4.5/download",
+          "sha256": "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "http_body",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "http_body",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.5"
+      },
+      "license": "MIT"
+    },
+    "http-range-header 0.3.0": {
+      "name": "http-range-header",
+      "version": "0.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/http-range-header/0.3.0/download",
+          "sha256": "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "http_range_header",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "http_range_header",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.0"
+      },
+      "license": "MIT"
+    },
+    "httparse 1.7.1": {
+      "name": "httparse",
+      "version": "1.7.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/httparse/1.7.1/download",
+          "sha256": "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "httparse",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "httparse",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "httparse 1.7.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.7.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "httpdate 1.0.2": {
+      "name": "httpdate",
+      "version": "1.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/httpdate/1.0.2/download",
+          "sha256": "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "httpdate",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "httpdate",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.2"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "hyper 0.14.19": {
+      "name": "hyper",
+      "version": "0.14.19",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/hyper/0.14.19/download",
+          "sha256": "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "hyper",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "hyper",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "client",
+          "default",
+          "full",
+          "h2",
+          "http1",
+          "http2",
+          "runtime",
+          "server",
+          "socket2",
+          "stream",
+          "tcp"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-channel 0.3.21",
+              "target": "futures_channel"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "h2 0.3.13",
+              "target": "h2"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "http-body 0.4.5",
+              "target": "http_body"
+            },
+            {
+              "id": "httparse 1.7.1",
+              "target": "httparse"
+            },
+            {
+              "id": "httpdate 1.0.2",
+              "target": "httpdate"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            },
+            {
+              "id": "want 0.3.0",
+              "target": "want"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.14.19"
+      },
+      "license": "MIT"
+    },
+    "indexmap 1.9.1": {
+      "name": "indexmap",
+      "version": "1.9.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/indexmap/1.9.1/download",
+          "sha256": "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "indexmap",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "indexmap",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "hashbrown 0.12.1",
+              "target": "hashbrown"
+            },
+            {
+              "id": "indexmap 1.9.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2021",
+        "version": "1.9.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "itoa 1.0.2": {
+      "name": "itoa",
+      "version": "1.0.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/itoa/1.0.2/download",
+          "sha256": "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "itoa",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "itoa",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.2"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "lazy_static 1.4.0": {
+      "name": "lazy_static",
+      "version": "1.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
+          "sha256": "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lazy_static",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lazy_static",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.4.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "libc 0.2.126": {
+      "name": "libc",
+      "version": "0.2.126",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/libc/0.2.126/download",
+          "sha256": "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "libc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "libc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.2.126"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "lock_api 0.4.7": {
+      "name": "lock_api",
+      "version": "0.4.7",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/lock_api/0.4.7/download",
+          "sha256": "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "lock_api",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "lock_api",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lock_api 0.4.7",
+              "target": "build_script_build"
+            },
+            {
+              "id": "scopeguard 1.1.0",
+              "target": "scopeguard"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.7"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "autocfg 1.1.0",
+              "target": "autocfg"
+            }
+          ],
+          "selects": {}
+        }
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "log 0.4.17": {
+      "name": "log",
+      "version": "0.4.17",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/log/0.4.17/download",
+          "sha256": "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "log",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "log",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.17"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "matches 0.1.9": {
+      "name": "matches",
+      "version": "0.1.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/matches/0.1.9/download",
+          "sha256": "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "matches",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "matches",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.1.9"
+      },
+      "license": "MIT"
+    },
+    "matchit 0.4.6": {
+      "name": "matchit",
+      "version": "0.4.6",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/matchit/0.4.6/download",
+          "sha256": "9376a4f0340565ad675d11fc1419227faf5f60cd7ac9cb2e7185a471f30af833"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "matchit",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "matchit",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "edition": "2018",
+        "version": "0.4.6"
+      },
+      "license": "MIT"
+    },
+    "memchr 2.5.0": {
+      "name": "memchr",
+      "version": "2.5.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/memchr/2.5.0/download",
+          "sha256": "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "memchr",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "memchr",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "memchr 2.5.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "2.5.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "Unlicense/MIT"
+    },
+    "mime 0.3.16": {
+      "name": "mime",
+      "version": "0.3.16",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/mime/0.3.16/download",
+          "sha256": "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "mime",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "mime",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.3.16"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "mio 0.8.4": {
+      "name": "mio",
+      "version": "0.8.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/mio/0.8.4/download",
+          "sha256": "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "mio",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "mio",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "net",
+          "os-ext",
+          "os-poll"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"wasi\")": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "wasi 0.11.0+wasi-snapshot-preview1",
+                "target": "wasi"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "windows-sys 0.36.1",
+                "target": "windows_sys"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.8.4"
+      },
+      "license": "MIT"
+    },
+    "num_cpus 1.13.1": {
+      "name": "num_cpus",
+      "version": "1.13.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/num_cpus/1.13.1/download",
+          "sha256": "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "num_cpus",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "num_cpus",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [
+              {
+                "id": "hermit-abi 0.1.19",
+                "target": "hermit_abi"
+              }
+            ],
+            "cfg(not(windows))": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "1.13.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "once_cell 1.13.0": {
+      "name": "once_cell",
+      "version": "1.13.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/once_cell/1.13.0/download",
+          "sha256": "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "once_cell",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "once_cell",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "default",
+          "race",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "1.13.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "parking_lot 0.12.1": {
+      "name": "parking_lot",
+      "version": "0.12.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/parking_lot/0.12.1/download",
+          "sha256": "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "parking_lot",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "parking_lot",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lock_api 0.4.7",
+              "target": "lock_api"
+            },
+            {
+              "id": "parking_lot_core 0.9.3",
+              "target": "parking_lot_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.12.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "parking_lot_core 0.9.3": {
+      "name": "parking_lot_core",
+      "version": "0.9.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/parking_lot_core/0.9.3/download",
+          "sha256": "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "parking_lot_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "parking_lot_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "parking_lot_core 0.9.3",
+              "target": "build_script_build"
+            },
+            {
+              "id": "smallvec 1.9.0",
+              "target": "smallvec"
+            }
+          ],
+          "selects": {
+            "cfg(target_os = \"redox\")": [
+              {
+                "id": "redox_syscall 0.2.13",
+                "target": "syscall"
+              }
+            ],
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "windows-sys 0.36.1",
+                "target": "windows_sys"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.9.3"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "percent-encoding 2.1.0": {
+      "name": "percent-encoding",
+      "version": "2.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
+          "sha256": "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "percent_encoding",
+            "crate_root": "lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "percent_encoding",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "2.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "pin-project 1.0.11": {
+      "name": "pin-project",
+      "version": "1.0.11",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project/1.0.11/download",
+          "sha256": "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_project",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "pin-project-internal 1.0.11",
+              "target": "pin_project_internal"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.0.11"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-project-internal 1.0.11": {
+      "name": "pin-project-internal",
+      "version": "1.0.11",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project-internal/1.0.11/download",
+          "sha256": "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "pin_project_internal",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project_internal",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.11"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-project-lite 0.2.9": {
+      "name": "pin-project-lite",
+      "version": "0.2.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download",
+          "sha256": "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_project_lite",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_project_lite",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.2.9"
+      },
+      "license": "Apache-2.0 OR MIT"
+    },
+    "pin-utils 0.1.0": {
+      "name": "pin-utils",
+      "version": "0.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/pin-utils/0.1.0/download",
+          "sha256": "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "pin_utils",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "pin_utils",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "proc-macro2 1.0.40": {
+      "name": "proc-macro2",
+      "version": "1.0.40",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.40/download",
+          "sha256": "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "proc_macro2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "proc_macro2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.40"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "quote 1.0.20": {
+      "name": "quote",
+      "version": "1.0.20",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/quote/1.0.20/download",
+          "sha256": "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "quote",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "quote",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "proc-macro"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.20"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "redox_syscall 0.2.13": {
+      "name": "redox_syscall",
+      "version": "0.2.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/redox_syscall/0.2.13/download",
+          "sha256": "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "syscall",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "syscall",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.13"
+      },
+      "license": "MIT"
+    },
+    "ryu 1.0.10": {
+      "name": "ryu",
+      "version": "1.0.10",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/ryu/1.0.10/download",
+          "sha256": "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "ryu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "ryu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.10"
+      },
+      "license": "Apache-2.0 OR BSL-1.0"
+    },
+    "scopeguard 1.1.0": {
+      "name": "scopeguard",
+      "version": "1.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
+          "sha256": "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "scopeguard",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "scopeguard",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "1.1.0"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "serde 1.0.138": {
+      "name": "serde",
+      "version": "1.0.138",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde/1.0.138/download",
+          "sha256": "1578c6245786b9d168c5447eeacfb96856573ca56c9d68fdcf394be134882a47"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "serde 1.0.138",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.0.138"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde_json 1.0.82": {
+      "name": "serde_json",
+      "version": "1.0.82",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_json/1.0.82/download",
+          "sha256": "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde_json",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_json",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "raw_value",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "ryu 1.0.10",
+              "target": "ryu"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            },
+            {
+              "id": "serde_json 1.0.82",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.82"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "serde_urlencoded 0.7.1": {
+      "name": "serde_urlencoded",
+      "version": "0.7.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/serde_urlencoded/0.7.1/download",
+          "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "serde_urlencoded",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "serde_urlencoded",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "form_urlencoded 1.0.1",
+              "target": "form_urlencoded"
+            },
+            {
+              "id": "itoa 1.0.2",
+              "target": "itoa"
+            },
+            {
+              "id": "ryu 1.0.10",
+              "target": "ryu"
+            },
+            {
+              "id": "serde 1.0.138",
+              "target": "serde"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.1"
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "sharded-slab 0.1.4": {
+      "name": "sharded-slab",
+      "version": "0.1.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/sharded-slab/0.1.4/download",
+          "sha256": "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "sharded_slab",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "sharded_slab",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lazy_static 1.4.0",
+              "target": "lazy_static"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.4"
+      },
+      "license": "MIT"
+    },
+    "signal-hook-registry 1.4.0": {
+      "name": "signal-hook-registry",
+      "version": "1.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/signal-hook-registry/1.4.0/download",
+          "sha256": "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "signal_hook_registry",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "signal_hook_registry",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "libc 0.2.126",
+              "target": "libc"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "1.4.0"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "slab 0.4.6": {
+      "name": "slab",
+      "version": "0.4.6",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/slab/0.4.6/download",
+          "sha256": "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "slab",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "slab",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.4.6"
+      },
+      "license": "MIT"
+    },
+    "smallvec 1.9.0": {
+      "name": "smallvec",
+      "version": "1.9.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/smallvec/1.9.0/download",
+          "sha256": "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "smallvec",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "smallvec",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.9.0"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "socket2 0.4.4": {
+      "name": "socket2",
+      "version": "0.4.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/socket2/0.4.4/download",
+          "sha256": "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "socket2",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "socket2",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "all"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.4.4"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "syn 1.0.98": {
+      "name": "syn",
+      "version": "1.0.98",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/syn/1.0.98/download",
+          "sha256": "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "syn",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "syn",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "clone-impls",
+          "default",
+          "derive",
+          "extra-traits",
+          "full",
+          "parsing",
+          "printing",
+          "proc-macro",
+          "quote",
+          "visit",
+          "visit-mut"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "build_script_build"
+            },
+            {
+              "id": "unicode-ident 1.0.1",
+              "target": "unicode_ident"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.0.98"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "sync_wrapper 0.1.1": {
+      "name": "sync_wrapper",
+      "version": "0.1.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/sync_wrapper/0.1.1/download",
+          "sha256": "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "sync_wrapper",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "sync_wrapper",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.1.1"
+      },
+      "license": "Apache-2.0"
+    },
+    "thread_local 1.1.4": {
+      "name": "thread_local",
+      "version": "1.1.4",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/thread_local/1.1.4/download",
+          "sha256": "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "thread_local",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "thread_local",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.1.4"
+      },
+      "license": "Apache-2.0/MIT"
+    },
+    "tokio 1.19.2": {
+      "name": "tokio",
+      "version": "1.19.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio/1.19.2/download",
+          "sha256": "c51a52ed6686dd62c320f9b89299e9dfb46f730c7a48e635c19f21d116cb1439"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tokio",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "bytes",
+          "default",
+          "fs",
+          "full",
+          "io-std",
+          "io-util",
+          "libc",
+          "macros",
+          "memchr",
+          "mio",
+          "net",
+          "num_cpus",
+          "once_cell",
+          "parking_lot",
+          "process",
+          "rt",
+          "rt-multi-thread",
+          "signal",
+          "signal-hook-registry",
+          "socket2",
+          "sync",
+          "time",
+          "tokio-macros",
+          "winapi"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "memchr 2.5.0",
+              "target": "memchr"
+            },
+            {
+              "id": "mio 0.8.4",
+              "target": "mio"
+            },
+            {
+              "id": "num_cpus 1.13.1",
+              "target": "num_cpus"
+            },
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            },
+            {
+              "id": "parking_lot 0.12.1",
+              "target": "parking_lot"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "socket2 0.4.4",
+              "target": "socket2"
+            }
+          ],
+          "selects": {
+            "cfg(unix)": [
+              {
+                "id": "libc 0.2.126",
+                "target": "libc"
+              },
+              {
+                "id": "signal-hook-registry 1.4.0",
+                "target": "signal_hook_registry"
+              }
+            ],
+            "cfg(windows)": [
+              {
+                "id": "winapi 0.3.9",
+                "target": "winapi"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "tokio-macros 1.8.0",
+              "target": "tokio_macros"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "1.19.2"
+      },
+      "license": "MIT"
+    },
+    "tokio-macros 1.8.0": {
+      "name": "tokio-macros",
+      "version": "1.8.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio-macros/1.8.0/download",
+          "sha256": "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "tokio_macros",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio_macros",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "1.8.0"
+      },
+      "license": "MIT"
+    },
+    "tokio-util 0.7.3": {
+      "name": "tokio-util",
+      "version": "0.7.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tokio-util/0.7.3/download",
+          "sha256": "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tokio_util",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tokio_util",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "codec",
+          "default",
+          "tracing"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-sink 0.3.21",
+              "target": "futures_sink"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.7.3"
+      },
+      "license": "MIT"
+    },
+    "tower 0.4.13": {
+      "name": "tower",
+      "version": "0.4.13",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tower/0.4.13/download",
+          "sha256": "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tower",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tower",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "__common",
+          "buffer",
+          "default",
+          "futures-core",
+          "futures-util",
+          "log",
+          "make",
+          "pin-project",
+          "pin-project-lite",
+          "tokio",
+          "tokio-util",
+          "tracing",
+          "util"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "pin-project 1.0.11",
+              "target": "pin_project"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tokio 1.19.2",
+              "target": "tokio"
+            },
+            {
+              "id": "tokio-util 0.7.3",
+              "target": "tokio_util"
+            },
+            {
+              "id": "tower-layer 0.3.1",
+              "target": "tower_layer"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.4.13"
+      },
+      "license": "MIT"
+    },
+    "tower-http 0.2.5": {
+      "name": "tower-http",
+      "version": "0.2.5",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tower-http/0.2.5/download",
+          "sha256": "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tower_http",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tower_http",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "map-response-body",
+          "tower",
+          "trace",
+          "tracing",
+          "util"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "bitflags 1.3.2",
+              "target": "bitflags"
+            },
+            {
+              "id": "bytes 1.1.0",
+              "target": "bytes"
+            },
+            {
+              "id": "futures-core 0.3.21",
+              "target": "futures_core"
+            },
+            {
+              "id": "futures-util 0.3.21",
+              "target": "futures_util"
+            },
+            {
+              "id": "http 0.2.8",
+              "target": "http"
+            },
+            {
+              "id": "http-body 0.4.5",
+              "target": "http_body"
+            },
+            {
+              "id": "http-range-header 0.3.0",
+              "target": "http_range_header"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tower 0.4.13",
+              "target": "tower"
+            },
+            {
+              "id": "tower-layer 0.3.1",
+              "target": "tower_layer"
+            },
+            {
+              "id": "tower-service 0.3.2",
+              "target": "tower_service"
+            },
+            {
+              "id": "tracing 0.1.35",
+              "target": "tracing"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.2.5"
+      },
+      "license": "MIT"
+    },
+    "tower-layer 0.3.1": {
+      "name": "tower-layer",
+      "version": "0.3.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tower-layer/0.3.1/download",
+          "sha256": "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tower_layer",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tower_layer",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.1"
+      },
+      "license": "MIT"
+    },
+    "tower-service 0.3.2": {
+      "name": "tower-service",
+      "version": "0.3.2",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tower-service/0.3.2/download",
+          "sha256": "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tower_service",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tower_service",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "0.3.2"
+      },
+      "license": "MIT"
+    },
+    "tracing 0.1.35": {
+      "name": "tracing",
+      "version": "0.1.35",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing/0.1.35/download",
+          "sha256": "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "attributes",
+          "default",
+          "log",
+          "std",
+          "tracing-attributes"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "cfg-if 1.0.0",
+              "target": "cfg_if"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "pin-project-lite 0.2.9",
+              "target": "pin_project_lite"
+            },
+            {
+              "id": "tracing-core 0.1.28",
+              "target": "tracing_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "proc_macro_deps": {
+          "common": [
+            {
+              "id": "tracing-attributes 0.1.22",
+              "target": "tracing_attributes"
+            }
+          ],
+          "selects": {}
+        },
+        "version": "0.1.35"
+      },
+      "license": "MIT"
+    },
+    "tracing-attributes 0.1.22": {
+      "name": "tracing-attributes",
+      "version": "0.1.22",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-attributes/0.1.22/download",
+          "sha256": "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
+        }
+      },
+      "targets": [
+        {
+          "ProcMacro": {
+            "crate_name": "tracing_attributes",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_attributes",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "proc-macro2 1.0.40",
+              "target": "proc_macro2"
+            },
+            {
+              "id": "quote 1.0.20",
+              "target": "quote"
+            },
+            {
+              "id": "syn 1.0.98",
+              "target": "syn"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.22"
+      },
+      "license": "MIT"
+    },
+    "tracing-core 0.1.28": {
+      "name": "tracing-core",
+      "version": "0.1.28",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-core/0.1.28/download",
+          "sha256": "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing_core",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_core",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "once_cell",
+          "std",
+          "valuable"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "once_cell 1.13.0",
+              "target": "once_cell"
+            }
+          ],
+          "selects": {
+            "cfg(tracing_unstable)": [
+              {
+                "id": "valuable 0.1.0",
+                "target": "valuable"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.1.28"
+      },
+      "license": "MIT"
+    },
+    "tracing-log 0.1.3": {
+      "name": "tracing-log",
+      "version": "0.1.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-log/0.1.3/download",
+          "sha256": "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing_log",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_log",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "log-tracer",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "lazy_static 1.4.0",
+              "target": "lazy_static"
+            },
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "tracing-core 0.1.28",
+              "target": "tracing_core"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.3"
+      },
+      "license": "MIT"
+    },
+    "tracing-subscriber 0.3.14": {
+      "name": "tracing-subscriber",
+      "version": "0.3.14",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/tracing-subscriber/0.3.14/download",
+          "sha256": "3a713421342a5a666b7577783721d3117f1b69a393df803ee17bb73b1e122a59"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "tracing_subscriber",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "tracing_subscriber",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "ansi",
+          "ansi_term",
+          "default",
+          "fmt",
+          "registry",
+          "sharded-slab",
+          "smallvec",
+          "std",
+          "thread_local",
+          "tracing-log"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "ansi_term 0.12.1",
+              "target": "ansi_term"
+            },
+            {
+              "id": "sharded-slab 0.1.4",
+              "target": "sharded_slab"
+            },
+            {
+              "id": "smallvec 1.9.0",
+              "target": "smallvec"
+            },
+            {
+              "id": "thread_local 1.1.4",
+              "target": "thread_local"
+            },
+            {
+              "id": "tracing-core 0.1.28",
+              "target": "tracing_core"
+            },
+            {
+              "id": "tracing-log 0.1.3",
+              "target": "tracing_log"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.14"
+      },
+      "license": "MIT"
+    },
+    "try-lock 0.2.3": {
+      "name": "try-lock",
+      "version": "0.2.3",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/try-lock/0.2.3/download",
+          "sha256": "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "try_lock",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "try_lock",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2015",
+        "version": "0.2.3"
+      },
+      "license": "MIT"
+    },
+    "unicode-ident 1.0.1": {
+      "name": "unicode-ident",
+      "version": "1.0.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.1/download",
+          "sha256": "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "unicode_ident",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "unicode_ident",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "edition": "2018",
+        "version": "1.0.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "valuable 0.1.0": {
+      "name": "valuable",
+      "version": "0.1.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/valuable/0.1.0/download",
+          "sha256": "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "valuable",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "valuable",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "alloc",
+          "std"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "valuable 0.1.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.1.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT"
+    },
+    "want 0.3.0": {
+      "name": "want",
+      "version": "0.3.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/want/0.3.0/download",
+          "sha256": "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "want",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "want",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "log 0.4.17",
+              "target": "log"
+            },
+            {
+              "id": "try-lock 0.2.3",
+              "target": "try_lock"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.3.0"
+      },
+      "license": "MIT"
+    },
+    "wasi 0.11.0+wasi-snapshot-preview1": {
+      "name": "wasi",
+      "version": "0.11.0+wasi-snapshot-preview1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download",
+          "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "wasi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "wasi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "default",
+          "std"
+        ],
+        "edition": "2018",
+        "version": "0.11.0+wasi-snapshot-preview1"
+      },
+      "license": "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT"
+    },
+    "winapi 0.3.9": {
+      "name": "winapi",
+      "version": "0.3.9",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download",
+          "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "consoleapi",
+          "errhandlingapi",
+          "fileapi",
+          "handleapi",
+          "mswsock",
+          "namedpipeapi",
+          "processenv",
+          "std",
+          "threadpoollegacyapiset",
+          "winsock2",
+          "ws2ipdef",
+          "ws2tcpip"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi 0.3.9",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {
+            "i686-pc-windows-gnu": [
+              {
+                "id": "winapi-i686-pc-windows-gnu 0.4.0",
+                "target": "winapi_i686_pc_windows_gnu"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+                "target": "winapi_x86_64_pc_windows_gnu"
+              }
+            ]
+          }
+        },
+        "edition": "2015",
+        "version": "0.3.9"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-i686-pc-windows-gnu 0.4.0": {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
+          "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_i686_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_i686_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-i686-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "winapi-x86_64-pc-windows-gnu 0.4.0": {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
+          "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "winapi_x86_64_pc_windows_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "winapi_x86_64_pc_windows_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "winapi-x86_64-pc-windows-gnu 0.4.0",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2015",
+        "version": "0.4.0"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT/Apache-2.0"
+    },
+    "windows-sys 0.36.1": {
+      "name": "windows-sys",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows-sys/0.36.1/download",
+          "sha256": "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_sys",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_sys",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "crate_features": [
+          "Win32",
+          "Win32_Foundation",
+          "Win32_Networking",
+          "Win32_Networking_WinSock",
+          "Win32_Security",
+          "Win32_Storage",
+          "Win32_Storage_FileSystem",
+          "Win32_System",
+          "Win32_System_IO",
+          "Win32_System_LibraryLoader",
+          "Win32_System_Pipes",
+          "Win32_System_SystemServices",
+          "Win32_System_WindowsProgramming",
+          "default"
+        ],
+        "deps": {
+          "common": [],
+          "selects": {
+            "aarch64-pc-windows-msvc": [
+              {
+                "id": "windows_aarch64_msvc 0.36.1",
+                "target": "windows_aarch64_msvc"
+              }
+            ],
+            "aarch64-uwp-windows-msvc": [
+              {
+                "id": "windows_aarch64_msvc 0.36.1",
+                "target": "windows_aarch64_msvc"
+              }
+            ],
+            "i686-pc-windows-gnu": [
+              {
+                "id": "windows_i686_gnu 0.36.1",
+                "target": "windows_i686_gnu"
+              }
+            ],
+            "i686-pc-windows-msvc": [
+              {
+                "id": "windows_i686_msvc 0.36.1",
+                "target": "windows_i686_msvc"
+              }
+            ],
+            "i686-uwp-windows-gnu": [
+              {
+                "id": "windows_i686_gnu 0.36.1",
+                "target": "windows_i686_gnu"
+              }
+            ],
+            "i686-uwp-windows-msvc": [
+              {
+                "id": "windows_i686_msvc 0.36.1",
+                "target": "windows_i686_msvc"
+              }
+            ],
+            "x86_64-pc-windows-gnu": [
+              {
+                "id": "windows_x86_64_gnu 0.36.1",
+                "target": "windows_x86_64_gnu"
+              }
+            ],
+            "x86_64-pc-windows-msvc": [
+              {
+                "id": "windows_x86_64_msvc 0.36.1",
+                "target": "windows_x86_64_msvc"
+              }
+            ],
+            "x86_64-uwp-windows-gnu": [
+              {
+                "id": "windows_x86_64_gnu 0.36.1",
+                "target": "windows_x86_64_gnu"
+              }
+            ],
+            "x86_64-uwp-windows-msvc": [
+              {
+                "id": "windows_x86_64_msvc 0.36.1",
+                "target": "windows_x86_64_msvc"
+              }
+            ]
+          }
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_aarch64_msvc 0.36.1": {
+      "name": "windows_aarch64_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_aarch64_msvc/0.36.1/download",
+          "sha256": "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_aarch64_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_aarch64_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_aarch64_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_i686_gnu 0.36.1": {
+      "name": "windows_i686_gnu",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_i686_gnu/0.36.1/download",
+          "sha256": "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_i686_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_i686_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_i686_gnu 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_i686_msvc 0.36.1": {
+      "name": "windows_i686_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_i686_msvc/0.36.1/download",
+          "sha256": "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_i686_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_i686_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_i686_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_x86_64_gnu 0.36.1": {
+      "name": "windows_x86_64_gnu",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_x86_64_gnu/0.36.1/download",
+          "sha256": "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_x86_64_gnu",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_x86_64_gnu",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_x86_64_gnu 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    },
+    "windows_x86_64_msvc 0.36.1": {
+      "name": "windows_x86_64_msvc",
+      "version": "0.36.1",
+      "repository": {
+        "Http": {
+          "url": "https://crates.io/api/v1/crates/windows_x86_64_msvc/0.36.1/download",
+          "sha256": "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+        }
+      },
+      "targets": [
+        {
+          "Library": {
+            "crate_name": "windows_x86_64_msvc",
+            "crate_root": "src/lib.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        },
+        {
+          "BuildScript": {
+            "crate_name": "build_script_build",
+            "crate_root": "build.rs",
+            "srcs": {
+              "include": [
+                "**/*.rs"
+              ],
+              "exclude": []
+            }
+          }
+        }
+      ],
+      "library_target_name": "windows_x86_64_msvc",
+      "common_attrs": {
+        "compile_data_glob": [
+          "**"
+        ],
+        "deps": {
+          "common": [
+            {
+              "id": "windows_x86_64_msvc 0.36.1",
+              "target": "build_script_build"
+            }
+          ],
+          "selects": {}
+        },
+        "edition": "2018",
+        "version": "0.36.1"
+      },
+      "build_script_attrs": {
+        "data_glob": [
+          "**"
+        ]
+      },
+      "license": "MIT OR Apache-2.0"
+    }
+  },
+  "binary_crates": [],
+  "workspace_members": {
+    "direct-cargo-bazel-deps 0.0.1": ""
+  },
+  "conditions": {
+    "aarch64-pc-windows-msvc": [],
+    "aarch64-uwp-windows-msvc": [],
+    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
+    "cfg(not(windows))": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "riscv32imc-unknown-none-elf",
+      "s390x-unknown-linux-gnu",
+      "wasm32-unknown-unknown",
+      "wasm32-wasi",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(target_os = \"redox\")": [],
+    "cfg(target_os = \"wasi\")": [
+      "wasm32-wasi"
+    ],
+    "cfg(target_os = \"windows\")": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "cfg(tracing_unstable)": [],
+    "cfg(unix)": [
+      "aarch64-apple-darwin",
+      "aarch64-apple-ios",
+      "aarch64-apple-ios-sim",
+      "aarch64-linux-android",
+      "aarch64-unknown-linux-gnu",
+      "arm-unknown-linux-gnueabi",
+      "armv7-linux-androideabi",
+      "armv7-unknown-linux-gnueabi",
+      "i686-apple-darwin",
+      "i686-linux-android",
+      "i686-unknown-freebsd",
+      "i686-unknown-linux-gnu",
+      "powerpc-unknown-linux-gnu",
+      "s390x-unknown-linux-gnu",
+      "x86_64-apple-darwin",
+      "x86_64-apple-ios",
+      "x86_64-linux-android",
+      "x86_64-unknown-freebsd",
+      "x86_64-unknown-linux-gnu"
+    ],
+    "cfg(windows)": [
+      "i686-pc-windows-msvc",
+      "x86_64-pc-windows-msvc"
+    ],
+    "i686-pc-windows-gnu": [],
+    "i686-pc-windows-msvc": [
+      "i686-pc-windows-msvc"
+    ],
+    "i686-uwp-windows-gnu": [],
+    "i686-uwp-windows-msvc": [],
+    "x86_64-pc-windows-gnu": [],
+    "x86_64-pc-windows-msvc": [
+      "x86_64-pc-windows-msvc"
+    ],
+    "x86_64-uwp-windows-gnu": [],
+    "x86_64-uwp-windows-msvc": []
+  }
+}
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.bazel
new file mode 100644
index 0000000..fb3708e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.bazel
@@ -0,0 +1,21 @@
+load("@rules_rust//crate_universe:defs.bzl", "crates_vendor")
+load("@rules_rust//rust:defs.bzl", "rust_test")
+
+exports_files([
+    "BUILD.names.bazel",
+])
+
+crates_vendor(
+    name = "crates_vendor",
+    manifests = ["@names_external//:Cargo.toml"],
+    mode = "remote",
+)
+
+rust_test(
+    name = "launch_test",
+    srcs = ["remote_crate_test.rs"],
+    data = ["@names_external//:names_bin"],
+    rustc_env = {
+        "EXECUTABLE": "$(rootpath @names_external//:names_bin)",
+    },
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.names.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.names.bazel
new file mode 100644
index 0000000..e84318d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/BUILD.names.bazel
@@ -0,0 +1,67 @@
+load("@crate_index_cargo_remote//:defs.bzl", "aliases", "all_crate_deps")
+load("@rules_rust//cargo:defs.bzl", "cargo_build_script")
+load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library")
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files([
+    "Cargo.toml",
+    "Cargo.lock",
+])
+
+rust_binary(
+    name = "names_bin",
+    srcs = ["src/bin/names.rs"],
+    aliases = aliases(
+        normal = True,
+        proc_macro = True,
+    ),
+    crate_features = [
+        "application",
+        "clap",
+        "default",
+    ],
+    crate_root = "src/bin/names.rs",
+    edition = "2018",
+    proc_macro_deps = all_crate_deps(proc_macro = True),
+    version = "0.12.0",
+    deps = all_crate_deps(normal = True) + [
+        ":names",
+    ],
+)
+
+rust_library(
+    name = "names",
+    srcs = glob(["src/**/*.rs"]),
+    aliases = aliases(
+        normal = True,
+        proc_macro = True,
+    ),
+    crate_features = [
+        "application",
+        "clap",
+        "default",
+    ],
+    edition = "2018",
+    proc_macro_deps = all_crate_deps(proc_macro = True),
+    version = "0.13.0",
+    deps = all_crate_deps(normal = True) + [
+        ":build-script-build",
+    ],
+)
+
+cargo_build_script(
+    name = "build-script-build",
+    srcs = ["build.rs"],
+    aliases = aliases(build = True),
+    crate_features = [
+        "application",
+        "clap",
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["data/**"]),
+    edition = "2018",
+    version = "0.13.0",
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.atty-0.2.14.bazel
new file mode 100644
index 0000000..2c182ca
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.atty-0.2.14.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "atty",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.14",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "hermit")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "hermit")'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..3b60731
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bazel
new file mode 100644
index 0000000..d22556d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bazel
@@ -0,0 +1,65 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "clap",
+    actual = "@crates_vendor__clap-3.2.14//:clap",
+    tags = ["manual"],
+)
+
+alias(
+    name = "names",
+    actual = "@crates_vendor__names-0.13.0//:names",
+    tags = ["manual"],
+)
+
+alias(
+    name = "rand",
+    actual = "@crates_vendor__rand-0.8.5//:rand",
+    tags = ["manual"],
+)
+
+alias(
+    name = "version-sync",
+    actual = "@crates_vendor__version-sync-0.9.4//:version_sync",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@crates_vendor__clap-3.2.14//:stdio-fixture__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "pulldown-cmark__pulldown-cmark",
+    actual = "@crates_vendor__pulldown-cmark-0.8.0//:pulldown-cmark__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..2171174
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..b2a4be9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap-3.2.14.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap-3.2.14.bazel
new file mode 100644
index 0000000..28e28ac
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap-3.2.14.bazel
@@ -0,0 +1,195 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.14",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__atty-0.2.14//:atty",
+            "@crates_vendor__bitflags-1.3.2//:bitflags",
+            "@crates_vendor__clap_lex-0.2.4//:clap_lex",
+            "@crates_vendor__indexmap-1.9.1//:indexmap",
+            "@crates_vendor__once_cell-1.13.0//:once_cell",
+            "@crates_vendor__strsim-0.10.0//:strsim",
+            "@crates_vendor__termcolor-1.1.3//:termcolor",
+            "@crates_vendor__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "stdio-fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/bin/stdio-fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.14",
+    deps = [
+        ":clap",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__atty-0.2.14//:atty",
+            "@crates_vendor__bitflags-1.3.2//:bitflags",
+            "@crates_vendor__clap_lex-0.2.4//:clap_lex",
+            "@crates_vendor__indexmap-1.9.1//:indexmap",
+            "@crates_vendor__once_cell-1.13.0//:once_cell",
+            "@crates_vendor__strsim-0.10.0//:strsim",
+            "@crates_vendor__termcolor-1.1.3//:termcolor",
+            "@crates_vendor__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_derive-3.2.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_derive-3.2.7.bazel
new file mode 100644
index 0000000..876e5c3
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_derive-3.2.7.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "clap_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__heck-0.4.0//:heck",
+            "@crates_vendor__proc-macro-error-1.0.4//:proc_macro_error",
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__quote-1.0.20//:quote",
+            "@crates_vendor__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_lex-0.2.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_lex-0.2.4.bazel
new file mode 100644
index 0000000..09a8c32
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.clap_lex-0.2.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap_lex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__os_str_bytes-6.2.0//:os_str_bytes",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.form_urlencoded-1.0.1.bazel
new file mode 100644
index 0000000..e028933
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.form_urlencoded-1.0.1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "form_urlencoded",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__matches-0.1.9//:matches",
+            "@crates_vendor__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.getrandom-0.2.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.getrandom-0.2.7.bazel
new file mode 100644
index 0000000..2b0eb93
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.getrandom-0.2.7.bazel
@@ -0,0 +1,130 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "getrandom",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.7",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "wasi")
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@crates_vendor__wasi-0.11.0-wasi-snapshot-preview1//:wasi",
+
+            # Common Deps
+            "@crates_vendor__cfg-if-1.0.0//:cfg_if",
+        ],
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@crates_vendor__cfg-if-1.0.0//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@crates_vendor__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hashbrown-0.12.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hashbrown-0.12.3.bazel
new file mode 100644
index 0000000..ee4c144
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hashbrown-0.12.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.heck-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.heck-0.4.0.bazel
new file mode 100644
index 0000000..b7a6bcf
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.heck-0.4.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "heck",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..29ea303
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.idna-0.2.3.bazel
new file mode 100644
index 0000000..23a60c1
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.idna-0.2.3.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "idna",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__matches-0.1.9//:matches",
+            "@crates_vendor__unicode-bidi-0.3.8//:unicode_bidi",
+            "@crates_vendor__unicode-normalization-0.1.21//:unicode_normalization",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.indexmap-1.9.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..462a5c9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__hashbrown-0.12.3//:hashbrown",
+            "@crates_vendor__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..e65cf08
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.matches-0.1.9.bazel
new file mode 100644
index 0000000..86545ae
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.matches-0.1.9.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "matches",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..1f83b45
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..d0b6a1f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.os_str_bytes-6.2.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.os_str_bytes-6.2.0.bazel
new file mode 100644
index 0000000..c633c4e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.os_str_bytes-6.2.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "os_str_bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw_os_str",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "6.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.percent-encoding-2.1.0.bazel
new file mode 100644
index 0000000..37966d5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.percent-encoding-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "percent_encoding",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.ppv-lite86-0.2.16.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.ppv-lite86-0.2.16.bazel
new file mode 100644
index 0000000..f734f5f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.ppv-lite86-0.2.16.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "ppv_lite86",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "simd",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.16",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-1.0.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-1.0.4.bazel
new file mode 100644
index 0000000..125c73f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-1.0.4.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro_error",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro-error-attr-1.0.4//:proc_macro_error_attr",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro-error-1.0.4//:build_script_build",
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__quote-1.0.20//:quote",
+            "@crates_vendor__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-attr-1.0.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
new file mode 100644
index 0000000..3ad585e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "proc_macro_error_attr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro-error-attr-1.0.4//:build_script_build",
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__quote-1.0.20//:quote",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error-attr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error-attr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..92b0c55
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+        "span-locations",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro2-1.0.40//:build_script_build",
+            "@crates_vendor__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+        "span-locations",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.pulldown-cmark-0.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.pulldown-cmark-0.8.0.bazel
new file mode 100644
index 0000000..0dacb77
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.pulldown-cmark-0.8.0.bazel
@@ -0,0 +1,248 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "pulldown_cmark",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__bitflags-1.3.2//:bitflags",
+            "@crates_vendor__memchr-2.5.0//:memchr",
+            "@crates_vendor__pulldown-cmark-0.8.0//:build_script_build",
+            "@crates_vendor__unicase-2.6.0//:unicase",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "pulldown-cmark__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/main.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.0",
+    deps = [
+        ":pulldown_cmark",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__bitflags-1.3.2//:bitflags",
+            "@crates_vendor__memchr-2.5.0//:memchr",
+            "@crates_vendor__pulldown-cmark-0.8.0//:build_script_build",
+            "@crates_vendor__unicase-2.6.0//:unicase",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "pulldown-cmark_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.8.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "pulldown-cmark_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..b5e02ff
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand-0.8.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand-0.8.5.bazel
new file mode 100644
index 0000000..b5ea8c2
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand-0.8.5.bazel
@@ -0,0 +1,128 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "getrandom",
+        "libc",
+        "rand_chacha",
+        "std",
+        "std_rng",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@crates_vendor__rand_chacha-0.3.1//:rand_chacha",
+            "@crates_vendor__rand_core-0.6.3//:rand_core",
+        ],
+        "//conditions:default": [
+            "@crates_vendor__rand_chacha-0.3.1//:rand_chacha",
+            "@crates_vendor__rand_core-0.6.3//:rand_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_chacha-0.3.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_chacha-0.3.1.bazel
new file mode 100644
index 0000000..6fa11ed
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_chacha-0.3.1.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand_chacha",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__ppv-lite86-0.2.16//:ppv_lite86",
+            "@crates_vendor__rand_core-0.6.3//:rand_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_core-0.6.3.bazel
new file mode 100644
index 0000000..9fd0059
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.rand_core-0.6.3.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "getrandom",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__getrandom-0.2.7//:getrandom",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-1.6.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..9692032
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..0f3cccd
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,98 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.semver-1.0.12.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.semver-1.0.12.bazel
new file mode 100644
index 0000000..577f791
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.semver-1.0.12.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "semver",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__semver-1.0.12//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "semver_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.12",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "semver_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.serde-1.0.140.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.serde-1.0.140.bazel
new file mode 100644
index 0000000..02d0f95
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.serde-1.0.140.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.140",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__serde-1.0.140//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.140",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.strsim-0.10.0.bazel
new file mode 100644
index 0000000..1d8428a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.strsim-0.10.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "strsim",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..da84b64
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,193 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__quote-1.0.20//:quote",
+            "@crates_vendor__syn-1.0.98//:build_script_build",
+            "@crates_vendor__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.termcolor-1.1.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.termcolor-1.1.3.bazel
new file mode 100644
index 0000000..2cc6b7c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.termcolor-1.1.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "termcolor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor__winapi-util-0.1.5//:winapi_util",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.textwrap-0.15.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.textwrap-0.15.0.bazel
new file mode 100644
index 0000000..363cb51
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.textwrap-0.15.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "textwrap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.15.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec-1.6.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec-1.6.0.bazel
new file mode 100644
index 0000000..9a5c4ee
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec-1.6.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Zlib OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "tinyvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "tinyvec_macros",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__tinyvec_macros-0.1.0//:tinyvec_macros",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec_macros-0.1.0.bazel
new file mode 100644
index 0000000..65a45c9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.tinyvec_macros-0.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0 OR Zlib
+# ])
+
+rust_library(
+    name = "tinyvec_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.toml-0.5.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.toml-0.5.9.bazel
new file mode 100644
index 0000000..e7852a8
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.toml-0.5.9.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "toml",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__serde-1.0.140//:serde",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicase-2.6.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicase-2.6.0.bazel
new file mode 100644
index 0000000..781e1c9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicase-2.6.0.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicase",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__unicase-2.6.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "unicase_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.6.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "unicase_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-bidi-0.3.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-bidi-0.3.8.bazel
new file mode 100644
index 0000000..e42cddd
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-bidi-0.3.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_bidi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "hardcoded-data",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-ident-1.0.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..fc8f01b
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-normalization-0.1.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-normalization-0.1.21.bazel
new file mode 100644
index 0000000..8d77583
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.unicode-normalization-0.1.21.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_normalization",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.21",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__tinyvec-1.6.0//:tinyvec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.url-2.2.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.url-2.2.2.bazel
new file mode 100644
index 0000000..2ff49a6
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.url-2.2.2.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "url",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.2.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__form_urlencoded-1.0.1//:form_urlencoded",
+            "@crates_vendor__idna-0.2.3//:idna",
+            "@crates_vendor__matches-0.1.9//:matches",
+            "@crates_vendor__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version-sync-0.9.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version-sync-0.9.4.bazel
new file mode 100644
index 0000000..1ac26c5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version-sync-0.9.4.bazel
@@ -0,0 +1,108 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "version_sync",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "contains_regex",
+        "default",
+        "html_root_url_updated",
+        "markdown_deps_updated",
+        "proc-macro2",
+        "pulldown-cmark",
+        "regex",
+        "semver",
+        "syn",
+        "toml",
+        "url",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor__pulldown-cmark-0.8.0//:pulldown_cmark",
+            "@crates_vendor__regex-1.6.0//:regex",
+            "@crates_vendor__semver-1.0.12//:semver",
+            "@crates_vendor__syn-1.0.98//:syn",
+            "@crates_vendor__toml-0.5.9//:toml",
+            "@crates_vendor__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version_check-0.9.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version_check-0.9.4.bazel
new file mode 100644
index 0000000..26147bc
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.version_check-0.9.4.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "version_check",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
new file mode 100644
index 0000000..8f4d886
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "wasi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.0+wasi-snapshot-preview1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..ef89ed5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,206 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+            "@crates_vendor__winapi-0.3.9//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..2ef904e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-i686-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-i686-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-util-0.1.5.bazel
new file mode 100644
index 0000000..352af1f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-util-0.1.5.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "winapi_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..ba34a01
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-x86_64-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-x86_64-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/crates.bzl b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/crates.bzl
new file mode 100644
index 0000000..e86b985
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@examples//vendor_external/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "crates_vendor",
+        build_file = Label("@examples//vendor_external/crates:BUILD.bazel"),
+        defs_module = Label("@examples//vendor_external/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/crates/defs.bzl b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/defs.bzl
new file mode 100644
index 0000000..ebd2376
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/crates/defs.bzl
@@ -0,0 +1,895 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_external:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "clap": "@crates_vendor__clap-3.2.14//:clap",
+            "rand": "@crates_vendor__rand-0.8.5//:rand",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "version-sync": "@crates_vendor__version-sync-0.9.4//:version_sync",
+        },
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(target_os = \"wasi\")": ["wasm32-wasi"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "crates_vendor__atty-0.2.14",
+        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
+        strip_prefix = "atty-0.2.14",
+        build_file = Label("@examples//vendor_external/crates:BUILD.atty-0.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@examples//vendor_external/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__clap-3.2.14",
+        sha256 = "54635806b078b7925d6e36810b1755f2a4b5b4d57560432c1ecf60bcbe10602b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.14/download"],
+        strip_prefix = "clap-3.2.14",
+        build_file = Label("@examples//vendor_external/crates:BUILD.clap-3.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__clap_derive-3.2.7",
+        sha256 = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_derive/3.2.7/download"],
+        strip_prefix = "clap_derive-3.2.7",
+        build_file = Label("@examples//vendor_external/crates:BUILD.clap_derive-3.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_lex/0.2.4/download"],
+        strip_prefix = "clap_lex-0.2.4",
+        build_file = Label("@examples//vendor_external/crates:BUILD.clap_lex-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__form_urlencoded-1.0.1",
+        sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download"],
+        strip_prefix = "form_urlencoded-1.0.1",
+        build_file = Label("@examples//vendor_external/crates:BUILD.form_urlencoded-1.0.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__getrandom-0.2.7",
+        sha256 = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.7/download"],
+        strip_prefix = "getrandom-0.2.7",
+        build_file = Label("@examples//vendor_external/crates:BUILD.getrandom-0.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__hashbrown-0.12.3",
+        sha256 = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.3/download"],
+        strip_prefix = "hashbrown-0.12.3",
+        build_file = Label("@examples//vendor_external/crates:BUILD.hashbrown-0.12.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__heck-0.4.0",
+        sha256 = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/heck/0.4.0/download"],
+        strip_prefix = "heck-0.4.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.heck-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@examples//vendor_external/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__idna-0.2.3",
+        sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/idna/0.2.3/download"],
+        strip_prefix = "idna-0.2.3",
+        build_file = Label("@examples//vendor_external/crates:BUILD.idna-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@examples//vendor_external/crates:BUILD.indexmap-1.9.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@examples//vendor_external/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__matches-0.1.9",
+        sha256 = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/matches/0.1.9/download"],
+        strip_prefix = "matches-0.1.9",
+        build_file = Label("@examples//vendor_external/crates:BUILD.matches-0.1.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.once_cell-1.13.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__os_str_bytes-6.2.0",
+        sha256 = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.2.0/download"],
+        strip_prefix = "os_str_bytes-6.2.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.os_str_bytes-6.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__percent-encoding-2.1.0",
+        sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/percent-encoding/2.1.0/download"],
+        strip_prefix = "percent-encoding-2.1.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.percent-encoding-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__ppv-lite86-0.2.16",
+        sha256 = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download"],
+        strip_prefix = "ppv-lite86-0.2.16",
+        build_file = Label("@examples//vendor_external/crates:BUILD.ppv-lite86-0.2.16.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__proc-macro-error-1.0.4",
+        sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download"],
+        strip_prefix = "proc-macro-error-1.0.4",
+        build_file = Label("@examples//vendor_external/crates:BUILD.proc-macro-error-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__proc-macro-error-attr-1.0.4",
+        sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download"],
+        strip_prefix = "proc-macro-error-attr-1.0.4",
+        build_file = Label("@examples//vendor_external/crates:BUILD.proc-macro-error-attr-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@examples//vendor_external/crates:BUILD.proc-macro2-1.0.40.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__pulldown-cmark-0.8.0",
+        sha256 = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/pulldown-cmark/0.8.0/download"],
+        strip_prefix = "pulldown-cmark-0.8.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.pulldown-cmark-0.8.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@examples//vendor_external/crates:BUILD.quote-1.0.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__rand-0.8.5",
+        sha256 = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand/0.8.5/download"],
+        strip_prefix = "rand-0.8.5",
+        build_file = Label("@examples//vendor_external/crates:BUILD.rand-0.8.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__rand_chacha-0.3.1",
+        sha256 = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand_chacha/0.3.1/download"],
+        strip_prefix = "rand_chacha-0.3.1",
+        build_file = Label("@examples//vendor_external/crates:BUILD.rand_chacha-0.3.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__rand_core-0.6.3",
+        sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand_core/0.6.3/download"],
+        strip_prefix = "rand_core-0.6.3",
+        build_file = Label("@examples//vendor_external/crates:BUILD.rand_core-0.6.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.regex-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@examples//vendor_external/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__semver-1.0.12",
+        sha256 = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/semver/1.0.12/download"],
+        strip_prefix = "semver-1.0.12",
+        build_file = Label("@examples//vendor_external/crates:BUILD.semver-1.0.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__serde-1.0.140",
+        sha256 = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.140/download"],
+        strip_prefix = "serde-1.0.140",
+        build_file = Label("@examples//vendor_external/crates:BUILD.serde-1.0.140.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.strsim-0.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@examples//vendor_external/crates:BUILD.syn-1.0.98.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__termcolor-1.1.3",
+        sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
+        strip_prefix = "termcolor-1.1.3",
+        build_file = Label("@examples//vendor_external/crates:BUILD.termcolor-1.1.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__textwrap-0.15.0",
+        sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
+        strip_prefix = "textwrap-0.15.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.textwrap-0.15.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__tinyvec-1.6.0",
+        sha256 = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec/1.6.0/download"],
+        strip_prefix = "tinyvec-1.6.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.tinyvec-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__tinyvec_macros-0.1.0",
+        sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download"],
+        strip_prefix = "tinyvec_macros-0.1.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.tinyvec_macros-0.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__toml-0.5.9",
+        sha256 = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/toml/0.5.9/download"],
+        strip_prefix = "toml-0.5.9",
+        build_file = Label("@examples//vendor_external/crates:BUILD.toml-0.5.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__unicase-2.6.0",
+        sha256 = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicase/2.6.0/download"],
+        strip_prefix = "unicase-2.6.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.unicase-2.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__unicode-bidi-0.3.8",
+        sha256 = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download"],
+        strip_prefix = "unicode-bidi-0.3.8",
+        build_file = Label("@examples//vendor_external/crates:BUILD.unicode-bidi-0.3.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@examples//vendor_external/crates:BUILD.unicode-ident-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__unicode-normalization-0.1.21",
+        sha256 = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.21/download"],
+        strip_prefix = "unicode-normalization-0.1.21",
+        build_file = Label("@examples//vendor_external/crates:BUILD.unicode-normalization-0.1.21.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__url-2.2.2",
+        sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/url/2.2.2/download"],
+        strip_prefix = "url-2.2.2",
+        build_file = Label("@examples//vendor_external/crates:BUILD.url-2.2.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__version-sync-0.9.4",
+        sha256 = "99d0801cec07737d88cb900e6419f6f68733867f90b3faaa837e84692e101bf0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/version-sync/0.9.4/download"],
+        strip_prefix = "version-sync-0.9.4",
+        build_file = Label("@examples//vendor_external/crates:BUILD.version-sync-0.9.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__version_check-0.9.4",
+        sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
+        strip_prefix = "version_check-0.9.4",
+        build_file = Label("@examples//vendor_external/crates:BUILD.version_check-0.9.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__wasi-0.11.0-wasi-snapshot-preview1",
+        sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
+        build_file = Label("@examples//vendor_external/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@examples//vendor_external/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__winapi-util-0.1.5",
+        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        strip_prefix = "winapi-util-0.1.5",
+        build_file = Label("@examples//vendor_external/crates:BUILD.winapi-util-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@examples//vendor_external/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_external/remote_crate_test.rs b/third_party/rules_rust/examples/crate_universe/vendor_external/remote_crate_test.rs
new file mode 100644
index 0000000..f25340a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_external/remote_crate_test.rs
@@ -0,0 +1,18 @@
+//! A Test module confirming the functionality of `cargo->bazel` with remote crates.
+
+use std::path::PathBuf;
+use std::process::Command;
+
+#[test]
+fn test_executable() {
+    let exe = PathBuf::from(env!("EXECUTABLE"));
+
+    let output = Command::new(exe)
+        .arg("--help")
+        .output()
+        .expect("Failed to run executable");
+
+    let text = String::from_utf8(output.stdout).unwrap();
+
+    assert!(text.contains("A random name generator with results like"));
+}
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/BUILD.bazel
index 866840e..bd5ce66 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 package(default_visibility = ["//visibility:public"])
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.2/BUILD.bazel
deleted file mode 100644
index b6de9af..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.2/BUILD.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "async_stream",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/async-stream-impl-0.3.2:async_stream_impl",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/futures-core-0.3.21:futures_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.3/BUILD.bazel
new file mode 100644
index 0000000..23dc4b0
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-0.3.3/BUILD.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "async_stream",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/async-stream-impl-0.3.3:async_stream_impl",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/futures-core-0.3.21:futures_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.2/BUILD.bazel
deleted file mode 100644
index a33e572..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.2/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "async_stream_impl",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_manifests/crates/quote-1.0.15:quote",
-            "//vendor_local_manifests/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.3/BUILD.bazel
new file mode 100644
index 0000000..22e284c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/async-stream-impl-0.3.3/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "async_stream_impl",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_manifests/crates/quote-1.0.20:quote",
+            "//vendor_local_manifests/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/autocfg-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/autocfg-1.1.0/BUILD.bazel
new file mode 100644
index 0000000..7a36c81
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/autocfg-1.1.0/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bitflags-1.3.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bitflags-1.3.2/BUILD.bazel
index 6894746..428808b 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bitflags-1.3.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bitflags-1.3.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.1.0/BUILD.bazel
deleted file mode 100644
index b679f2e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.1.0/BUILD.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "bytes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.1.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.2.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.2.0/BUILD.bazel
new file mode 100644
index 0000000..fc8c4f8
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/bytes-1.2.0/BUILD.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/cfg-if-1.0.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/cfg-if-1.0.0/BUILD.bazel
index e4aab64..5e2242a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/cfg-if-1.0.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/cfg-if-1.0.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/defs.bzl b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/defs.bzl
index 9950158..ae3a6ce 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/defs.bzl
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/defs.bzl
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 """
 # `crates_repository` API
@@ -192,7 +193,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
@@ -357,11 +361,11 @@
 
 _CONDITIONS = {
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
-    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_arch = \"wasm32\")": ["wasm32-unknown-unknown", "wasm32-wasi"],
     "cfg(target_os = \"redox\")": [],
-    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "i686-pc-windows-gnu": [],
     "x86_64-pc-windows-gnu": [],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/fastrand-1.7.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/fastrand-1.7.0/BUILD.bazel
index a421204..588744b 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/fastrand-1.7.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/fastrand-1.7.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/futures-core-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/futures-core-0.3.21/BUILD.bazel
index fa2bd35..2c06ef8 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/futures-core-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/futures-core-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/hermit-abi-0.1.19/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/hermit-abi-0.1.19/BUILD.bazel
index 0d57813..5202106 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/hermit-abi-0.1.19/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/hermit-abi-0.1.19/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/instant-0.1.12/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/instant-0.1.12/BUILD.bazel
index 3793223..d38861b 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/instant-0.1.12/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/instant-0.1.12/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.119/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.119/BUILD.bazel
deleted file mode 100644
index b41bc90..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.119/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.119",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/libc-0.2.119:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "libc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.119",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "libc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.126/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.126/BUILD.bazel
new file mode 100644
index 0000000..d926423
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/libc-0.2.126/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/libc-0.2.126:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.6/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.6/BUILD.bazel
deleted file mode 100644
index 4d93580..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.6/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "lock_api",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/scopeguard-1.1.0:scopeguard",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.7/BUILD.bazel
new file mode 100644
index 0000000..5e879e6
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/lock_api-0.4.7/BUILD.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/lock_api-0.4.7:build_script_build",
+            "//vendor_local_manifests/crates/scopeguard-1.1.0:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "lock_api_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/autocfg-1.1.0:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "lock_api_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.14/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.14/BUILD.bazel
deleted file mode 100644
index b32f242..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.14/BUILD.bazel
+++ /dev/null
@@ -1,172 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
-            "//vendor_local_manifests/crates/log-0.4.14:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "log_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "log_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.17/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.17/BUILD.bazel
new file mode 100644
index 0000000..20c2039
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/log-0.4.17/BUILD.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
+            "//vendor_local_manifests/crates/log-0.4.17:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.4.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.4.1/BUILD.bazel
deleted file mode 100644
index 29f02e0..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.4.1/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "memchr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "2.4.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/memchr-2.4.1:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "memchr_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "memchr_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.5.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.5.0/BUILD.bazel
new file mode 100644
index 0000000..7f98d44
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/memchr-2.5.0/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/memchr-2.5.0:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/mio-0.7.14/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/mio-0.7.14/BUILD.bazel
index 78472d8..7ccd2ab 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/mio-0.7.14/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/mio-0.7.14/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,9 +96,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -107,10 +115,10 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
 
             # Common Deps
-            "//vendor_local_manifests/crates/log-0.4.14:log",
+            "//vendor_local_manifests/crates/log-0.4.17:log",
         ],
         # cfg(windows)
         (
@@ -123,10 +131,10 @@
             "//vendor_local_manifests/crates/winapi-0.3.9:winapi",
 
             # Common Deps
-            "//vendor_local_manifests/crates/log-0.4.14:log",
+            "//vendor_local_manifests/crates/log-0.4.17:log",
         ],
         "//conditions:default": [
-            "//vendor_local_manifests/crates/log-0.4.14:log",
+            "//vendor_local_manifests/crates/log-0.4.17:log",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/miow-0.3.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/miow-0.3.7/BUILD.bazel
index 13a2472..d37d84c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/miow-0.3.7/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/miow-0.3.7/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/ntapi-0.3.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/ntapi-0.3.7/BUILD.bazel
index b90789b..a0c0dce 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/ntapi-0.3.7/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/ntapi-0.3.7/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -139,10 +145,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/num_cpus-1.13.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/num_cpus-1.13.1/BUILD.bazel
index ecdf236..fd589b4 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/num_cpus-1.13.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/num_cpus-1.13.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,15 +93,18 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
             "@rules_rust//rust/platform:i686-unknown-freebsd",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
             "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
@@ -106,7 +115,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.13.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.13.0/BUILD.bazel
new file mode 100644
index 0000000..54e83c0
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.13.0/BUILD.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.9.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.9.0/BUILD.bazel
deleted file mode 100644
index f2a936a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/once_cell-1.9.0/BUILD.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.9.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot-0.11.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot-0.11.2/BUILD.bazel
index 4d944c2..217c60e 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot-0.11.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot-0.11.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     ] + select_with_or({
         "//conditions:default": [
             "//vendor_local_manifests/crates/instant-0.1.12:instant",
-            "//vendor_local_manifests/crates/lock_api-0.4.6:lock_api",
+            "//vendor_local_manifests/crates/lock_api-0.4.7:lock_api",
             "//vendor_local_manifests/crates/parking_lot_core-0.8.5:parking_lot_core",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot_core-0.8.5/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot_core-0.8.5/BUILD.bazel
index 0fc55d5..1a24f6c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot_core-0.8.5/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/parking_lot_core-0.8.5/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -85,15 +91,17 @@
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(unix)
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -108,13 +116,13 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
 
             # Common Deps
             "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_manifests/crates/instant-0.1.12:instant",
             "//vendor_local_manifests/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_manifests/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_manifests/crates/smallvec-1.9.0:smallvec",
         ],
         # cfg(windows)
         (
@@ -128,13 +136,13 @@
             "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_manifests/crates/instant-0.1.12:instant",
             "//vendor_local_manifests/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_manifests/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_manifests/crates/smallvec-1.9.0:smallvec",
         ],
         "//conditions:default": [
             "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_manifests/crates/instant-0.1.12:instant",
             "//vendor_local_manifests/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_manifests/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_manifests/crates/smallvec-1.9.0:smallvec",
         ],
     }),
 )
@@ -185,10 +193,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.8/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.8/BUILD.bazel
deleted file mode 100644
index cfd3870..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.8/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project_lite",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.9/BUILD.bazel
new file mode 100644
index 0000000..6d3b20a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/pin-project-lite-0.2.9/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project_lite",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.36/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.36/BUILD.bazel
deleted file mode 100644
index 95239eb..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.36/BUILD.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.36",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/proc-macro2-1.0.36:build_script_build",
-            "//vendor_local_manifests/crates/unicode-xid-0.2.2:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "proc-macro2_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.36",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "proc-macro2_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.40/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.40/BUILD.bazel
new file mode 100644
index 0000000..56fab87
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/proc-macro2-1.0.40/BUILD.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/proc-macro2-1.0.40:build_script_build",
+            "//vendor_local_manifests/crates/unicode-ident-1.0.2:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.15/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.15/BUILD.bazel
deleted file mode 100644
index 3c8a69f..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.15/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "quote",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.15",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/proc-macro2-1.0.36:proc_macro2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.20/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.20/BUILD.bazel
new file mode 100644
index 0000000..3ec4a4f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/quote-1.0.20/BUILD.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_manifests/crates/quote-1.0.20:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.11/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.11/BUILD.bazel
deleted file mode 100644
index 9057648..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.11/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "syscall",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/bitflags-1.3.2:bitflags",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.13/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.13/BUILD.bazel
new file mode 100644
index 0000000..8dbb510
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/redox_syscall-0.2.13/BUILD.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/bitflags-1.3.2:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/remove_dir_all-0.5.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/remove_dir_all-0.5.3/BUILD.bazel
index 9b8cded..ab7cae8 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/remove_dir_all-0.5.3/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/remove_dir_all-0.5.3/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/scopeguard-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/scopeguard-1.1.0/BUILD.bazel
index 0bc1e13..67199bd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/scopeguard-1.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/scopeguard-1.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/signal-hook-registry-1.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/signal-hook-registry-1.4.0/BUILD.bazel
index 022c182..dc20563 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/signal-hook-registry-1.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/signal-hook-registry-1.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.8.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.8.0/BUILD.bazel
deleted file mode 100644
index a9ae389..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.8.0/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.9.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.9.0/BUILD.bazel
new file mode 100644
index 0000000..3b63877
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/smallvec-1.9.0/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.86/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.86/BUILD.bazel
deleted file mode 100644
index 0b72df3..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.86/BUILD.bazel
+++ /dev/null
@@ -1,194 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "syn",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit-mut",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.86",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_manifests/crates/quote-1.0.15:quote",
-            "//vendor_local_manifests/crates/syn-1.0.86:build_script_build",
-            "//vendor_local_manifests/crates/unicode-xid-0.2.2:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "syn_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit-mut",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.86",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "syn_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.98/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.98/BUILD.bazel
new file mode 100644
index 0000000..986b758
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/syn-1.0.98/BUILD.bazel
@@ -0,0 +1,195 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit-mut",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_manifests/crates/quote-1.0.20:quote",
+            "//vendor_local_manifests/crates/syn-1.0.98:build_script_build",
+            "//vendor_local_manifests/crates/unicode-ident-1.0.2:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit-mut",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tempfile-3.3.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tempfile-3.3.0/BUILD.bazel
index d685cc8..977cea2 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tempfile-3.3.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tempfile-3.3.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -100,7 +108,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
 
             # Common Deps
             "//vendor_local_manifests/crates/cfg-if-1.0.0:cfg_if",
@@ -110,7 +118,7 @@
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(windows)
         (
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-1.16.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-1.16.1/BUILD.bazel
index 3e662a5..77b9171 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-1.16.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-1.16.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -75,7 +84,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_manifests/crates/tokio-macros-1.7.0:tokio_macros",
+            "//vendor_local_manifests/crates/tokio-macros-1.8.0:tokio_macros",
         ],
     }),
     rustc_env = {
@@ -90,10 +99,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -107,9 +113,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -124,17 +132,17 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_manifests/crates/libc-0.2.119:libc",
+            "//vendor_local_manifests/crates/libc-0.2.126:libc",
             "//vendor_local_manifests/crates/signal-hook-registry-1.4.0:signal_hook_registry",
 
             # Common Deps
-            "//vendor_local_manifests/crates/bytes-1.1.0:bytes",
-            "//vendor_local_manifests/crates/memchr-2.4.1:memchr",
+            "//vendor_local_manifests/crates/bytes-1.2.0:bytes",
+            "//vendor_local_manifests/crates/memchr-2.5.0:memchr",
             "//vendor_local_manifests/crates/mio-0.7.14:mio",
             "//vendor_local_manifests/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_manifests/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_manifests/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_manifests/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_manifests/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_manifests/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
         # cfg(windows)
         (
@@ -145,22 +153,22 @@
             "//vendor_local_manifests/crates/winapi-0.3.9:winapi",
 
             # Common Deps
-            "//vendor_local_manifests/crates/bytes-1.1.0:bytes",
-            "//vendor_local_manifests/crates/memchr-2.4.1:memchr",
+            "//vendor_local_manifests/crates/bytes-1.2.0:bytes",
+            "//vendor_local_manifests/crates/memchr-2.5.0:memchr",
             "//vendor_local_manifests/crates/mio-0.7.14:mio",
             "//vendor_local_manifests/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_manifests/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_manifests/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_manifests/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_manifests/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_manifests/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
         "//conditions:default": [
-            "//vendor_local_manifests/crates/bytes-1.1.0:bytes",
-            "//vendor_local_manifests/crates/memchr-2.4.1:memchr",
+            "//vendor_local_manifests/crates/bytes-1.2.0:bytes",
+            "//vendor_local_manifests/crates/memchr-2.5.0:memchr",
             "//vendor_local_manifests/crates/mio-0.7.14:mio",
             "//vendor_local_manifests/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_manifests/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_manifests/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_manifests/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_manifests/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_manifests/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.7.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.7.0/BUILD.bazel
deleted file mode 100644
index ba51873..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.7.0/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tokio_macros",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_manifests/crates/quote-1.0.15:quote",
-            "//vendor_local_manifests/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.8.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.8.0/BUILD.bazel
new file mode 100644
index 0000000..4da8e5c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-macros-1.8.0/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tokio_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_manifests/crates/quote-1.0.20:quote",
+            "//vendor_local_manifests/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.8/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.8/BUILD.bazel
deleted file mode 100644
index bdc973a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.8/BUILD.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_stream",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "time",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_manifests/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_manifests/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_manifests/crates/tokio-1.16.1:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.9/BUILD.bazel
new file mode 100644
index 0000000..28775be
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-stream-0.1.9/BUILD.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_stream",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "time",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_manifests/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_manifests/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_manifests/crates/tokio-1.16.1:tokio",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-test-0.4.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-test-0.4.2/BUILD.bazel
index 6ecccfc..867fcbd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-test-0.4.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/tokio-test-0.4.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,11 +85,11 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_manifests/crates/async-stream-0.3.2:async_stream",
-            "//vendor_local_manifests/crates/bytes-1.1.0:bytes",
+            "//vendor_local_manifests/crates/async-stream-0.3.3:async_stream",
+            "//vendor_local_manifests/crates/bytes-1.2.0:bytes",
             "//vendor_local_manifests/crates/futures-core-0.3.21:futures_core",
             "//vendor_local_manifests/crates/tokio-1.16.1:tokio",
-            "//vendor_local_manifests/crates/tokio-stream-0.1.8:tokio_stream",
+            "//vendor_local_manifests/crates/tokio-stream-0.1.9:tokio_stream",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-ident-1.0.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-ident-1.0.2/BUILD.bazel
new file mode 100644
index 0000000..59417d8
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-ident-1.0.2/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_manifests:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-xid-0.2.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-xid-0.2.2/BUILD.bazel
deleted file mode 100644
index 30562c1..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/unicode-xid-0.2.2/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-0.3.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-0.3.9/BUILD.bazel
index 28e223c..8f55c3f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-0.3.9/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-0.3.9/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -97,10 +106,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -200,10 +206,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
index fbf405f..729cfb5 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
index f0fe920..a52f593 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_manifests/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_manifests:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/BUILD.bazel
index 3e93a62..5c2c712 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 package(default_visibility = ["//visibility:public"])
@@ -33,7 +34,7 @@
 
 alias(
     name = "hyper",
-    actual = "//vendor_local_pkgs/crates/hyper-0.14.17:hyper",
+    actual = "//vendor_local_pkgs/crates/hyper-0.14.20:hyper",
     tags = ["manual"],
 )
 
@@ -45,7 +46,7 @@
 
 alias(
     name = "serde_json",
-    actual = "//vendor_local_pkgs/crates/serde_json-1.0.79:serde_json",
+    actual = "//vendor_local_pkgs/crates/serde_json-1.0.82:serde_json",
     tags = ["manual"],
 )
 
@@ -57,25 +58,25 @@
 
 alias(
     name = "tower",
-    actual = "//vendor_local_pkgs/crates/tower-0.4.12:tower",
+    actual = "//vendor_local_pkgs/crates/tower-0.4.13:tower",
     tags = ["manual"],
 )
 
 alias(
     name = "tower-http",
-    actual = "//vendor_local_pkgs/crates/tower-http-0.2.3:tower_http",
+    actual = "//vendor_local_pkgs/crates/tower-http-0.2.5:tower_http",
     tags = ["manual"],
 )
 
 alias(
     name = "tracing",
-    actual = "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
+    actual = "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
     tags = ["manual"],
 )
 
 alias(
     name = "tracing-subscriber",
-    actual = "//vendor_local_pkgs/crates/tracing-subscriber-0.3.9:tracing_subscriber",
+    actual = "//vendor_local_pkgs/crates/tracing-subscriber-0.3.15:tracing_subscriber",
     tags = ["manual"],
 )
 
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ansi_term-0.12.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ansi_term-0.12.1/BUILD.bazel
index 8fd8de6..0e648f3 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ansi_term-0.12.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ansi_term-0.12.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.52/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.52/BUILD.bazel
deleted file mode 100644
index ec371b8..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.52/BUILD.bazel
+++ /dev/null
@@ -1,174 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_proc_macro(
-    name = "async_trait",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.52",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/async-trait-0.1.52:build_script_build",
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_pkgs/crates/quote-1.0.15:quote",
-            "//vendor_local_pkgs/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "async-trait_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.1.52",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "async-trait_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.56/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.56/BUILD.bazel
new file mode 100644
index 0000000..3b01367
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/async-trait-0.1.56/BUILD.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "async_trait",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.56",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/async-trait-0.1.56:build_script_build",
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:quote",
+            "//vendor_local_pkgs/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "async-trait_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.56",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "async-trait_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/autocfg-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/autocfg-1.1.0/BUILD.bazel
index bd2fcd9..1bb71ea 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/autocfg-1.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/autocfg-1.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-0.4.8/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-0.4.8/BUILD.bazel
index 92fea8b..e40d6d4 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-0.4.8/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-0.4.8/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,10 +37,18 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob([
-        "**",
-        "**/*.md",
-    ]) + select_with_or({
+    compile_data = glob(
+        include = [
+            "**",
+            "**/*.md",
+        ],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -59,7 +68,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/async-trait-0.1.52:async_trait",
+            "//vendor_local_pkgs/crates/async-trait-0.1.56:async_trait",
         ],
     }),
     rustc_env = {
@@ -74,10 +83,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,25 +96,25 @@
         "//conditions:default": [
             "//vendor_local_pkgs/crates/axum-core-0.1.2:axum_core",
             "//vendor_local_pkgs/crates/bitflags-1.3.2:bitflags",
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
             "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/http-body-0.4.4:http_body",
-            "//vendor_local_pkgs/crates/hyper-0.14.17:hyper",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/http-body-0.4.5:http_body",
+            "//vendor_local_pkgs/crates/hyper-0.14.20:hyper",
             "//vendor_local_pkgs/crates/matchit-0.4.6:matchit",
-            "//vendor_local_pkgs/crates/memchr-2.4.1:memchr",
+            "//vendor_local_pkgs/crates/memchr-2.5.0:memchr",
             "//vendor_local_pkgs/crates/mime-0.3.16:mime",
             "//vendor_local_pkgs/crates/percent-encoding-2.1.0:percent_encoding",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/serde-1.0.136:serde",
-            "//vendor_local_pkgs/crates/serde_json-1.0.79:serde_json",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/serde-1.0.140:serde",
+            "//vendor_local_pkgs/crates/serde_json-1.0.82:serde_json",
             "//vendor_local_pkgs/crates/serde_urlencoded-0.7.1:serde_urlencoded",
             "//vendor_local_pkgs/crates/sync_wrapper-0.1.1:sync_wrapper",
             "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-            "//vendor_local_pkgs/crates/tower-0.4.12:tower",
-            "//vendor_local_pkgs/crates/tower-http-0.2.3:tower_http",
+            "//vendor_local_pkgs/crates/tower-0.4.13:tower",
+            "//vendor_local_pkgs/crates/tower-http-0.2.5:tower_http",
             "//vendor_local_pkgs/crates/tower-layer-0.3.1:tower_layer",
-            "//vendor_local_pkgs/crates/tower-service-0.3.1:tower_service",
+            "//vendor_local_pkgs/crates/tower-service-0.3.2:tower_service",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-core-0.1.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-core-0.1.2/BUILD.bazel
index 1d5427f..b5f263f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-core-0.1.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/axum-core-0.1.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -51,7 +60,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/async-trait-0.1.52:async_trait",
+            "//vendor_local_pkgs/crates/async-trait-0.1.56:async_trait",
         ],
     }),
     rustc_env = {
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,10 +86,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
             "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/http-body-0.4.4:http_body",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/http-body-0.4.5:http_body",
             "//vendor_local_pkgs/crates/mime-0.3.16:mime",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bitflags-1.3.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bitflags-1.3.2/BUILD.bazel
index 6894746..913bd2c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bitflags-1.3.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bitflags-1.3.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.1.0/BUILD.bazel
deleted file mode 100644
index b679f2e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.1.0/BUILD.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "bytes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.1.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.2.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.2.0/BUILD.bazel
new file mode 100644
index 0000000..21cf49d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/bytes-1.2.0/BUILD.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/cfg-if-1.0.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/cfg-if-1.0.0/BUILD.bazel
index e4aab64..ddca8cf 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/cfg-if-1.0.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/cfg-if-1.0.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/defs.bzl b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/defs.bzl
index 00a5273..e8c8bc4 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/defs.bzl
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/defs.bzl
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 """
 # `crates_repository` API
@@ -192,7 +193,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
@@ -286,14 +290,14 @@
     "": {
         _COMMON_CONDITION: {
             "axum": "//vendor_local_pkgs/crates/axum-0.4.8:axum",
-            "hyper": "//vendor_local_pkgs/crates/hyper-0.14.17:hyper",
+            "hyper": "//vendor_local_pkgs/crates/hyper-0.14.20:hyper",
             "mime": "//vendor_local_pkgs/crates/mime-0.3.16:mime",
-            "serde_json": "//vendor_local_pkgs/crates/serde_json-1.0.79:serde_json",
+            "serde_json": "//vendor_local_pkgs/crates/serde_json-1.0.82:serde_json",
             "tokio": "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-            "tower": "//vendor_local_pkgs/crates/tower-0.4.12:tower",
-            "tower-http": "//vendor_local_pkgs/crates/tower-http-0.2.3:tower_http",
-            "tracing": "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
-            "tracing-subscriber": "//vendor_local_pkgs/crates/tracing-subscriber-0.3.9:tracing_subscriber",
+            "tower": "//vendor_local_pkgs/crates/tower-0.4.13:tower",
+            "tower-http": "//vendor_local_pkgs/crates/tower-http-0.2.5:tower_http",
+            "tracing": "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+            "tracing-subscriber": "//vendor_local_pkgs/crates/tracing-subscriber-0.3.15:tracing_subscriber",
         },
     },
 }
@@ -357,11 +361,11 @@
 
 _CONDITIONS = {
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_os = \"redox\")": [],
     "cfg(target_os = \"windows\")": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "cfg(tracing_unstable)": [],
-    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "i686-pc-windows-gnu": [],
     "x86_64-pc-windows-gnu": [],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/fnv-1.0.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/fnv-1.0.7/BUILD.bazel
index 9b3c6e3..787ef89 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/fnv-1.0.7/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/fnv-1.0.7/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/form_urlencoded-1.0.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/form_urlencoded-1.0.1/BUILD.bazel
index 9b0711c..295100f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/form_urlencoded-1.0.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/form_urlencoded-1.0.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-channel-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-channel-0.3.21/BUILD.bazel
index 63a38dd..4a084a2 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-channel-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-channel-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -141,10 +147,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-core-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-core-0.3.21/BUILD.bazel
index fe1f1cb..dc7e01c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-core-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-core-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-sink-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-sink-0.3.21/BUILD.bazel
index cbdd96f..e1773d5 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-sink-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-sink-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-task-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-task-0.3.21/BUILD.bazel
index 20bc494..aba469c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-task-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-task-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -136,10 +142,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-util-0.3.21/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-util-0.3.21/BUILD.bazel
index 99d0ccd..1c17d8d 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-util-0.3.21/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/futures-util-0.3.21/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,7 +93,7 @@
             "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
             "//vendor_local_pkgs/crates/futures-task-0.3.21:futures_task",
             "//vendor_local_pkgs/crates/futures-util-0.3.21:build_script_build",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
             "//vendor_local_pkgs/crates/pin-utils-0.1.0:pin_utils",
         ],
     }),
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.11/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.11/BUILD.bazel
deleted file mode 100644
index 3aa6ad9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.11/BUILD.bazel
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "h2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/fnv-1.0.7:fnv",
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-sink-0.3.21:futures_sink",
-            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/indexmap-1.8.0:indexmap",
-            "//vendor_local_pkgs/crates/slab-0.4.5:slab",
-            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-            "//vendor_local_pkgs/crates/tokio-util-0.6.9:tokio_util",
-            "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.13/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.13/BUILD.bazel
new file mode 100644
index 0000000..b7e726a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/h2-0.3.13/BUILD.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "h2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/fnv-1.0.7:fnv",
+            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_pkgs/crates/futures-sink-0.3.21:futures_sink",
+            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/indexmap-1.9.1:indexmap",
+            "//vendor_local_pkgs/crates/slab-0.4.7:slab",
+            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
+            "//vendor_local_pkgs/crates/tokio-util-0.7.2:tokio_util",
+            "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.11.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.11.2/BUILD.bazel
deleted file mode 100644
index 54a071b..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.11.2/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "hashbrown",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "raw",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.11.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.12.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.12.3/BUILD.bazel
new file mode 100644
index 0000000..62da4bf
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hashbrown-0.12.3/BUILD.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hermit-abi-0.1.19/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hermit-abi-0.1.19/BUILD.bazel
index 8bc328d..d3341c3 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hermit-abi-0.1.19/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hermit-abi-0.1.19/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.6/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.6/BUILD.bazel
deleted file mode 100644
index f2128d1..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.6/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "http",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/fnv-1.0.7:fnv",
-            "//vendor_local_pkgs/crates/itoa-1.0.1:itoa",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.8/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.8/BUILD.bazel
new file mode 100644
index 0000000..d4a9c25
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-0.2.8/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "http",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/fnv-1.0.7:fnv",
+            "//vendor_local_pkgs/crates/itoa-1.0.2:itoa",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.4/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.4/BUILD.bazel
deleted file mode 100644
index e2010e3..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.4/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "http_body",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.4",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.5/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.5/BUILD.bazel
new file mode 100644
index 0000000..d903766
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-body-0.4.5/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "http_body",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-range-header-0.3.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-range-header-0.3.0/BUILD.bazel
index c2d71d8..8cabbbf 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-range-header-0.3.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/http-range-header-0.3.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.6.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.6.0/BUILD.bazel
deleted file mode 100644
index 34dfd8b..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.6.0/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "httparse",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.6.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/httparse-1.6.0:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "httparse_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.6.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "httparse_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.7.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.7.1/BUILD.bazel
new file mode 100644
index 0000000..c39b690
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httparse-1.7.1/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "httparse",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/httparse-1.7.1:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "httparse_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.7.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "httparse_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httpdate-1.0.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httpdate-1.0.2/BUILD.bazel
index 16d4a28..e58a3a3 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httpdate-1.0.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/httpdate-1.0.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.17/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.17/BUILD.bazel
deleted file mode 100644
index 8120d34..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.17/BUILD.bazel
+++ /dev/null
@@ -1,111 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "hyper",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "client",
-        "default",
-        "full",
-        "h2",
-        "http1",
-        "http2",
-        "runtime",
-        "server",
-        "socket2",
-        "stream",
-        "tcp",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.14.17",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/futures-channel-0.3.21:futures_channel",
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/h2-0.3.11:h2",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/http-body-0.4.4:http_body",
-            "//vendor_local_pkgs/crates/httparse-1.6.0:httparse",
-            "//vendor_local_pkgs/crates/httpdate-1.0.2:httpdate",
-            "//vendor_local_pkgs/crates/itoa-1.0.1:itoa",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/socket2-0.4.4:socket2",
-            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-            "//vendor_local_pkgs/crates/tower-service-0.3.1:tower_service",
-            "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
-            "//vendor_local_pkgs/crates/want-0.3.0:want",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.20/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.20/BUILD.bazel
new file mode 100644
index 0000000..a75076c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/hyper-0.14.20/BUILD.bazel
@@ -0,0 +1,117 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "hyper",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "client",
+        "default",
+        "full",
+        "h2",
+        "http1",
+        "http2",
+        "runtime",
+        "server",
+        "socket2",
+        "stream",
+        "tcp",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.14.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/futures-channel-0.3.21:futures_channel",
+            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
+            "//vendor_local_pkgs/crates/h2-0.3.13:h2",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/http-body-0.4.5:http_body",
+            "//vendor_local_pkgs/crates/httparse-1.7.1:httparse",
+            "//vendor_local_pkgs/crates/httpdate-1.0.2:httpdate",
+            "//vendor_local_pkgs/crates/itoa-1.0.2:itoa",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/socket2-0.4.4:socket2",
+            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
+            "//vendor_local_pkgs/crates/tower-service-0.3.2:tower_service",
+            "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+            "//vendor_local_pkgs/crates/want-0.3.0:want",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.8.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.8.0/BUILD.bazel
deleted file mode 100644
index dca71c5..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.8.0/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "indexmap",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/hashbrown-0.11.2:hashbrown",
-            "//vendor_local_pkgs/crates/indexmap-1.8.0:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "indexmap_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.8.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/autocfg-1.1.0:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "indexmap_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.9.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.9.1/BUILD.bazel
new file mode 100644
index 0000000..0e1e4ca
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/indexmap-1.9.1/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/hashbrown-0.12.3:hashbrown",
+            "//vendor_local_pkgs/crates/indexmap-1.9.1:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/autocfg-1.1.0:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/instant-0.1.12/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/instant-0.1.12/BUILD.bazel
index e6d64d7..7c6a7cb 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/instant-0.1.12/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/instant-0.1.12/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.1/BUILD.bazel
deleted file mode 100644
index 69bfcf9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.1/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "itoa",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.2/BUILD.bazel
new file mode 100644
index 0000000..4237dab
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/itoa-1.0.2/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lazy_static-1.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lazy_static-1.4.0/BUILD.bazel
index aabde66..6645036 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lazy_static-1.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lazy_static-1.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.119/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.119/BUILD.bazel
deleted file mode 100644
index 5728a21..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.119/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.119",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/libc-0.2.119:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "libc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.119",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "libc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.126/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.126/BUILD.bazel
new file mode 100644
index 0000000..1ed39f4
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/libc-0.2.126/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/libc-0.2.126:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.6/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.6/BUILD.bazel
deleted file mode 100644
index e0a626e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.6/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "lock_api",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/scopeguard-1.1.0:scopeguard",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.7/BUILD.bazel
new file mode 100644
index 0000000..aaec2df
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/lock_api-0.4.7/BUILD.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/lock_api-0.4.7:build_script_build",
+            "//vendor_local_pkgs/crates/scopeguard-1.1.0:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "lock_api_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/autocfg-1.1.0:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "lock_api_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.14/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.14/BUILD.bazel
deleted file mode 100644
index ddae413..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.14/BUILD.bazel
+++ /dev/null
@@ -1,174 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
-            "//vendor_local_pkgs/crates/log-0.4.14:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "log_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "log_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.17/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.17/BUILD.bazel
new file mode 100644
index 0000000..b972509
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/log-0.4.17/BUILD.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
+            "//vendor_local_pkgs/crates/log-0.4.17:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matches-0.1.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matches-0.1.9/BUILD.bazel
index b2ec92b..705b2b3 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matches-0.1.9/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matches-0.1.9/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matchit-0.4.6/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matchit-0.4.6/BUILD.bazel
index dd3406b..2f54bb7 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matchit-0.4.6/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/matchit-0.4.6/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.4.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.4.1/BUILD.bazel
deleted file mode 100644
index 316b2a2..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.4.1/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "memchr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "2.4.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/memchr-2.4.1:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "memchr_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "memchr_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.5.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.5.0/BUILD.bazel
new file mode 100644
index 0000000..0fae985
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/memchr-2.5.0/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/memchr-2.5.0:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mime-0.3.16/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mime-0.3.16/BUILD.bazel
index d7f8128..c785481 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mime-0.3.16/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mime-0.3.16/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mio-0.7.14/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mio-0.7.14/BUILD.bazel
index 3995b37..056014a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mio-0.7.14/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/mio-0.7.14/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,9 +96,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -107,10 +115,10 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
 
             # Common Deps
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
         ],
         # cfg(windows)
         (
@@ -123,10 +131,10 @@
             "//vendor_local_pkgs/crates/winapi-0.3.9:winapi",
 
             # Common Deps
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
         ],
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/miow-0.3.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/miow-0.3.7/BUILD.bazel
index 1bca438..97e2c7e 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/miow-0.3.7/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/miow-0.3.7/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ntapi-0.3.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ntapi-0.3.7/BUILD.bazel
index 0ada3ac..34c17ea 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ntapi-0.3.7/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ntapi-0.3.7/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -139,10 +145,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/num_cpus-1.13.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/num_cpus-1.13.1/BUILD.bazel
index 55e897d..1868e6a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/num_cpus-1.13.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/num_cpus-1.13.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,15 +93,18 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
             "@rules_rust//rust/platform:i686-unknown-freebsd",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
             "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
@@ -106,7 +115,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.13.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.13.0/BUILD.bazel
new file mode 100644
index 0000000..61a4291
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.13.0/BUILD.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.9.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.9.0/BUILD.bazel
deleted file mode 100644
index f2a936a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/once_cell-1.9.0/BUILD.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.9.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot-0.11.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot-0.11.2/BUILD.bazel
index 9cc5a37..0a117ab 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot-0.11.2/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot-0.11.2/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     ] + select_with_or({
         "//conditions:default": [
             "//vendor_local_pkgs/crates/instant-0.1.12:instant",
-            "//vendor_local_pkgs/crates/lock_api-0.4.6:lock_api",
+            "//vendor_local_pkgs/crates/lock_api-0.4.7:lock_api",
             "//vendor_local_pkgs/crates/parking_lot_core-0.8.5:parking_lot_core",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot_core-0.8.5/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot_core-0.8.5/BUILD.bazel
index adbd416..d13d935 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot_core-0.8.5/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/parking_lot_core-0.8.5/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -85,15 +91,17 @@
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(unix)
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -108,13 +116,13 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
 
             # Common Deps
             "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_pkgs/crates/instant-0.1.12:instant",
             "//vendor_local_pkgs/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_pkgs/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_pkgs/crates/smallvec-1.9.0:smallvec",
         ],
         # cfg(windows)
         (
@@ -128,13 +136,13 @@
             "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_pkgs/crates/instant-0.1.12:instant",
             "//vendor_local_pkgs/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_pkgs/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_pkgs/crates/smallvec-1.9.0:smallvec",
         ],
         "//conditions:default": [
             "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
             "//vendor_local_pkgs/crates/instant-0.1.12:instant",
             "//vendor_local_pkgs/crates/parking_lot_core-0.8.5:build_script_build",
-            "//vendor_local_pkgs/crates/smallvec-1.8.0:smallvec",
+            "//vendor_local_pkgs/crates/smallvec-1.9.0:smallvec",
         ],
     }),
 )
@@ -185,10 +193,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/percent-encoding-2.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/percent-encoding-2.1.0/BUILD.bazel
index 1ad467a..462c724 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/percent-encoding-2.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/percent-encoding-2.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.10/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.10/BUILD.bazel
deleted file mode 100644
index 50eb667..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.10/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/pin-project-internal-1.0.10:pin_project_internal",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.10",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.11/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.11/BUILD.bazel
new file mode 100644
index 0000000..d6c2ce5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-1.0.11/BUILD.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/pin-project-internal-1.0.11:pin_project_internal",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.11",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.10/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.10/BUILD.bazel
deleted file mode 100644
index d9fe346..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.10/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_proc_macro(
-    name = "pin_project_internal",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.10",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_pkgs/crates/quote-1.0.15:quote",
-            "//vendor_local_pkgs/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.11/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.11/BUILD.bazel
new file mode 100644
index 0000000..6b5bea9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-internal-1.0.11/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_proc_macro(
+    name = "pin_project_internal",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.11",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:quote",
+            "//vendor_local_pkgs/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.8/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.8/BUILD.bazel
deleted file mode 100644
index cfd3870..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.8/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project_lite",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.9/BUILD.bazel
new file mode 100644
index 0000000..2b7023a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-project-lite-0.2.9/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project_lite",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-utils-0.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-utils-0.1.0/BUILD.bazel
index de4c1a2..6520efd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-utils-0.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/pin-utils-0.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.36/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.36/BUILD.bazel
deleted file mode 100644
index ab8ac7d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.36/BUILD.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.36",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:build_script_build",
-            "//vendor_local_pkgs/crates/unicode-xid-0.2.2:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "proc-macro2_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.36",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "proc-macro2_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.40/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.40/BUILD.bazel
new file mode 100644
index 0000000..29e3029
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/proc-macro2-1.0.40/BUILD.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:build_script_build",
+            "//vendor_local_pkgs/crates/unicode-ident-1.0.2:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.15/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.15/BUILD.bazel
deleted file mode 100644
index f11544c..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.15/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "quote",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.15",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.20/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.20/BUILD.bazel
new file mode 100644
index 0000000..76ef54f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/quote-1.0.20/BUILD.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.11/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.11/BUILD.bazel
deleted file mode 100644
index ff935f0..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.11/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "syscall",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bitflags-1.3.2:bitflags",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.13/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.13/BUILD.bazel
new file mode 100644
index 0000000..57622e6
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/redox_syscall-0.2.13/BUILD.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bitflags-1.3.2:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.10/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.10/BUILD.bazel
new file mode 100644
index 0000000..bee638e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.10/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.9/BUILD.bazel
deleted file mode 100644
index c2a9c81..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/ryu-1.0.9/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR BSL-1.0
-# ])
-
-rust_library(
-    name = "ryu",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/scopeguard-1.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/scopeguard-1.1.0/BUILD.bazel
index 0bc1e13..e318ede 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/scopeguard-1.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/scopeguard-1.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.136/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.136/BUILD.bazel
deleted file mode 100644
index 16a6c19..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.136/BUILD.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.136",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/serde-1.0.136:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.136",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.140/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.140/BUILD.bazel
new file mode 100644
index 0000000..2b33912
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde-1.0.140/BUILD.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.140",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/serde-1.0.140:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.140",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.79/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.79/BUILD.bazel
deleted file mode 100644
index 7c55f8d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.79/BUILD.bazel
+++ /dev/null
@@ -1,180 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "raw_value",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.79",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/itoa-1.0.1:itoa",
-            "//vendor_local_pkgs/crates/ryu-1.0.9:ryu",
-            "//vendor_local_pkgs/crates/serde-1.0.136:serde",
-            "//vendor_local_pkgs/crates/serde_json-1.0.79:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_json_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "raw_value",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.79",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_json_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.82/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.82/BUILD.bazel
new file mode 100644
index 0000000..1b58f9e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_json-1.0.82/BUILD.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "raw_value",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/itoa-1.0.2:itoa",
+            "//vendor_local_pkgs/crates/ryu-1.0.10:ryu",
+            "//vendor_local_pkgs/crates/serde-1.0.140:serde",
+            "//vendor_local_pkgs/crates/serde_json-1.0.82:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "raw_value",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_urlencoded-0.7.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_urlencoded-0.7.1/BUILD.bazel
index 98e60e9..2b76170 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_urlencoded-0.7.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/serde_urlencoded-0.7.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,9 +86,9 @@
     ] + select_with_or({
         "//conditions:default": [
             "//vendor_local_pkgs/crates/form_urlencoded-1.0.1:form_urlencoded",
-            "//vendor_local_pkgs/crates/itoa-1.0.1:itoa",
-            "//vendor_local_pkgs/crates/ryu-1.0.9:ryu",
-            "//vendor_local_pkgs/crates/serde-1.0.136:serde",
+            "//vendor_local_pkgs/crates/itoa-1.0.2:itoa",
+            "//vendor_local_pkgs/crates/ryu-1.0.10:ryu",
+            "//vendor_local_pkgs/crates/serde-1.0.140:serde",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sharded-slab-0.1.4/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sharded-slab-0.1.4/BUILD.bazel
index 8731db1..f1e3485 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sharded-slab-0.1.4/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sharded-slab-0.1.4/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/signal-hook-registry-1.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/signal-hook-registry-1.4.0/BUILD.bazel
index e41c37a..57b82cb 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/signal-hook-registry-1.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/signal-hook-registry-1.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.5/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.5/BUILD.bazel
deleted file mode 100644
index d4303ef..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.5/BUILD.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "slab",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.5",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.7/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.7/BUILD.bazel
new file mode 100644
index 0000000..0637184
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/slab-0.4.7/BUILD.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "slab",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/slab-0.4.7:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "slab_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/autocfg-1.1.0:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "slab_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.8.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.8.0/BUILD.bazel
deleted file mode 100644
index a9ae389..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.8.0/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.9.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.9.0/BUILD.bazel
new file mode 100644
index 0000000..3085cbc
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/smallvec-1.9.0/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/socket2-0.4.4/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/socket2-0.4.4/BUILD.bazel
index 028f436..9c1852f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/socket2-0.4.4/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/socket2-0.4.4/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -99,7 +107,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.86/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.86/BUILD.bazel
deleted file mode 100644
index 2a05ffd..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.86/BUILD.bazel
+++ /dev/null
@@ -1,196 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "syn",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-        "visit-mut",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.86",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_pkgs/crates/quote-1.0.15:quote",
-            "//vendor_local_pkgs/crates/syn-1.0.86:build_script_build",
-            "//vendor_local_pkgs/crates/unicode-xid-0.2.2:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "syn_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-        "visit-mut",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.86",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "syn_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.98/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.98/BUILD.bazel
new file mode 100644
index 0000000..07610ec
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/syn-1.0.98/BUILD.bazel
@@ -0,0 +1,199 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+        "visit-mut",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:quote",
+            "//vendor_local_pkgs/crates/syn-1.0.98:build_script_build",
+            "//vendor_local_pkgs/crates/unicode-ident-1.0.2:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+        "visit-mut",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sync_wrapper-0.1.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sync_wrapper-0.1.1/BUILD.bazel
index d3358b4..96d58ba 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sync_wrapper-0.1.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/sync_wrapper-0.1.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/thread_local-1.1.4/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/thread_local-1.1.4/BUILD.bazel
index f77834f..1670689 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/thread_local-1.1.4/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/thread_local-1.1.4/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_pkgs/crates/once_cell-1.13.0:once_cell",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-1.16.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-1.16.1/BUILD.bazel
index 559800b..21913e2 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-1.16.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-1.16.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -74,7 +83,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/tokio-macros-1.7.0:tokio_macros",
+            "//vendor_local_pkgs/crates/tokio-macros-1.8.0:tokio_macros",
         ],
     }),
     rustc_env = {
@@ -89,10 +98,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -106,9 +112,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -123,17 +131,17 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "//vendor_local_pkgs/crates/libc-0.2.119:libc",
+            "//vendor_local_pkgs/crates/libc-0.2.126:libc",
             "//vendor_local_pkgs/crates/signal-hook-registry-1.4.0:signal_hook_registry",
 
             # Common Deps
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/memchr-2.4.1:memchr",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/memchr-2.5.0:memchr",
             "//vendor_local_pkgs/crates/mio-0.7.14:mio",
             "//vendor_local_pkgs/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_pkgs/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_pkgs/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_pkgs/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
         # cfg(windows)
         (
@@ -144,22 +152,22 @@
             "//vendor_local_pkgs/crates/winapi-0.3.9:winapi",
 
             # Common Deps
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/memchr-2.4.1:memchr",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/memchr-2.5.0:memchr",
             "//vendor_local_pkgs/crates/mio-0.7.14:mio",
             "//vendor_local_pkgs/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_pkgs/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_pkgs/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_pkgs/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/memchr-2.4.1:memchr",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/memchr-2.5.0:memchr",
             "//vendor_local_pkgs/crates/mio-0.7.14:mio",
             "//vendor_local_pkgs/crates/num_cpus-1.13.1:num_cpus",
-            "//vendor_local_pkgs/crates/once_cell-1.9.0:once_cell",
+            "//vendor_local_pkgs/crates/once_cell-1.13.0:once_cell",
             "//vendor_local_pkgs/crates/parking_lot-0.11.2:parking_lot",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.7.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.7.0/BUILD.bazel
deleted file mode 100644
index 32e221f..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.7.0/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tokio_macros",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_pkgs/crates/quote-1.0.15:quote",
-            "//vendor_local_pkgs/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.8.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.8.0/BUILD.bazel
new file mode 100644
index 0000000..4f4fc3d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-macros-1.8.0/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tokio_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:quote",
+            "//vendor_local_pkgs/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.6.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.6.9/BUILD.bazel
deleted file mode 100644
index 379638c..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.6.9/BUILD.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_util",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "codec",
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.6.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-sink-0.3.21:futures_sink",
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.0/BUILD.bazel
deleted file mode 100644
index 2758f4b..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.0/BUILD.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_util",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-sink-0.3.21:futures_sink",
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.2/BUILD.bazel
new file mode 100644
index 0000000..bc5ac58
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tokio-util-0.7.2/BUILD.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "codec",
+        "default",
+        "tracing",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_pkgs/crates/futures-sink-0.3.21:futures_sink",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
+            "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.12/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.12/BUILD.bazel
deleted file mode 100644
index 36d9127..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.12/BUILD.bazel
+++ /dev/null
@@ -1,106 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "__common",
-        "buffer",
-        "default",
-        "futures-core",
-        "futures-util",
-        "log",
-        "make",
-        "pin-project",
-        "pin-project-lite",
-        "tokio",
-        "tokio-util",
-        "tracing",
-        "util",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.12",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/pin-project-1.0.10:pin_project",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
-            "//vendor_local_pkgs/crates/tokio-util-0.7.0:tokio_util",
-            "//vendor_local_pkgs/crates/tower-layer-0.3.1:tower_layer",
-            "//vendor_local_pkgs/crates/tower-service-0.3.1:tower_service",
-            "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.13/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.13/BUILD.bazel
new file mode 100644
index 0000000..56995d5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-0.4.13/BUILD.bazel
@@ -0,0 +1,112 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "__common",
+        "buffer",
+        "default",
+        "futures-core",
+        "futures-util",
+        "log",
+        "make",
+        "pin-project",
+        "pin-project-lite",
+        "tokio",
+        "tokio-util",
+        "tracing",
+        "util",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
+            "//vendor_local_pkgs/crates/pin-project-1.0.11:pin_project",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/tokio-1.16.1:tokio",
+            "//vendor_local_pkgs/crates/tokio-util-0.7.2:tokio_util",
+            "//vendor_local_pkgs/crates/tower-layer-0.3.1:tower_layer",
+            "//vendor_local_pkgs/crates/tower-service-0.3.2:tower_service",
+            "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.3/BUILD.bazel
deleted file mode 100644
index 4c75db0..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.3/BUILD.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower_http",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "map-response-body",
-        "tower",
-        "trace",
-        "tracing",
-        "util",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.3",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/bitflags-1.3.2:bitflags",
-            "//vendor_local_pkgs/crates/bytes-1.1.0:bytes",
-            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
-            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
-            "//vendor_local_pkgs/crates/http-0.2.6:http",
-            "//vendor_local_pkgs/crates/http-body-0.4.4:http_body",
-            "//vendor_local_pkgs/crates/http-range-header-0.3.0:http_range_header",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/tower-0.4.12:tower",
-            "//vendor_local_pkgs/crates/tower-layer-0.3.1:tower_layer",
-            "//vendor_local_pkgs/crates/tower-service-0.3.1:tower_service",
-            "//vendor_local_pkgs/crates/tracing-0.1.31:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.5/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.5/BUILD.bazel
new file mode 100644
index 0000000..983fd2f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-http-0.2.5/BUILD.bazel
@@ -0,0 +1,108 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower_http",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "map-response-body",
+        "tower",
+        "trace",
+        "tracing",
+        "util",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/bitflags-1.3.2:bitflags",
+            "//vendor_local_pkgs/crates/bytes-1.2.0:bytes",
+            "//vendor_local_pkgs/crates/futures-core-0.3.21:futures_core",
+            "//vendor_local_pkgs/crates/futures-util-0.3.21:futures_util",
+            "//vendor_local_pkgs/crates/http-0.2.8:http",
+            "//vendor_local_pkgs/crates/http-body-0.4.5:http_body",
+            "//vendor_local_pkgs/crates/http-range-header-0.3.0:http_range_header",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/tower-0.4.13:tower",
+            "//vendor_local_pkgs/crates/tower-layer-0.3.1:tower_layer",
+            "//vendor_local_pkgs/crates/tower-service-0.3.2:tower_service",
+            "//vendor_local_pkgs/crates/tracing-0.1.35:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-layer-0.3.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-layer-0.3.1/BUILD.bazel
index 9e48ea0..c0e6fba 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-layer-0.3.1/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-layer-0.3.1/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.1/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.1/BUILD.bazel
deleted file mode 100644
index 317d496..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.1/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower_service",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.2/BUILD.bazel
new file mode 100644
index 0000000..f5c0978
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tower-service-0.3.2/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower_service",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.31/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.31/BUILD.bazel
deleted file mode 100644
index 069009a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.31/BUILD.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "attributes",
-        "default",
-        "log",
-        "std",
-        "tracing-attributes",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/tracing-attributes-0.1.19:tracing_attributes",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.31",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
-            "//vendor_local_pkgs/crates/pin-project-lite-0.2.8:pin_project_lite",
-            "//vendor_local_pkgs/crates/tracing-core-0.1.22:tracing_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.35/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.35/BUILD.bazel
new file mode 100644
index 0000000..885046e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-0.1.35/BUILD.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "attributes",
+        "default",
+        "log",
+        "std",
+        "tracing-attributes",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/tracing-attributes-0.1.22:tracing_attributes",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.35",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/cfg-if-1.0.0:cfg_if",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
+            "//vendor_local_pkgs/crates/pin-project-lite-0.2.9:pin_project_lite",
+            "//vendor_local_pkgs/crates/tracing-core-0.1.28:tracing_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.19/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.19/BUILD.bazel
deleted file mode 100644
index 9ed8663..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.19/BUILD.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tracing_attributes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.19",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/proc-macro2-1.0.36:proc_macro2",
-            "//vendor_local_pkgs/crates/quote-1.0.15:quote",
-            "//vendor_local_pkgs/crates/syn-1.0.86:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.22/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.22/BUILD.bazel
new file mode 100644
index 0000000..62af55e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-attributes-0.1.22/BUILD.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tracing_attributes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/proc-macro2-1.0.40:proc_macro2",
+            "//vendor_local_pkgs/crates/quote-1.0.20:quote",
+            "//vendor_local_pkgs/crates/syn-1.0.98:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.22/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.22/BUILD.bazel
deleted file mode 100644
index 6256b9f..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.22/BUILD.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_core",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-        "valuable",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.22",
-    deps = [
-    ] + select_with_or({
-        # cfg(tracing_unstable)
-        #
-        # No supported platform triples for cfg: 'cfg(tracing_unstable)'
-        # Skipped dependencies: [{"id":"valuable 0.1.0","target":"valuable"}]
-        #
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/lazy_static-1.4.0:lazy_static",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.28/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.28/BUILD.bazel
new file mode 100644
index 0000000..c77c36b
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-core-0.1.28/BUILD.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+        "valuable",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.28",
+    deps = [
+    ] + select_with_or({
+        # cfg(tracing_unstable)
+        #
+        # No supported platform triples for cfg: 'cfg(tracing_unstable)'
+        # Skipped dependencies: [{"id":"valuable 0.1.0","target":"valuable"}]
+        #
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/once_cell-1.13.0:once_cell",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.2/BUILD.bazel
deleted file mode 100644
index 3f5ff7d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.2/BUILD.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "log-tracer",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/lazy_static-1.4.0:lazy_static",
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
-            "//vendor_local_pkgs/crates/tracing-core-0.1.22:tracing_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.3/BUILD.bazel
new file mode 100644
index 0000000..59a3135
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-log-0.1.3/BUILD.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "log-tracer",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/lazy_static-1.4.0:lazy_static",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
+            "//vendor_local_pkgs/crates/tracing-core-0.1.28:tracing_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.15/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.15/BUILD.bazel
new file mode 100644
index 0000000..2bd2af0
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.15/BUILD.bazel
@@ -0,0 +1,107 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_subscriber",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "ansi",
+        "ansi_term",
+        "default",
+        "fmt",
+        "registry",
+        "sharded-slab",
+        "smallvec",
+        "std",
+        "thread_local",
+        "tracing-log",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "//vendor_local_pkgs/crates/ansi_term-0.12.1:ansi_term",
+            "//vendor_local_pkgs/crates/sharded-slab-0.1.4:sharded_slab",
+            "//vendor_local_pkgs/crates/smallvec-1.9.0:smallvec",
+            "//vendor_local_pkgs/crates/thread_local-1.1.4:thread_local",
+            "//vendor_local_pkgs/crates/tracing-core-0.1.28:tracing_core",
+            "//vendor_local_pkgs/crates/tracing-log-0.1.3:tracing_log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.9/BUILD.bazel
deleted file mode 100644
index 17b127e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/tracing-subscriber-0.3.9/BUILD.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_subscriber",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "ansi",
-        "ansi_term",
-        "default",
-        "fmt",
-        "registry",
-        "sharded-slab",
-        "smallvec",
-        "std",
-        "thread_local",
-        "tracing-log",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "//vendor_local_pkgs/crates/ansi_term-0.12.1:ansi_term",
-            "//vendor_local_pkgs/crates/sharded-slab-0.1.4:sharded_slab",
-            "//vendor_local_pkgs/crates/smallvec-1.8.0:smallvec",
-            "//vendor_local_pkgs/crates/thread_local-1.1.4:thread_local",
-            "//vendor_local_pkgs/crates/tracing-core-0.1.22:tracing_core",
-            "//vendor_local_pkgs/crates/tracing-log-0.1.2:tracing_log",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/try-lock-0.2.3/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/try-lock-0.2.3/BUILD.bazel
index 10fbaf6..174cafa 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/try-lock-0.2.3/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/try-lock-0.2.3/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-ident-1.0.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-ident-1.0.2/BUILD.bazel
new file mode 100644
index 0000000..95a5dee
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-ident-1.0.2/BUILD.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_local_pkgs:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-xid-0.2.2/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-xid-0.2.2/BUILD.bazel
deleted file mode 100644
index 30562c1..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/unicode-xid-0.2.2/BUILD.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/valuable-0.1.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/valuable-0.1.0/BUILD.bazel
index e044513..a44df92 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/valuable-0.1.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/valuable-0.1.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -138,10 +144,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/want-0.3.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/want-0.3.0/BUILD.bazel
index 9978792..e07b82f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/want-0.3.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/want-0.3.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "//vendor_local_pkgs/crates/log-0.4.14:log",
+            "//vendor_local_pkgs/crates/log-0.4.17:log",
             "//vendor_local_pkgs/crates/try-lock-0.2.3:try_lock",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-0.3.9/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-0.3.9/BUILD.bazel
index 9173bf8..2109ea2 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-0.3.9/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-0.3.9/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -99,10 +108,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -204,10 +210,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
index 828411f..ebb2951 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-i686-pc-windows-gnu-0.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
index 8e4afeb..5de7063 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_local_pkgs/crates/winapi-x86_64-pc-windows-gnu-0.4.0/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_local_pkgs:crates_vendor
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.2.bazel
deleted file mode 100644
index 9f22c11..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.2.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "async_stream",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__async-stream-impl-0.3.2//:async_stream_impl",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__futures-core-0.3.21//:futures_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.3.bazel
new file mode 100644
index 0000000..efbf54c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-0.3.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "async_stream",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__async-stream-impl-0.3.3//:async_stream_impl",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__futures-core-0.3.21//:futures_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.2.bazel
deleted file mode 100644
index e73b1ee..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.2.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "async_stream_impl",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_manifests__quote-1.0.15//:quote",
-            "@crates_vendor_manifests__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.3.bazel
new file mode 100644
index 0000000..90144bf
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.async-stream-impl-0.3.3.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "async_stream_impl",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_manifests__quote-1.0.20//:quote",
+            "@crates_vendor_manifests__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..ae085b2
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bazel
index 0da6951..9ebbbdd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 package(default_visibility = ["//visibility:public"])
@@ -34,7 +35,7 @@
 
 alias(
     name = "tokio",
-    actual = "@crates_vendor_manifests__tokio-1.17.0//:tokio",
+    actual = "@crates_vendor_manifests__tokio-1.20.0//:tokio",
     tags = ["manual"],
 )
 
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bitflags-1.3.2.bazel
index 6894746..a9511c1 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bitflags-1.3.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bitflags-1.3.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.1.0.bazel
deleted file mode 100644
index b679f2e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.1.0.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "bytes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.1.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.2.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.2.0.bazel
new file mode 100644
index 0000000..cdf271b
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.bytes-1.2.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.cfg-if-1.0.0.bazel
index e4aab64..a4c94bd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.cfg-if-1.0.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.cfg-if-1.0.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.fastrand-1.7.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.fastrand-1.7.0.bazel
index fb44acc..cfda930 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.fastrand-1.7.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.fastrand-1.7.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.futures-core-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.futures-core-0.3.21.bazel
index 18c784f..04584b9 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.futures-core-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.futures-core-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.hermit-abi-0.1.19.bazel
index 02c882d..bf75664 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.hermit-abi-0.1.19.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.instant-0.1.12.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.instant-0.1.12.bazel
index 9bd589e..f6d4fd6 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.instant-0.1.12.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.instant-0.1.12.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.119.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.119.bazel
deleted file mode 100644
index 0fd8f4d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.119.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.119",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__libc-0.2.119//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "libc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.119",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "libc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..e9fa92d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.6.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.6.bazel
deleted file mode 100644
index e7a3f40..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.6.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "lock_api",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__scopeguard-1.1.0//:scopeguard",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.7.bazel
new file mode 100644
index 0000000..774ff96
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.lock_api-0.4.7.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__lock_api-0.4.7//:build_script_build",
+            "@crates_vendor_manifests__scopeguard-1.1.0//:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "lock_api_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "lock_api_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.14.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.14.bazel
deleted file mode 100644
index 57df435..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,172 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_manifests__log-0.4.14//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "log_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "log_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..f9b030c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_manifests__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index 2dbd77e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "memchr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "2.4.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__memchr-2.4.1//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "memchr_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "memchr_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..08aff31
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.0.bazel
deleted file mode 100644
index f5e30fc..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.0.bazel
+++ /dev/null
@@ -1,128 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "mio",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "net",
-        "os-ext",
-        "os-poll",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.8.0",
-    deps = [
-    ] + select_with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
-
-            # Common Deps
-            "@crates_vendor_manifests__log-0.4.14//:log",
-        ],
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__miow-0.3.7//:miow",
-            "@crates_vendor_manifests__ntapi-0.3.7//:ntapi",
-            "@crates_vendor_manifests__winapi-0.3.9//:winapi",
-
-            # Common Deps
-            "@crates_vendor_manifests__log-0.4.14//:log",
-        ],
-        "//conditions:default": [
-            "@crates_vendor_manifests__log-0.4.14//:log",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.4.bazel
new file mode 100644
index 0000000..38b3e85
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.mio-0.8.4.bazel
@@ -0,0 +1,145 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "mio",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "net",
+        "os-ext",
+        "os-poll",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.4",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "wasi")
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
+            "@crates_vendor_manifests__wasi-0.11.0-wasi-snapshot-preview1//:wasi",
+
+            # Common Deps
+            "@crates_vendor_manifests__log-0.4.17//:log",
+        ],
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@crates_vendor_manifests__log-0.4.17//:log",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__windows-sys-0.36.1//:windows_sys",
+
+            # Common Deps
+            "@crates_vendor_manifests__log-0.4.17//:log",
+        ],
+        "//conditions:default": [
+            "@crates_vendor_manifests__log-0.4.17//:log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.miow-0.3.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.miow-0.3.7.bazel
deleted file mode 100644
index 63faa37..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.miow-0.3.7.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "miow",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__winapi-0.3.9//:winapi",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.ntapi-0.3.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.ntapi-0.3.7.bazel
deleted file mode 100644
index a6479c9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.ntapi-0.3.7.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "ntapi",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "user",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.7",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__ntapi-0.3.7//:build_script_build",
-            "@crates_vendor_manifests__winapi-0.3.9//:winapi",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "ntapi_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "user",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.3.7",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "ntapi_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.num_cpus-1.13.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.num_cpus-1.13.1.bazel
index 3586ee5..720205c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.num_cpus-1.13.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.num_cpus-1.13.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,15 +93,18 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
             "@rules_rust//rust/platform:i686-unknown-freebsd",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
             "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
@@ -106,7 +115,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..fb857e5
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.9.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.9.0.bazel
deleted file mode 100644
index f2a936a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.once_cell-1.9.0.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.9.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.0.bazel
deleted file mode 100644
index 424b7977..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.0.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "parking_lot",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.12.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__lock_api-0.4.6//:lock_api",
-            "@crates_vendor_manifests__parking_lot_core-0.9.1//:parking_lot_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.1.bazel
new file mode 100644
index 0000000..6660ece
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot-0.12.1.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "parking_lot",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__lock_api-0.4.7//:lock_api",
+            "@crates_vendor_manifests__parking_lot_core-0.9.3//:parking_lot_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.1.bazel
deleted file mode 100644
index fd20e37..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.1.bazel
+++ /dev/null
@@ -1,219 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "parking_lot_core",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.9.1",
-    deps = [
-    ] + select_with_or({
-        # cfg(target_os = "redox")
-        #
-        # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
-        #
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
-
-            # Common Deps
-            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_manifests__parking_lot_core-0.9.1//:build_script_build",
-            "@crates_vendor_manifests__smallvec-1.8.0//:smallvec",
-        ],
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__windows-sys-0.32.0//:windows_sys",
-
-            # Common Deps
-            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_manifests__parking_lot_core-0.9.1//:build_script_build",
-            "@crates_vendor_manifests__smallvec-1.8.0//:smallvec",
-        ],
-        "//conditions:default": [
-            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_manifests__parking_lot_core-0.9.1//:build_script_build",
-            "@crates_vendor_manifests__smallvec-1.8.0//:smallvec",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "parking_lot_core_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.9.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "parking_lot_core_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.3.bazel
new file mode 100644
index 0000000..2aff6ee
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.parking_lot_core-0.9.3.bazel
@@ -0,0 +1,224 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "parking_lot_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "redox")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "redox")'
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_manifests__parking_lot_core-0.9.3//:build_script_build",
+            "@crates_vendor_manifests__smallvec-1.9.0//:smallvec",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__windows-sys-0.36.1//:windows_sys",
+
+            # Common Deps
+            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_manifests__parking_lot_core-0.9.3//:build_script_build",
+            "@crates_vendor_manifests__smallvec-1.9.0//:smallvec",
+        ],
+        "//conditions:default": [
+            "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_manifests__parking_lot_core-0.9.3//:build_script_build",
+            "@crates_vendor_manifests__smallvec-1.9.0//:smallvec",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "parking_lot_core_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.9.3",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "parking_lot_core_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.8.bazel
deleted file mode 100644
index cfd3870..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.8.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project_lite",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.9.bazel
new file mode 100644
index 0000000..36d2a9a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.pin-project-lite-0.2.9.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project_lite",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.36.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.36.bazel
deleted file mode 100644
index 5485684..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.36.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.36",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__proc-macro2-1.0.36//:build_script_build",
-            "@crates_vendor_manifests__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "proc-macro2_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.36",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "proc-macro2_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..c867257
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__proc-macro2-1.0.40//:build_script_build",
+            "@crates_vendor_manifests__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.15.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.15.bazel
deleted file mode 100644
index 3dc3818..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.15.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "quote",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.15",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__proc-macro2-1.0.36//:proc_macro2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..b262076
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_manifests__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.11.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.11.bazel
deleted file mode 100644
index 590ddd8..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.11.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "syscall",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__bitflags-1.3.2//:bitflags",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.13.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.13.bazel
new file mode 100644
index 0000000..11acaea
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.redox_syscall-0.2.13.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__bitflags-1.3.2//:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.remove_dir_all-0.5.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.remove_dir_all-0.5.3.bazel
index 329b121..c59565d 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.remove_dir_all-0.5.3.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.remove_dir_all-0.5.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.scopeguard-1.1.0.bazel
index 0bc1e13..37e9633 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.scopeguard-1.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.scopeguard-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.signal-hook-registry-1.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.signal-hook-registry-1.4.0.bazel
index 320e197..8e9f077 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.signal-hook-registry-1.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.signal-hook-registry-1.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.8.0.bazel
deleted file mode 100644
index a9ae389..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.8.0.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.9.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.9.0.bazel
new file mode 100644
index 0000000..0ad6bad
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.smallvec-1.9.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.socket2-0.4.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.socket2-0.4.4.bazel
index a2283ce..5279810 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.socket2-0.4.4.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.socket2-0.4.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -83,9 +89,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -100,7 +108,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.86.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.86.bazel
deleted file mode 100644
index b4ff6d3..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.86.bazel
+++ /dev/null
@@ -1,194 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "syn",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit-mut",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.86",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_manifests__quote-1.0.15//:quote",
-            "@crates_vendor_manifests__syn-1.0.86//:build_script_build",
-            "@crates_vendor_manifests__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "syn_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit-mut",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.86",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "syn_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..b421ebc
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,195 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit-mut",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_manifests__quote-1.0.20//:quote",
+            "@crates_vendor_manifests__syn-1.0.98//:build_script_build",
+            "@crates_vendor_manifests__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit-mut",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tempfile-3.3.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tempfile-3.3.0.bazel
index 6e3cacd..d08e331 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tempfile-3.3.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tempfile-3.3.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -100,7 +108,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
 
             # Common Deps
             "@crates_vendor_manifests__cfg-if-1.0.0//:cfg_if",
@@ -110,7 +118,7 @@
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(windows)
         (
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.17.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.17.0.bazel
deleted file mode 100644
index 3490657..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.17.0.bazel
+++ /dev/null
@@ -1,170 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "bytes",
-        "default",
-        "fs",
-        "full",
-        "io-std",
-        "io-util",
-        "libc",
-        "macros",
-        "memchr",
-        "mio",
-        "net",
-        "num_cpus",
-        "once_cell",
-        "parking_lot",
-        "process",
-        "rt",
-        "rt-multi-thread",
-        "signal",
-        "signal-hook-registry",
-        "socket2",
-        "sync",
-        "test-util",
-        "time",
-        "tokio-macros",
-        "winapi",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__tokio-macros-1.7.0//:tokio_macros",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.17.0",
-    deps = [
-    ] + select_with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__libc-0.2.119//:libc",
-            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",
-
-            # Common Deps
-            "@crates_vendor_manifests__bytes-1.1.0//:bytes",
-            "@crates_vendor_manifests__memchr-2.4.1//:memchr",
-            "@crates_vendor_manifests__mio-0.8.0//:mio",
-            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_manifests__once_cell-1.9.0//:once_cell",
-            "@crates_vendor_manifests__parking_lot-0.12.0//:parking_lot",
-            "@crates_vendor_manifests__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
-        ],
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__winapi-0.3.9//:winapi",
-
-            # Common Deps
-            "@crates_vendor_manifests__bytes-1.1.0//:bytes",
-            "@crates_vendor_manifests__memchr-2.4.1//:memchr",
-            "@crates_vendor_manifests__mio-0.8.0//:mio",
-            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_manifests__once_cell-1.9.0//:once_cell",
-            "@crates_vendor_manifests__parking_lot-0.12.0//:parking_lot",
-            "@crates_vendor_manifests__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
-        ],
-        "//conditions:default": [
-            "@crates_vendor_manifests__bytes-1.1.0//:bytes",
-            "@crates_vendor_manifests__memchr-2.4.1//:memchr",
-            "@crates_vendor_manifests__mio-0.8.0//:mio",
-            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_manifests__once_cell-1.9.0//:once_cell",
-            "@crates_vendor_manifests__parking_lot-0.12.0//:parking_lot",
-            "@crates_vendor_manifests__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.20.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.20.0.bazel
new file mode 100644
index 0000000..eba2749
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-1.20.0.bazel
@@ -0,0 +1,290 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bytes",
+        "default",
+        "fs",
+        "full",
+        "io-std",
+        "io-util",
+        "libc",
+        "macros",
+        "memchr",
+        "mio",
+        "net",
+        "num_cpus",
+        "once_cell",
+        "parking_lot",
+        "process",
+        "rt",
+        "rt-multi-thread",
+        "signal",
+        "signal-hook-registry",
+        "socket2",
+        "sync",
+        "test-util",
+        "time",
+        "tokio-macros",
+        "winapi",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__tokio-macros-1.8.0//:tokio_macros",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.20.0",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__libc-0.2.126//:libc",
+            "@crates_vendor_manifests__signal-hook-registry-1.4.0//:signal_hook_registry",
+
+            # Common Deps
+            "@crates_vendor_manifests__bytes-1.2.0//:bytes",
+            "@crates_vendor_manifests__memchr-2.5.0//:memchr",
+            "@crates_vendor_manifests__mio-0.8.4//:mio",
+            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
+            "@crates_vendor_manifests__once_cell-1.13.0//:once_cell",
+            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",
+            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
+            "@crates_vendor_manifests__tokio-1.20.0//:build_script_build",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@crates_vendor_manifests__bytes-1.2.0//:bytes",
+            "@crates_vendor_manifests__memchr-2.5.0//:memchr",
+            "@crates_vendor_manifests__mio-0.8.4//:mio",
+            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
+            "@crates_vendor_manifests__once_cell-1.13.0//:once_cell",
+            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",
+            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
+            "@crates_vendor_manifests__tokio-1.20.0//:build_script_build",
+        ],
+        "//conditions:default": [
+            "@crates_vendor_manifests__bytes-1.2.0//:bytes",
+            "@crates_vendor_manifests__memchr-2.5.0//:memchr",
+            "@crates_vendor_manifests__mio-0.8.4//:mio",
+            "@crates_vendor_manifests__num_cpus-1.13.1//:num_cpus",
+            "@crates_vendor_manifests__once_cell-1.13.0//:once_cell",
+            "@crates_vendor_manifests__parking_lot-0.12.1//:parking_lot",
+            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_manifests__socket2-0.4.4//:socket2",
+            "@crates_vendor_manifests__tokio-1.20.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "tokio_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bytes",
+        "default",
+        "fs",
+        "full",
+        "io-std",
+        "io-util",
+        "libc",
+        "macros",
+        "memchr",
+        "mio",
+        "net",
+        "num_cpus",
+        "once_cell",
+        "parking_lot",
+        "process",
+        "rt",
+        "rt-multi-thread",
+        "signal",
+        "signal-hook-registry",
+        "socket2",
+        "sync",
+        "test-util",
+        "time",
+        "tokio-macros",
+        "winapi",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.20.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "tokio_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.7.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.7.0.bazel
deleted file mode 100644
index b209beb..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.7.0.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tokio_macros",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_manifests__quote-1.0.15//:quote",
-            "@crates_vendor_manifests__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.8.0.bazel
new file mode 100644
index 0000000..fcdd24b
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-macros-1.8.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tokio_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_manifests__quote-1.0.20//:quote",
+            "@crates_vendor_manifests__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.8.bazel
deleted file mode 100644
index ab24cb7..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.8.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_stream",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "time",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_manifests__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_manifests__tokio-1.17.0//:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.9.bazel
new file mode 100644
index 0000000..cadbc4f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-stream-0.1.9.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_stream",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "time",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_manifests__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_manifests__tokio-1.20.0//:tokio",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-test-0.4.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-test-0.4.2.bazel
index 43f9908..8c885f1 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-test-0.4.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.tokio-test-0.4.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,11 +85,11 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_manifests__async-stream-0.3.2//:async_stream",
-            "@crates_vendor_manifests__bytes-1.1.0//:bytes",
+            "@crates_vendor_manifests__async-stream-0.3.3//:async_stream",
+            "@crates_vendor_manifests__bytes-1.2.0//:bytes",
             "@crates_vendor_manifests__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_manifests__tokio-1.17.0//:tokio",
-            "@crates_vendor_manifests__tokio-stream-0.1.8//:tokio_stream",
+            "@crates_vendor_manifests__tokio-1.20.0//:tokio",
+            "@crates_vendor_manifests__tokio-stream-0.1.9//:tokio_stream",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-ident-1.0.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..1a8fdc9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 30562c1..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
new file mode 100644
index 0000000..3aff937
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "wasi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.0+wasi-snapshot-preview1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-0.3.9.bazel
index 3e20685..a9d5418 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-0.3.9.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-0.3.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -40,35 +41,32 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
     crate_features = [
-        "cfg",
         "consoleapi",
         "errhandlingapi",
-        "evntrace",
         "fileapi",
         "handleapi",
-        "in6addr",
-        "inaddr",
-        "ioapiset",
-        "minwinbase",
         "minwindef",
-        "mswsock",
         "namedpipeapi",
-        "ntdef",
-        "ntsecapi",
+        "processthreadsapi",
         "std",
-        "synchapi",
         "threadpoollegacyapiset",
         "winbase",
-        "windef",
+        "wincon",
         "winerror",
-        "winioctl",
-        "winsock2",
-        "ws2def",
+        "winnt",
         "ws2ipdef",
         "ws2tcpip",
     ],
@@ -95,10 +93,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -145,30 +140,19 @@
         ],
     }),
     crate_features = [
-        "cfg",
         "consoleapi",
         "errhandlingapi",
-        "evntrace",
         "fileapi",
         "handleapi",
-        "in6addr",
-        "inaddr",
-        "ioapiset",
-        "minwinbase",
         "minwindef",
-        "mswsock",
         "namedpipeapi",
-        "ntdef",
-        "ntsecapi",
+        "processthreadsapi",
         "std",
-        "synchapi",
         "threadpoollegacyapiset",
         "winbase",
-        "windef",
+        "wincon",
         "winerror",
-        "winioctl",
-        "winsock2",
-        "ws2def",
+        "winnt",
         "ws2ipdef",
         "ws2tcpip",
     ],
@@ -196,10 +180,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
index 5583f0e..c4c74c5 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
index 612e171..6c8b94c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.32.0.bazel
deleted file mode 100644
index aea4e85..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.32.0.bazel
+++ /dev/null
@@ -1,149 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_sys",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "Win32",
-        "Win32_Foundation",
-        "Win32_System",
-        "Win32_System_LibraryLoader",
-        "Win32_System_SystemServices",
-        "Win32_System_WindowsProgramming",
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        # aarch64-pc-windows-msvc
-        #
-        # No supported platform triples for cfg: 'aarch64-pc-windows-msvc'
-        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.32.0","target":"windows_aarch64_msvc"}]
-        #
-        # aarch64-uwp-windows-msvc
-        #
-        # No supported platform triples for cfg: 'aarch64-uwp-windows-msvc'
-        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.32.0","target":"windows_aarch64_msvc"}]
-        #
-        # i686-pc-windows-gnu
-        #
-        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
-        # Skipped dependencies: [{"id":"windows_i686_gnu 0.32.0","target":"windows_i686_gnu"}]
-        #
-        # i686-pc-windows-msvc
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__windows_i686_msvc-0.32.0//:windows_i686_msvc",
-
-            # Common Deps
-        ],
-        # i686-uwp-windows-gnu
-        #
-        # No supported platform triples for cfg: 'i686-uwp-windows-gnu'
-        # Skipped dependencies: [{"id":"windows_i686_gnu 0.32.0","target":"windows_i686_gnu"}]
-        #
-        # i686-uwp-windows-msvc
-        #
-        # No supported platform triples for cfg: 'i686-uwp-windows-msvc'
-        # Skipped dependencies: [{"id":"windows_i686_msvc 0.32.0","target":"windows_i686_msvc"}]
-        #
-        # x86_64-pc-windows-gnu
-        #
-        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
-        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.32.0","target":"windows_x86_64_gnu"}]
-        #
-        # x86_64-pc-windows-msvc
-        (
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            # Target Deps
-            "@crates_vendor_manifests__windows_x86_64_msvc-0.32.0//:windows_x86_64_msvc",
-
-            # Common Deps
-        ],
-        # x86_64-uwp-windows-gnu
-        #
-        # No supported platform triples for cfg: 'x86_64-uwp-windows-gnu'
-        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.32.0","target":"windows_x86_64_gnu"}]
-        #
-        # x86_64-uwp-windows-msvc
-        #
-        # No supported platform triples for cfg: 'x86_64-uwp-windows-msvc'
-        # Skipped dependencies: [{"id":"windows_x86_64_msvc 0.32.0","target":"windows_x86_64_msvc"}]
-        #
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.36.1.bazel
new file mode 100644
index 0000000..f808f6a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows-sys-0.36.1.bazel
@@ -0,0 +1,162 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "Win32",
+        "Win32_Foundation",
+        "Win32_Networking",
+        "Win32_Networking_WinSock",
+        "Win32_Security",
+        "Win32_Storage",
+        "Win32_Storage_FileSystem",
+        "Win32_System",
+        "Win32_System_IO",
+        "Win32_System_LibraryLoader",
+        "Win32_System_Pipes",
+        "Win32_System_SystemServices",
+        "Win32_System_WindowsProgramming",
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        # aarch64-pc-windows-msvc
+        #
+        # No supported platform triples for cfg: 'aarch64-pc-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.36.1","target":"windows_aarch64_msvc"}]
+        #
+        # aarch64-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'aarch64-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.36.1","target":"windows_aarch64_msvc"}]
+        #
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_i686_gnu 0.36.1","target":"windows_i686_gnu"}]
+        #
+        # i686-pc-windows-msvc
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__windows_i686_msvc-0.36.1//:windows_i686_msvc",
+
+            # Common Deps
+        ],
+        # i686-uwp-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-uwp-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_i686_gnu 0.36.1","target":"windows_i686_gnu"}]
+        #
+        # i686-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'i686-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_i686_msvc 0.36.1","target":"windows_i686_msvc"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.36.1","target":"windows_x86_64_gnu"}]
+        #
+        # x86_64-pc-windows-msvc
+        (
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@crates_vendor_manifests__windows_x86_64_msvc-0.36.1//:windows_x86_64_msvc",
+
+            # Common Deps
+        ],
+        # x86_64-uwp-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-uwp-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.36.1","target":"windows_x86_64_gnu"}]
+        #
+        # x86_64-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'x86_64-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_x86_64_msvc 0.36.1","target":"windows_x86_64_msvc"}]
+        #
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.32.0.bazel
deleted file mode 100644
index 4d430cb..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.32.0.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_aarch64_msvc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__windows_aarch64_msvc-0.32.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "windows_aarch64_msvc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.32.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "windows_aarch64_msvc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel
new file mode 100644
index 0000000..a67128f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_aarch64_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__windows_aarch64_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_aarch64_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_aarch64_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.32.0.bazel
deleted file mode 100644
index 8dfdd56..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.32.0.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_i686_gnu",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__windows_i686_gnu-0.32.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "windows_i686_gnu_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.32.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "windows_i686_gnu_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.36.1.bazel
new file mode 100644
index 0000000..e349c26
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_gnu-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_i686_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__windows_i686_gnu-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_i686_gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_i686_gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.32.0.bazel
deleted file mode 100644
index 9dff704..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.32.0.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_i686_msvc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__windows_i686_msvc-0.32.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "windows_i686_msvc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.32.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "windows_i686_msvc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.36.1.bazel
new file mode 100644
index 0000000..6f42fc9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_i686_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_i686_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__windows_i686_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_i686_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_i686_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.32.0.bazel
deleted file mode 100644
index d8c50da..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.32.0.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_x86_64_gnu",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__windows_x86_64_gnu-0.32.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "windows_x86_64_gnu_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.32.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "windows_x86_64_gnu_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel
new file mode 100644
index 0000000..332f53f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_x86_64_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__windows_x86_64_gnu-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_x86_64_gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_x86_64_gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.32.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.32.0.bazel
deleted file mode 100644
index f0f7b5e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.32.0.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "windows_x86_64_msvc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.32.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_manifests__windows_x86_64_msvc-0.32.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "windows_x86_64_msvc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.32.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "windows_x86_64_msvc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel
new file mode 100644
index 0000000..4775c73
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_x86_64_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_manifests__windows_x86_64_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_x86_64_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_x86_64_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/defs.bzl b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/defs.bzl
index 4e5b7be..a3f0480 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/defs.bzl
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_manifests/crates/defs.bzl
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_manifests:crates_vendor_manifests
 ###############################################################################
 """
 # `crates_repository` API
@@ -194,7 +195,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
@@ -287,7 +291,7 @@
 _NORMAL_DEPENDENCIES = {
     "vendor_remote_manifests": {
         _COMMON_CONDITION: {
-            "tokio": "@crates_vendor_manifests__tokio-1.17.0//:tokio",
+            "tokio": "@crates_vendor_manifests__tokio-1.20.0//:tokio",
         },
     },
 }
@@ -361,11 +365,12 @@
     "aarch64-pc-windows-msvc": [],
     "aarch64-uwp-windows-msvc": [],
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
-    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_arch = \"wasm32\")": ["wasm32-unknown-unknown", "wasm32-wasi"],
     "cfg(target_os = \"redox\")": [],
-    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(target_os = \"wasi\")": ["wasm32-wasi"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "i686-pc-windows-gnu": [],
     "i686-pc-windows-msvc": ["i686-pc-windows-msvc"],
@@ -383,22 +388,32 @@
     """A macro for defining repositories for all generated crates"""
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__async-stream-0.3.2",
-        sha256 = "171374e7e3b2504e0e5236e3b59260560f9fe94bfe9ac39ba5e4e929c5590625",
+        name = "crates_vendor_manifests__async-stream-0.3.3",
+        sha256 = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/async-stream/0.3.2/download"],
-        strip_prefix = "async-stream-0.3.2",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.async-stream-0.3.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/async-stream/0.3.3/download"],
+        strip_prefix = "async-stream-0.3.3",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.async-stream-0.3.3.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__async-stream-impl-0.3.2",
-        sha256 = "648ed8c8d2ce5409ccd57453d9d1b214b342a0d69376a6feda1fd6cae3299308",
+        name = "crates_vendor_manifests__async-stream-impl-0.3.3",
+        sha256 = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/async-stream-impl/0.3.2/download"],
-        strip_prefix = "async-stream-impl-0.3.2",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.async-stream-impl-0.3.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/async-stream-impl/0.3.3/download"],
+        strip_prefix = "async-stream-impl-0.3.3",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.async-stream-impl-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor_manifests__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.autocfg-1.1.0.bazel"),
     )
 
     maybe(
@@ -413,12 +428,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__bytes-1.1.0",
-        sha256 = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8",
+        name = "crates_vendor_manifests__bytes-1.2.0",
+        sha256 = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bytes/1.1.0/download"],
-        strip_prefix = "bytes-1.1.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.bytes-1.1.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/bytes/1.2.0/download"],
+        strip_prefix = "bytes-1.2.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.bytes-1.2.0.bazel"),
     )
 
     maybe(
@@ -473,72 +488,52 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__libc-0.2.119",
-        sha256 = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4",
+        name = "crates_vendor_manifests__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libc/0.2.119/download"],
-        strip_prefix = "libc-0.2.119",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.libc-0.2.119.bazel"),
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.libc-0.2.126.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__lock_api-0.4.6",
-        sha256 = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b",
+        name = "crates_vendor_manifests__lock_api-0.4.7",
+        sha256 = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lock_api/0.4.6/download"],
-        strip_prefix = "lock_api-0.4.6",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.lock_api-0.4.6.bazel"),
+        urls = ["https://crates.io/api/v1/crates/lock_api/0.4.7/download"],
+        strip_prefix = "lock_api-0.4.7",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.lock_api-0.4.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__log-0.4.14",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
+        name = "crates_vendor_manifests__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/log/0.4.14/download"],
-        strip_prefix = "log-0.4.14",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.log-0.4.14.bazel"),
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.log-0.4.17.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__memchr-2.4.1",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
+        name = "crates_vendor_manifests__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memchr/2.4.1/download"],
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.memchr-2.4.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.memchr-2.5.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__mio-0.8.0",
-        sha256 = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2",
+        name = "crates_vendor_manifests__mio-0.8.4",
+        sha256 = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/mio/0.8.0/download"],
-        strip_prefix = "mio-0.8.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.mio-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "crates_vendor_manifests__miow-0.3.7",
-        sha256 = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/miow/0.3.7/download"],
-        strip_prefix = "miow-0.3.7",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.miow-0.3.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "crates_vendor_manifests__ntapi-0.3.7",
-        sha256 = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ntapi/0.3.7/download"],
-        strip_prefix = "ntapi-0.3.7",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.ntapi-0.3.7.bazel"),
+        urls = ["https://crates.io/api/v1/crates/mio/0.8.4/download"],
+        strip_prefix = "mio-0.8.4",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.mio-0.8.4.bazel"),
     )
 
     maybe(
@@ -553,72 +548,72 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__once_cell-1.9.0",
-        sha256 = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5",
+        name = "crates_vendor_manifests__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/once_cell/1.9.0/download"],
-        strip_prefix = "once_cell-1.9.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.once_cell-1.9.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.once_cell-1.13.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__parking_lot-0.12.0",
-        sha256 = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58",
+        name = "crates_vendor_manifests__parking_lot-0.12.1",
+        sha256 = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/parking_lot/0.12.0/download"],
-        strip_prefix = "parking_lot-0.12.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.parking_lot-0.12.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/parking_lot/0.12.1/download"],
+        strip_prefix = "parking_lot-0.12.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.parking_lot-0.12.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__parking_lot_core-0.9.1",
-        sha256 = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954",
+        name = "crates_vendor_manifests__parking_lot_core-0.9.3",
+        sha256 = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/parking_lot_core/0.9.1/download"],
-        strip_prefix = "parking_lot_core-0.9.1",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.parking_lot_core-0.9.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/parking_lot_core/0.9.3/download"],
+        strip_prefix = "parking_lot_core-0.9.3",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.parking_lot_core-0.9.3.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__pin-project-lite-0.2.8",
-        sha256 = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c",
+        name = "crates_vendor_manifests__pin-project-lite-0.2.9",
+        sha256 = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download"],
-        strip_prefix = "pin-project-lite-0.2.8",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.pin-project-lite-0.2.8.bazel"),
+        urls = ["https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download"],
+        strip_prefix = "pin-project-lite-0.2.9",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.pin-project-lite-0.2.9.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__proc-macro2-1.0.36",
-        sha256 = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029",
+        name = "crates_vendor_manifests__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.36/download"],
-        strip_prefix = "proc-macro2-1.0.36",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.proc-macro2-1.0.36.bazel"),
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.proc-macro2-1.0.40.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__quote-1.0.15",
-        sha256 = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145",
+        name = "crates_vendor_manifests__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/quote/1.0.15/download"],
-        strip_prefix = "quote-1.0.15",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.quote-1.0.15.bazel"),
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.quote-1.0.20.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__redox_syscall-0.2.11",
-        sha256 = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c",
+        name = "crates_vendor_manifests__redox_syscall-0.2.13",
+        sha256 = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.11/download"],
-        strip_prefix = "redox_syscall-0.2.11",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.redox_syscall-0.2.11.bazel"),
+        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.13/download"],
+        strip_prefix = "redox_syscall-0.2.13",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.redox_syscall-0.2.13.bazel"),
     )
 
     maybe(
@@ -653,12 +648,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__smallvec-1.8.0",
-        sha256 = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83",
+        name = "crates_vendor_manifests__smallvec-1.9.0",
+        sha256 = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smallvec/1.8.0/download"],
-        strip_prefix = "smallvec-1.8.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.smallvec-1.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/smallvec/1.9.0/download"],
+        strip_prefix = "smallvec-1.9.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.smallvec-1.9.0.bazel"),
     )
 
     maybe(
@@ -673,12 +668,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__syn-1.0.86",
-        sha256 = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b",
+        name = "crates_vendor_manifests__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/1.0.86/download"],
-        strip_prefix = "syn-1.0.86",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.syn-1.0.86.bazel"),
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.syn-1.0.98.bazel"),
     )
 
     maybe(
@@ -693,32 +688,32 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__tokio-1.17.0",
-        sha256 = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee",
+        name = "crates_vendor_manifests__tokio-1.20.0",
+        sha256 = "57aec3cfa4c296db7255446efb4928a6be304b431a806216105542a67b6ca82e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio/1.17.0/download"],
-        strip_prefix = "tokio-1.17.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-1.17.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tokio/1.20.0/download"],
+        strip_prefix = "tokio-1.20.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-1.20.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__tokio-macros-1.7.0",
-        sha256 = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7",
+        name = "crates_vendor_manifests__tokio-macros-1.8.0",
+        sha256 = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio-macros/1.7.0/download"],
-        strip_prefix = "tokio-macros-1.7.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-macros-1.7.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tokio-macros/1.8.0/download"],
+        strip_prefix = "tokio-macros-1.8.0",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-macros-1.8.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__tokio-stream-0.1.8",
-        sha256 = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3",
+        name = "crates_vendor_manifests__tokio-stream-0.1.9",
+        sha256 = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio-stream/0.1.8/download"],
-        strip_prefix = "tokio-stream-0.1.8",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-stream-0.1.8.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tokio-stream/0.1.9/download"],
+        strip_prefix = "tokio-stream-0.1.9",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.tokio-stream-0.1.9.bazel"),
     )
 
     maybe(
@@ -733,12 +728,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__unicode-xid-0.2.2",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
+        name = "crates_vendor_manifests__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-xid/0.2.2/download"],
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.unicode-xid-0.2.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.unicode-ident-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "crates_vendor_manifests__wasi-0.11.0-wasi-snapshot-preview1",
+        sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
     )
 
     maybe(
@@ -773,60 +778,60 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows-sys-0.32.0",
-        sha256 = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6",
+        name = "crates_vendor_manifests__windows-sys-0.36.1",
+        sha256 = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows-sys/0.32.0/download"],
-        strip_prefix = "windows-sys-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows-sys-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows-sys/0.36.1/download"],
+        strip_prefix = "windows-sys-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows-sys-0.36.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows_aarch64_msvc-0.32.0",
-        sha256 = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5",
+        name = "crates_vendor_manifests__windows_aarch64_msvc-0.36.1",
+        sha256 = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_aarch64_msvc/0.32.0/download"],
-        strip_prefix = "windows_aarch64_msvc-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_aarch64_msvc-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows_aarch64_msvc/0.36.1/download"],
+        strip_prefix = "windows_aarch64_msvc-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_aarch64_msvc-0.36.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows_i686_gnu-0.32.0",
-        sha256 = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615",
+        name = "crates_vendor_manifests__windows_i686_gnu-0.36.1",
+        sha256 = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_gnu/0.32.0/download"],
-        strip_prefix = "windows_i686_gnu-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_i686_gnu-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows_i686_gnu/0.36.1/download"],
+        strip_prefix = "windows_i686_gnu-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_i686_gnu-0.36.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows_i686_msvc-0.32.0",
-        sha256 = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172",
+        name = "crates_vendor_manifests__windows_i686_msvc-0.36.1",
+        sha256 = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_i686_msvc/0.32.0/download"],
-        strip_prefix = "windows_i686_msvc-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_i686_msvc-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows_i686_msvc/0.36.1/download"],
+        strip_prefix = "windows_i686_msvc-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_i686_msvc-0.36.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows_x86_64_gnu-0.32.0",
-        sha256 = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc",
+        name = "crates_vendor_manifests__windows_x86_64_gnu-0.36.1",
+        sha256 = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnu/0.32.0/download"],
-        strip_prefix = "windows_x86_64_gnu-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_x86_64_gnu-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnu/0.36.1/download"],
+        strip_prefix = "windows_x86_64_gnu-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_x86_64_gnu-0.36.1.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_manifests__windows_x86_64_msvc-0.32.0",
-        sha256 = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316",
+        name = "crates_vendor_manifests__windows_x86_64_msvc-0.36.1",
+        sha256 = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/windows_x86_64_msvc/0.32.0/download"],
-        strip_prefix = "windows_x86_64_msvc-0.32.0",
-        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_x86_64_msvc-0.32.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/windows_x86_64_msvc/0.36.1/download"],
+        strip_prefix = "windows_x86_64_msvc-0.36.1",
+        build_file = Label("@examples//vendor_remote_manifests/crates:BUILD.windows_x86_64_msvc-0.36.1.bazel"),
     )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ansi_term-0.12.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ansi_term-0.12.1.bazel
index 3e1dbce..68a4670 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ansi_term-0.12.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ansi_term-0.12.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.52.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.52.bazel
deleted file mode 100644
index b58cec9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.52.bazel
+++ /dev/null
@@ -1,174 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_proc_macro(
-    name = "async_trait",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.52",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__async-trait-0.1.52//:build_script_build",
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_pkgs__quote-1.0.15//:quote",
-            "@crates_vendor_pkgs__syn-1.0.86//:syn",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "async-trait_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.1.52",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "async-trait_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.56.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.56.bazel
new file mode 100644
index 0000000..3598f0c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.async-trait-0.1.56.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "async_trait",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.56",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__async-trait-0.1.56//:build_script_build",
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:quote",
+            "@crates_vendor_pkgs__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "async-trait_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.56",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "async-trait_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.autocfg-1.1.0.bazel
index bd2fcd9..7c30696 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.autocfg-1.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.autocfg-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-0.4.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-0.4.8.bazel
index 5becb06..fe42fc5 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-0.4.8.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-0.4.8.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,10 +37,18 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob([
-        "**",
-        "**/*.md",
-    ]) + select_with_or({
+    compile_data = glob(
+        include = [
+            "**",
+            "**/*.md",
+        ],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -59,7 +68,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__async-trait-0.1.52//:async_trait",
+            "@crates_vendor_pkgs__async-trait-0.1.56//:async_trait",
         ],
     }),
     rustc_env = {
@@ -74,10 +83,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,25 +96,25 @@
         "//conditions:default": [
             "@crates_vendor_pkgs__axum-core-0.1.2//:axum_core",
             "@crates_vendor_pkgs__bitflags-1.3.2//:bitflags",
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
             "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__http-body-0.4.4//:http_body",
-            "@crates_vendor_pkgs__hyper-0.14.17//:hyper",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__http-body-0.4.5//:http_body",
+            "@crates_vendor_pkgs__hyper-0.14.20//:hyper",
             "@crates_vendor_pkgs__matchit-0.4.6//:matchit",
-            "@crates_vendor_pkgs__memchr-2.4.1//:memchr",
+            "@crates_vendor_pkgs__memchr-2.5.0//:memchr",
             "@crates_vendor_pkgs__mime-0.3.16//:mime",
             "@crates_vendor_pkgs__percent-encoding-2.1.0//:percent_encoding",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__serde-1.0.136//:serde",
-            "@crates_vendor_pkgs__serde_json-1.0.79//:serde_json",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__serde-1.0.140//:serde",
+            "@crates_vendor_pkgs__serde_json-1.0.82//:serde_json",
             "@crates_vendor_pkgs__serde_urlencoded-0.7.1//:serde_urlencoded",
             "@crates_vendor_pkgs__sync_wrapper-0.1.1//:sync_wrapper",
             "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-            "@crates_vendor_pkgs__tower-0.4.12//:tower",
-            "@crates_vendor_pkgs__tower-http-0.2.3//:tower_http",
+            "@crates_vendor_pkgs__tower-0.4.13//:tower",
+            "@crates_vendor_pkgs__tower-http-0.2.5//:tower_http",
             "@crates_vendor_pkgs__tower-layer-0.3.1//:tower_layer",
-            "@crates_vendor_pkgs__tower-service-0.3.1//:tower_service",
+            "@crates_vendor_pkgs__tower-service-0.3.2//:tower_service",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-core-0.1.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-core-0.1.2.bazel
index 60eff32..41da823 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-core-0.1.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.axum-core-0.1.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -51,7 +60,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__async-trait-0.1.52//:async_trait",
+            "@crates_vendor_pkgs__async-trait-0.1.56//:async_trait",
         ],
     }),
     rustc_env = {
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,10 +86,10 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
             "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__http-body-0.4.4//:http_body",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__http-body-0.4.5//:http_body",
             "@crates_vendor_pkgs__mime-0.3.16//:mime",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bazel
index 8c3bd31..fe47f17 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 package(default_visibility = ["//visibility:public"])
@@ -34,7 +35,7 @@
 
 alias(
     name = "hyper",
-    actual = "@crates_vendor_pkgs__hyper-0.14.17//:hyper",
+    actual = "@crates_vendor_pkgs__hyper-0.14.20//:hyper",
     tags = ["manual"],
 )
 
@@ -46,7 +47,7 @@
 
 alias(
     name = "serde_json",
-    actual = "@crates_vendor_pkgs__serde_json-1.0.79//:serde_json",
+    actual = "@crates_vendor_pkgs__serde_json-1.0.82//:serde_json",
     tags = ["manual"],
 )
 
@@ -58,25 +59,25 @@
 
 alias(
     name = "tower",
-    actual = "@crates_vendor_pkgs__tower-0.4.12//:tower",
+    actual = "@crates_vendor_pkgs__tower-0.4.13//:tower",
     tags = ["manual"],
 )
 
 alias(
     name = "tower-http",
-    actual = "@crates_vendor_pkgs__tower-http-0.2.3//:tower_http",
+    actual = "@crates_vendor_pkgs__tower-http-0.2.5//:tower_http",
     tags = ["manual"],
 )
 
 alias(
     name = "tracing",
-    actual = "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
+    actual = "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
     tags = ["manual"],
 )
 
 alias(
     name = "tracing-subscriber",
-    actual = "@crates_vendor_pkgs__tracing-subscriber-0.3.9//:tracing_subscriber",
+    actual = "@crates_vendor_pkgs__tracing-subscriber-0.3.15//:tracing_subscriber",
     tags = ["manual"],
 )
 
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bitflags-1.3.2.bazel
index 6894746..795ab83 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bitflags-1.3.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bitflags-1.3.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.1.0.bazel
deleted file mode 100644
index b679f2e..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.1.0.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "bytes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.1.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.2.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.2.0.bazel
new file mode 100644
index 0000000..d6372fc
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.bytes-1.2.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.cfg-if-1.0.0.bazel
index e4aab64..7e3c294 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.cfg-if-1.0.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.cfg-if-1.0.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.fnv-1.0.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.fnv-1.0.7.bazel
index 9b3c6e3..f95cc0a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.fnv-1.0.7.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.fnv-1.0.7.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -67,10 +76,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.form_urlencoded-1.0.1.bazel
index bd48fd1..b356338 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.form_urlencoded-1.0.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.form_urlencoded-1.0.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-channel-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-channel-0.3.21.bazel
index 2b9d729..7a338f1 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-channel-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-channel-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -141,10 +147,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-core-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-core-0.3.21.bazel
index 8d8e0cf..1e65a5b 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-core-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-core-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -72,10 +81,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-sink-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-sink-0.3.21.bazel
index cbdd96f..f547b5a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-sink-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-sink-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -68,10 +77,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-task-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-task-0.3.21.bazel
index 0c6da9d..99e2866 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-task-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-task-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -136,10 +142,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-util-0.3.21.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-util-0.3.21.bazel
index 0645b60..03462e4 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-util-0.3.21.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.futures-util-0.3.21.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -70,10 +79,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,7 +93,7 @@
             "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
             "@crates_vendor_pkgs__futures-task-0.3.21//:futures_task",
             "@crates_vendor_pkgs__futures-util-0.3.21//:build_script_build",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
             "@crates_vendor_pkgs__pin-utils-0.1.0//:pin_utils",
         ],
     }),
@@ -140,10 +146,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.11.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.11.bazel
deleted file mode 100644
index 0e2689d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.11.bazel
+++ /dev/null
@@ -1,95 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "h2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__fnv-1.0.7//:fnv",
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-sink-0.3.21//:futures_sink",
-            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__indexmap-1.8.0//:indexmap",
-            "@crates_vendor_pkgs__slab-0.4.5//:slab",
-            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-            "@crates_vendor_pkgs__tokio-util-0.6.9//:tokio_util",
-            "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.13.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.13.bazel
new file mode 100644
index 0000000..a1bbb4e
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.h2-0.3.13.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "h2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__fnv-1.0.7//:fnv",
+            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_pkgs__futures-sink-0.3.21//:futures_sink",
+            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__indexmap-1.9.1//:indexmap",
+            "@crates_vendor_pkgs__slab-0.4.7//:slab",
+            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
+            "@crates_vendor_pkgs__tokio-util-0.7.2//:tokio_util",
+            "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.11.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.11.2.bazel
deleted file mode 100644
index 54a071b..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.11.2.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "hashbrown",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "raw",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.11.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.12.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.12.3.bazel
new file mode 100644
index 0000000..c40844a
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hashbrown-0.12.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hermit-abi-0.1.19.bazel
index c59daf3..2f1f330 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hermit-abi-0.1.19.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,7 +86,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.6.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.6.bazel
deleted file mode 100644
index e72665d..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.6.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "http",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__fnv-1.0.7//:fnv",
-            "@crates_vendor_pkgs__itoa-1.0.1//:itoa",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.8.bazel
new file mode 100644
index 0000000..997fc34
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-0.2.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "http",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__fnv-1.0.7//:fnv",
+            "@crates_vendor_pkgs__itoa-1.0.2//:itoa",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.4.bazel
deleted file mode 100644
index d85585b..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.4.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "http_body",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.4",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.5.bazel
new file mode 100644
index 0000000..15331a1
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-body-0.4.5.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "http_body",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-range-header-0.3.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-range-header-0.3.0.bazel
index c2d71d8..b688f4f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-range-header-0.3.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.http-range-header-0.3.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.6.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.6.0.bazel
deleted file mode 100644
index c28f5d5..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.6.0.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "httparse",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.6.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__httparse-1.6.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "httparse_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.6.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "httparse_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.7.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.7.1.bazel
new file mode 100644
index 0000000..ca4134f
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httparse-1.7.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "httparse",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__httparse-1.7.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "httparse_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.7.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "httparse_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httpdate-1.0.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httpdate-1.0.2.bazel
index 16d4a28..ce4aa55 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httpdate-1.0.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.httpdate-1.0.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.17.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.17.bazel
deleted file mode 100644
index ee4bdb4..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.17.bazel
+++ /dev/null
@@ -1,111 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "hyper",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "client",
-        "default",
-        "full",
-        "h2",
-        "http1",
-        "http2",
-        "runtime",
-        "server",
-        "socket2",
-        "stream",
-        "tcp",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.14.17",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__futures-channel-0.3.21//:futures_channel",
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__h2-0.3.11//:h2",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__http-body-0.4.4//:http_body",
-            "@crates_vendor_pkgs__httparse-1.6.0//:httparse",
-            "@crates_vendor_pkgs__httpdate-1.0.2//:httpdate",
-            "@crates_vendor_pkgs__itoa-1.0.1//:itoa",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__socket2-0.4.4//:socket2",
-            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-            "@crates_vendor_pkgs__tower-service-0.3.1//:tower_service",
-            "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
-            "@crates_vendor_pkgs__want-0.3.0//:want",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.20.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.20.bazel
new file mode 100644
index 0000000..e3dcfa9
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.hyper-0.14.20.bazel
@@ -0,0 +1,117 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "hyper",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "client",
+        "default",
+        "full",
+        "h2",
+        "http1",
+        "http2",
+        "runtime",
+        "server",
+        "socket2",
+        "stream",
+        "tcp",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.14.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__futures-channel-0.3.21//:futures_channel",
+            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
+            "@crates_vendor_pkgs__h2-0.3.13//:h2",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__http-body-0.4.5//:http_body",
+            "@crates_vendor_pkgs__httparse-1.7.1//:httparse",
+            "@crates_vendor_pkgs__httpdate-1.0.2//:httpdate",
+            "@crates_vendor_pkgs__itoa-1.0.2//:itoa",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__socket2-0.4.4//:socket2",
+            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
+            "@crates_vendor_pkgs__tower-service-0.3.2//:tower_service",
+            "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+            "@crates_vendor_pkgs__want-0.3.0//:want",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.8.0.bazel
deleted file mode 100644
index 6989baf..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.8.0.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "indexmap",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__hashbrown-0.11.2//:hashbrown",
-            "@crates_vendor_pkgs__indexmap-1.8.0//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "indexmap_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.8.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__autocfg-1.1.0//:autocfg",
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "indexmap_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.9.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..592d2a8
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__hashbrown-0.12.3//:hashbrown",
+            "@crates_vendor_pkgs__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.instant-0.1.12.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.instant-0.1.12.bazel
index 024232d..60649d1 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.instant-0.1.12.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.instant-0.1.12.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.1.bazel
deleted file mode 100644
index 69bfcf9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.1.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "itoa",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.2.bazel
new file mode 100644
index 0000000..1c042ef
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.itoa-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lazy_static-1.4.0.bazel
index aabde66..6abb739 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lazy_static-1.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lazy_static-1.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.119.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.119.bazel
deleted file mode 100644
index 139c214..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.119.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "libc",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.119",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__libc-0.2.119//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "libc_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.2.119",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "libc_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..2de4a43
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.6.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.6.bazel
deleted file mode 100644
index 3c36221..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.6.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0/MIT
-# ])
-
-rust_library(
-    name = "lock_api",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.6",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__scopeguard-1.1.0//:scopeguard",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.7.bazel
new file mode 100644
index 0000000..f80bfdc
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.lock_api-0.4.7.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__lock_api-0.4.7//:build_script_build",
+            "@crates_vendor_pkgs__scopeguard-1.1.0//:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "lock_api_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "lock_api_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.14.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.14.bazel
deleted file mode 100644
index e63b9d0..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,174 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.14",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_pkgs__log-0.4.14//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "log_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "log_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..a9435e4
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_pkgs__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matches-0.1.9.bazel
index b2ec92b..c61088d 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matches-0.1.9.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matches-0.1.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matchit-0.4.6.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matchit-0.4.6.bazel
index dd3406b..2a24ebd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matchit-0.4.6.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.matchit-0.4.6.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index c1d16f6..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Unlicense/MIT
-# ])
-
-rust_library(
-    name = "memchr",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "2.4.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__memchr-2.4.1//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "memchr_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "memchr_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..fbb573d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mime-0.3.16.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mime-0.3.16.bazel
index d7f8128..0c421cd 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mime-0.3.16.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mime-0.3.16.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mio-0.7.14.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mio-0.7.14.bazel
index f439769..720ecad 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mio-0.7.14.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.mio-0.7.14.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -73,10 +82,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -90,9 +96,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -107,10 +115,10 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
 
             # Common Deps
-            "@crates_vendor_pkgs__log-0.4.14//:log",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
         ],
         # cfg(windows)
         (
@@ -123,10 +131,10 @@
             "@crates_vendor_pkgs__winapi-0.3.9//:winapi",
 
             # Common Deps
-            "@crates_vendor_pkgs__log-0.4.14//:log",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
         ],
         "//conditions:default": [
-            "@crates_vendor_pkgs__log-0.4.14//:log",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.miow-0.3.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.miow-0.3.7.bazel
index 3934129..b615e3c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.miow-0.3.7.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.miow-0.3.7.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ntapi-0.3.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ntapi-0.3.7.bazel
index 533a620..8d41087 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ntapi-0.3.7.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ntapi-0.3.7.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -139,10 +145,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.num_cpus-1.13.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.num_cpus-1.13.1.bazel
index 95eca12..28bb82a 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.num_cpus-1.13.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.num_cpus-1.13.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -87,15 +93,18 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
             "@rules_rust//rust/platform:i686-unknown-freebsd",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
             "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
@@ -106,7 +115,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..6b76c12
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.9.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.9.0.bazel
deleted file mode 100644
index f2a936a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.once_cell-1.9.0.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "once_cell",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "default",
-        "race",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.9.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot-0.11.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot-0.11.2.bazel
index f630b0e..1b83d77 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot-0.11.2.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot-0.11.2.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -66,10 +75,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -81,7 +87,7 @@
     ] + select_with_or({
         "//conditions:default": [
             "@crates_vendor_pkgs__instant-0.1.12//:instant",
-            "@crates_vendor_pkgs__lock_api-0.4.6//:lock_api",
+            "@crates_vendor_pkgs__lock_api-0.4.7//:lock_api",
             "@crates_vendor_pkgs__parking_lot_core-0.8.5//:parking_lot_core",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot_core-0.8.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot_core-0.8.5.bazel
index 2f0ece6..b19b5d1 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot_core-0.8.5.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.parking_lot_core-0.8.5.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -85,15 +91,17 @@
         # cfg(target_os = "redox")
         #
         # No supported platform triples for cfg: 'cfg(target_os = "redox")'
-        # Skipped dependencies: [{"id":"redox_syscall 0.2.11","target":"syscall"}]
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
         #
         # cfg(unix)
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -108,13 +116,13 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
 
             # Common Deps
             "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
             "@crates_vendor_pkgs__instant-0.1.12//:instant",
             "@crates_vendor_pkgs__parking_lot_core-0.8.5//:build_script_build",
-            "@crates_vendor_pkgs__smallvec-1.8.0//:smallvec",
+            "@crates_vendor_pkgs__smallvec-1.9.0//:smallvec",
         ],
         # cfg(windows)
         (
@@ -128,13 +136,13 @@
             "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
             "@crates_vendor_pkgs__instant-0.1.12//:instant",
             "@crates_vendor_pkgs__parking_lot_core-0.8.5//:build_script_build",
-            "@crates_vendor_pkgs__smallvec-1.8.0//:smallvec",
+            "@crates_vendor_pkgs__smallvec-1.9.0//:smallvec",
         ],
         "//conditions:default": [
             "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
             "@crates_vendor_pkgs__instant-0.1.12//:instant",
             "@crates_vendor_pkgs__parking_lot_core-0.8.5//:build_script_build",
-            "@crates_vendor_pkgs__smallvec-1.8.0//:smallvec",
+            "@crates_vendor_pkgs__smallvec-1.9.0//:smallvec",
         ],
     }),
 )
@@ -185,10 +193,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.percent-encoding-2.1.0.bazel
index 1ad467a..396cb48 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.percent-encoding-2.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.percent-encoding-2.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.10.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.10.bazel
deleted file mode 100644
index dace729..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.10.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__pin-project-internal-1.0.10//:pin_project_internal",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.10",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.11.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.11.bazel
new file mode 100644
index 0000000..4548f7c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-1.0.11.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__pin-project-internal-1.0.11//:pin_project_internal",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.11",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.10.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.10.bazel
deleted file mode 100644
index be8b0c9..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.10.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_proc_macro(
-    name = "pin_project_internal",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.10",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_pkgs__quote-1.0.15//:quote",
-            "@crates_vendor_pkgs__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.11.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.11.bazel
new file mode 100644
index 0000000..31d06ff
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-internal-1.0.11.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_proc_macro(
+    name = "pin_project_internal",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.11",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:quote",
+            "@crates_vendor_pkgs__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.8.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.8.bazel
deleted file mode 100644
index cfd3870..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.8.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR MIT
-# ])
-
-rust_library(
-    name = "pin_project_lite",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.8",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.9.bazel
new file mode 100644
index 0000000..99db166
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-project-lite-0.2.9.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "pin_project_lite",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-utils-0.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-utils-0.1.0.bazel
index de4c1a2..29329ce 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-utils-0.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.pin-utils-0.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.36.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.36.bazel
deleted file mode 100644
index 6318a86..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.36.bazel
+++ /dev/null
@@ -1,176 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.36",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:build_script_build",
-            "@crates_vendor_pkgs__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "proc-macro2_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.36",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "proc-macro2_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..59b3e6d
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:build_script_build",
+            "@crates_vendor_pkgs__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.15.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.15.bazel
deleted file mode 100644
index bad70cc..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.15.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "quote",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.15",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..c0ee8c7
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.11.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.11.bazel
deleted file mode 100644
index f001325..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.11.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "syscall",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.11",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bitflags-1.3.2//:bitflags",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.13.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.13.bazel
new file mode 100644
index 0000000..2a3af83
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.redox_syscall-0.2.13.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bitflags-1.3.2//:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.10.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.10.bazel
new file mode 100644
index 0000000..8963fe2
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.9.bazel
deleted file mode 100644
index c2a9c81..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.ryu-1.0.9.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # Apache-2.0 OR BSL-1.0
-# ])
-
-rust_library(
-    name = "ryu",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.scopeguard-1.1.0.bazel
index 0bc1e13..521cf9c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.scopeguard-1.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.scopeguard-1.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.136.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.136.bazel
deleted file mode 100644
index b2b5369..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.136.bazel
+++ /dev/null
@@ -1,175 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.136",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__serde-1.0.136//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.136",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.140.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.140.bazel
new file mode 100644
index 0000000..7be7179
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde-1.0.140.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.140",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__serde-1.0.140//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.140",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.79.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.79.bazel
deleted file mode 100644
index e827016..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.79.bazel
+++ /dev/null
@@ -1,180 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "raw_value",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.79",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__itoa-1.0.1//:itoa",
-            "@crates_vendor_pkgs__ryu-1.0.9//:ryu",
-            "@crates_vendor_pkgs__serde-1.0.136//:serde",
-            "@crates_vendor_pkgs__serde_json-1.0.79//:build_script_build",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "serde_json_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "raw_value",
-        "std",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.79",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "serde_json_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.82.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.82.bazel
new file mode 100644
index 0000000..27af144
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_json-1.0.82.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "raw_value",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__itoa-1.0.2//:itoa",
+            "@crates_vendor_pkgs__ryu-1.0.10//:ryu",
+            "@crates_vendor_pkgs__serde-1.0.140//:serde",
+            "@crates_vendor_pkgs__serde_json-1.0.82//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "raw_value",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_urlencoded-0.7.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_urlencoded-0.7.1.bazel
index a0618b4..3409249 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_urlencoded-0.7.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.serde_urlencoded-0.7.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -80,9 +86,9 @@
     ] + select_with_or({
         "//conditions:default": [
             "@crates_vendor_pkgs__form_urlencoded-1.0.1//:form_urlencoded",
-            "@crates_vendor_pkgs__itoa-1.0.1//:itoa",
-            "@crates_vendor_pkgs__ryu-1.0.9//:ryu",
-            "@crates_vendor_pkgs__serde-1.0.136//:serde",
+            "@crates_vendor_pkgs__itoa-1.0.2//:itoa",
+            "@crates_vendor_pkgs__ryu-1.0.10//:ryu",
+            "@crates_vendor_pkgs__serde-1.0.140//:serde",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sharded-slab-0.1.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sharded-slab-0.1.4.bazel
index cfcc376..a9ae32f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sharded-slab-0.1.4.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sharded-slab-0.1.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.signal-hook-registry-1.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.signal-hook-registry-1.4.0.bazel
index 1bfc0da..6f7ae8e 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.signal-hook-registry-1.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.signal-hook-registry-1.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.5.bazel
deleted file mode 100644
index d4303ef..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.5.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "slab",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.5",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.7.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.7.bazel
new file mode 100644
index 0000000..24d1160
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.slab-0.4.7.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "slab",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__slab-0.4.7//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "slab_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "slab_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.8.0.bazel
deleted file mode 100644
index a9ae389..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.8.0.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT/Apache-2.0
-# ])
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.8.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.9.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.9.0.bazel
new file mode 100644
index 0000000..acb3495
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.smallvec-1.9.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.socket2-0.4.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.socket2-0.4.4.bazel
index f9ccd49..bb6c436 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.socket2-0.4.4.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.socket2-0.4.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -82,9 +88,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -99,7 +107,7 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
 
             # Common Deps
         ],
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.86.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.86.bazel
deleted file mode 100644
index 5653b39..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.86.bazel
+++ /dev/null
@@ -1,196 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-load(
-    "@rules_rust//cargo:defs.bzl",
-    "cargo_build_script",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "syn",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-        "visit-mut",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.0.86",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_pkgs__quote-1.0.15//:quote",
-            "@crates_vendor_pkgs__syn-1.0.86//:build_script_build",
-            "@crates_vendor_pkgs__unicode-xid-0.2.2//:unicode_xid",
-        ],
-    }),
-)
-
-cargo_build_script(
-    # See comment associated with alias. Do not change this name
-    name = "syn_build_script",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    build_script_env = {
-    },
-    compile_data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-        "visit-mut",
-    ],
-    crate_name = "build_script_build",
-    crate_root = "build.rs",
-    data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    tools = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    version = "1.0.86",
-    visibility = ["//visibility:private"],
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
-
-alias(
-    # Because `cargo_build_script` does some invisible target name mutating to
-    # determine the package and crate name for a build script, the Bazel
-    # target namename of any build script cannot be the Cargo canonical name
-    # of `build_script_build` without losing out on having certain Cargo
-    # environment variables set.
-    name = "build_script_build",
-    actual = "syn_build_script",
-    tags = [
-        "manual",
-    ],
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..2e292ae
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,199 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+        "visit-mut",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:quote",
+            "@crates_vendor_pkgs__syn-1.0.98//:build_script_build",
+            "@crates_vendor_pkgs__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+        "visit-mut",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sync_wrapper-0.1.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sync_wrapper-0.1.1.bazel
index d3358b4..6ac7c88 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sync_wrapper-0.1.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.sync_wrapper-0.1.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.thread_local-1.1.4.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.thread_local-1.1.4.bazel
index 68b0305..c3d5f5c 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.thread_local-1.1.4.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.thread_local-1.1.4.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__once_cell-1.9.0//:once_cell",
+            "@crates_vendor_pkgs__once_cell-1.13.0//:once_cell",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-1.16.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-1.16.1.bazel
index 35237a9..c4f48c7 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-1.16.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-1.16.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -74,7 +83,7 @@
     proc_macro_deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__tokio-macros-1.7.0//:tokio_macros",
+            "@crates_vendor_pkgs__tokio-macros-1.8.0//:tokio_macros",
         ],
     }),
     rustc_env = {
@@ -89,10 +98,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -106,9 +112,11 @@
         (
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
             "@rules_rust//rust/platform:aarch64-linux-android",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
             "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-linux-android",
@@ -123,17 +131,17 @@
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             # Target Deps
-            "@crates_vendor_pkgs__libc-0.2.119//:libc",
+            "@crates_vendor_pkgs__libc-0.2.126//:libc",
             "@crates_vendor_pkgs__signal-hook-registry-1.4.0//:signal_hook_registry",
 
             # Common Deps
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__memchr-2.4.1//:memchr",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__memchr-2.5.0//:memchr",
             "@crates_vendor_pkgs__mio-0.7.14//:mio",
             "@crates_vendor_pkgs__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_pkgs__once_cell-1.9.0//:once_cell",
+            "@crates_vendor_pkgs__once_cell-1.13.0//:once_cell",
             "@crates_vendor_pkgs__parking_lot-0.11.2//:parking_lot",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
         ],
         # cfg(windows)
         (
@@ -144,22 +152,22 @@
             "@crates_vendor_pkgs__winapi-0.3.9//:winapi",
 
             # Common Deps
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__memchr-2.4.1//:memchr",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__memchr-2.5.0//:memchr",
             "@crates_vendor_pkgs__mio-0.7.14//:mio",
             "@crates_vendor_pkgs__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_pkgs__once_cell-1.9.0//:once_cell",
+            "@crates_vendor_pkgs__once_cell-1.13.0//:once_cell",
             "@crates_vendor_pkgs__parking_lot-0.11.2//:parking_lot",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
         ],
         "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__memchr-2.4.1//:memchr",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__memchr-2.5.0//:memchr",
             "@crates_vendor_pkgs__mio-0.7.14//:mio",
             "@crates_vendor_pkgs__num_cpus-1.13.1//:num_cpus",
-            "@crates_vendor_pkgs__once_cell-1.9.0//:once_cell",
+            "@crates_vendor_pkgs__once_cell-1.13.0//:once_cell",
             "@crates_vendor_pkgs__parking_lot-0.11.2//:parking_lot",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
         ],
     }),
 )
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.7.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.7.0.bazel
deleted file mode 100644
index fee514a..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.7.0.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tokio_macros",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "1.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_pkgs__quote-1.0.15//:quote",
-            "@crates_vendor_pkgs__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.8.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.8.0.bazel
new file mode 100644
index 0000000..7d990ca
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-macros-1.8.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tokio_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:quote",
+            "@crates_vendor_pkgs__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.6.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.6.9.bazel
deleted file mode 100644
index 7d8b271..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.6.9.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_util",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "codec",
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.6.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-sink-0.3.21//:futures_sink",
-            "@crates_vendor_pkgs__log-0.4.14//:log",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.0.bazel
deleted file mode 100644
index 7cb6846..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.0.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tokio_util",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.7.0",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-sink-0.3.21//:futures_sink",
-            "@crates_vendor_pkgs__log-0.4.14//:log",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.2.bazel
new file mode 100644
index 0000000..47d160b
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tokio-util-0.7.2.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "codec",
+        "default",
+        "tracing",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_pkgs__futures-sink-0.3.21//:futures_sink",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
+            "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.12.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.12.bazel
deleted file mode 100644
index 7acabc6..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.12.bazel
+++ /dev/null
@@ -1,106 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "__common",
-        "buffer",
-        "default",
-        "futures-core",
-        "futures-util",
-        "log",
-        "make",
-        "pin-project",
-        "pin-project-lite",
-        "tokio",
-        "tokio-util",
-        "tracing",
-        "util",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.4.12",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__pin-project-1.0.10//:pin_project",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-            "@crates_vendor_pkgs__tokio-util-0.7.0//:tokio_util",
-            "@crates_vendor_pkgs__tower-layer-0.3.1//:tower_layer",
-            "@crates_vendor_pkgs__tower-service-0.3.1//:tower_service",
-            "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.13.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.13.bazel
new file mode 100644
index 0000000..31410cd
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-0.4.13.bazel
@@ -0,0 +1,112 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "__common",
+        "buffer",
+        "default",
+        "futures-core",
+        "futures-util",
+        "log",
+        "make",
+        "pin-project",
+        "pin-project-lite",
+        "tokio",
+        "tokio-util",
+        "tracing",
+        "util",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
+            "@crates_vendor_pkgs__pin-project-1.0.11//:pin_project",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
+            "@crates_vendor_pkgs__tokio-util-0.7.2//:tokio_util",
+            "@crates_vendor_pkgs__tower-layer-0.3.1//:tower_layer",
+            "@crates_vendor_pkgs__tower-service-0.3.2//:tower_service",
+            "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.3.bazel
deleted file mode 100644
index fed12a5..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.3.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower_http",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "map-response-body",
-        "tower",
-        "trace",
-        "tracing",
-        "util",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.3",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__bitflags-1.3.2//:bitflags",
-            "@crates_vendor_pkgs__bytes-1.1.0//:bytes",
-            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
-            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
-            "@crates_vendor_pkgs__http-0.2.6//:http",
-            "@crates_vendor_pkgs__http-body-0.4.4//:http_body",
-            "@crates_vendor_pkgs__http-range-header-0.3.0//:http_range_header",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__tower-0.4.12//:tower",
-            "@crates_vendor_pkgs__tower-layer-0.3.1//:tower_layer",
-            "@crates_vendor_pkgs__tower-service-0.3.1//:tower_service",
-            "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.5.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.5.bazel
new file mode 100644
index 0000000..59153cb
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-http-0.2.5.bazel
@@ -0,0 +1,108 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower_http",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "map-response-body",
+        "tower",
+        "trace",
+        "tracing",
+        "util",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__bitflags-1.3.2//:bitflags",
+            "@crates_vendor_pkgs__bytes-1.2.0//:bytes",
+            "@crates_vendor_pkgs__futures-core-0.3.21//:futures_core",
+            "@crates_vendor_pkgs__futures-util-0.3.21//:futures_util",
+            "@crates_vendor_pkgs__http-0.2.8//:http",
+            "@crates_vendor_pkgs__http-body-0.4.5//:http_body",
+            "@crates_vendor_pkgs__http-range-header-0.3.0//:http_range_header",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__tower-0.4.13//:tower",
+            "@crates_vendor_pkgs__tower-layer-0.3.1//:tower_layer",
+            "@crates_vendor_pkgs__tower-service-0.3.2//:tower_service",
+            "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-layer-0.3.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-layer-0.3.1.bazel
index 9e48ea0..e88fe62 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-layer-0.3.1.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-layer-0.3.1.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.1.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.1.bazel
deleted file mode 100644
index 317d496..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.1.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tower_service",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.1",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.2.bazel
new file mode 100644
index 0000000..b72fb38
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tower-service-0.3.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tower_service",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.31.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.31.bazel
deleted file mode 100644
index 4b7cbd3..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.31.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "attributes",
-        "default",
-        "log",
-        "std",
-        "tracing-attributes",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__tracing-attributes-0.1.19//:tracing_attributes",
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.31",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
-            "@crates_vendor_pkgs__log-0.4.14//:log",
-            "@crates_vendor_pkgs__pin-project-lite-0.2.8//:pin_project_lite",
-            "@crates_vendor_pkgs__tracing-core-0.1.22//:tracing_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.35.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.35.bazel
new file mode 100644
index 0000000..fb9bbfb
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-0.1.35.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "attributes",
+        "default",
+        "log",
+        "std",
+        "tracing-attributes",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__tracing-attributes-0.1.22//:tracing_attributes",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.35",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__cfg-if-1.0.0//:cfg_if",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
+            "@crates_vendor_pkgs__pin-project-lite-0.2.9//:pin_project_lite",
+            "@crates_vendor_pkgs__tracing-core-0.1.28//:tracing_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.19.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.19.bazel
deleted file mode 100644
index fe555bb..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.19.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_proc_macro",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_proc_macro(
-    name = "tracing_attributes",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.19",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__proc-macro2-1.0.36//:proc_macro2",
-            "@crates_vendor_pkgs__quote-1.0.15//:quote",
-            "@crates_vendor_pkgs__syn-1.0.86//:syn",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.22.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.22.bazel
new file mode 100644
index 0000000..03eabcd
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-attributes-0.1.22.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_proc_macro(
+    name = "tracing_attributes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__proc-macro2-1.0.40//:proc_macro2",
+            "@crates_vendor_pkgs__quote-1.0.20//:quote",
+            "@crates_vendor_pkgs__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.22.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.22.bazel
deleted file mode 100644
index 8dd06ff..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.22.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_core",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-        "valuable",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.22",
-    deps = [
-    ] + select_with_or({
-        # cfg(tracing_unstable)
-        #
-        # No supported platform triples for cfg: 'cfg(tracing_unstable)'
-        # Skipped dependencies: [{"id":"valuable 0.1.0","target":"valuable"}]
-        #
-        "//conditions:default": [
-            "@crates_vendor_pkgs__lazy_static-1.4.0//:lazy_static",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.28.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.28.bazel
new file mode 100644
index 0000000..8692724
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-core-0.1.28.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+        "valuable",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.28",
+    deps = [
+    ] + select_with_or({
+        # cfg(tracing_unstable)
+        #
+        # No supported platform triples for cfg: 'cfg(tracing_unstable)'
+        # Skipped dependencies: [{"id":"valuable 0.1.0","target":"valuable"}]
+        #
+        "//conditions:default": [
+            "@crates_vendor_pkgs__once_cell-1.13.0//:once_cell",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.2.bazel
deleted file mode 100644
index a516069..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.2.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_log",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "log-tracer",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.1.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__lazy_static-1.4.0//:lazy_static",
-            "@crates_vendor_pkgs__log-0.4.14//:log",
-            "@crates_vendor_pkgs__tracing-core-0.1.22//:tracing_core",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.3.bazel
new file mode 100644
index 0000000..ecf9023
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-log-0.1.3.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "log-tracer",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__lazy_static-1.4.0//:lazy_static",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
+            "@crates_vendor_pkgs__tracing-core-0.1.28//:tracing_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.15.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.15.bazel
new file mode 100644
index 0000000..9c0f6e6
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.15.bazel
@@ -0,0 +1,107 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tracing_subscriber",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "ansi",
+        "ansi_term",
+        "default",
+        "fmt",
+        "registry",
+        "sharded-slab",
+        "smallvec",
+        "std",
+        "thread_local",
+        "tracing-log",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@crates_vendor_pkgs__ansi_term-0.12.1//:ansi_term",
+            "@crates_vendor_pkgs__sharded-slab-0.1.4//:sharded_slab",
+            "@crates_vendor_pkgs__smallvec-1.9.0//:smallvec",
+            "@crates_vendor_pkgs__thread_local-1.1.4//:thread_local",
+            "@crates_vendor_pkgs__tracing-core-0.1.28//:tracing_core",
+            "@crates_vendor_pkgs__tracing-log-0.1.3//:tracing_log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.9.bazel
deleted file mode 100644
index 6555328..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.tracing-subscriber-0.3.9.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT
-# ])
-
-rust_library(
-    name = "tracing_subscriber",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "alloc",
-        "ansi",
-        "ansi_term",
-        "default",
-        "fmt",
-        "registry",
-        "sharded-slab",
-        "smallvec",
-        "std",
-        "thread_local",
-        "tracing-log",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2018",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.3.9",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-            "@crates_vendor_pkgs__ansi_term-0.12.1//:ansi_term",
-            "@crates_vendor_pkgs__sharded-slab-0.1.4//:sharded_slab",
-            "@crates_vendor_pkgs__smallvec-1.8.0//:smallvec",
-            "@crates_vendor_pkgs__thread_local-1.1.4//:thread_local",
-            "@crates_vendor_pkgs__tracing-core-0.1.22//:tracing_core",
-            "@crates_vendor_pkgs__tracing-log-0.1.2//:tracing_log",
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.try-lock-0.2.3.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.try-lock-0.2.3.bazel
index 10fbaf6..2cc2a5e 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.try-lock-0.2.3.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.try-lock-0.2.3.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-ident-1.0.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..e83d79c
--- /dev/null
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 30562c1..0000000
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-###############################################################################
-# @generated
-# This file is auto-generated by the cargo-bazel tool.
-#
-# DO NOT MODIFY: Local changes may be replaced in future executions.
-###############################################################################
-
-load(
-    "@bazel_skylib//lib:selects.bzl",
-    "selects",
-)
-
-# buildifier: disable=bzl-visibility
-load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_library",
-)
-
-package(default_visibility = ["//visibility:public"])
-
-# licenses([
-#     "TODO",  # MIT OR Apache-2.0
-# ])
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(
-        include = [
-            "**/*.rs",
-        ],
-        exclude = [
-        ],
-    ),
-    aliases = selects.with_or({
-        "//conditions:default": {
-        },
-    }),
-    compile_data = glob(["**"]) + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    edition = "2015",
-    proc_macro_deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_env = {
-    },
-    rustc_env_files = select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    rustc_flags = [
-        # In most cases, warnings in 3rd party crates are not interesting as
-        # they're out of the control of consumers. The flag here silences
-        # warnings. For more details see:
-        # https://doc.rust-lang.org/rustc/lints/levels.html
-        "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-    tags = [
-        "cargo-bazel",
-        "manual",
-        "noclippy",
-        "norustfmt",
-    ],
-    version = "0.2.2",
-    deps = [
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
-)
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.valuable-0.1.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.valuable-0.1.0.bazel
index 9bd0d0b..0612bb2 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.valuable-0.1.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.valuable-0.1.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -71,10 +80,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -138,10 +144,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.want-0.3.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.want-0.3.0.bazel
index d13a311..0886b54 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.want-0.3.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.want-0.3.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -36,7 +37,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -65,10 +74,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -79,7 +85,7 @@
     deps = [
     ] + select_with_or({
         "//conditions:default": [
-            "@crates_vendor_pkgs__log-0.4.14//:log",
+            "@crates_vendor_pkgs__log-0.4.17//:log",
             "@crates_vendor_pkgs__try-lock-0.2.3//:try_lock",
         ],
     }),
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-0.3.9.bazel
index f50047d..7343249 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-0.3.9.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-0.3.9.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -99,10 +108,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -204,10 +210,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
index ec8ffa9..9b00a33 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
index 0ce2e90..9c1e225 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 
 load(
@@ -40,7 +41,15 @@
         "//conditions:default": {
         },
     }),
-    compile_data = glob(["**"]) + select_with_or({
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
         "//conditions:default": [
         ],
     }),
@@ -69,10 +78,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
@@ -134,10 +140,7 @@
         # warnings. For more details see:
         # https://doc.rust-lang.org/rustc/lints/levels.html
         "--cap-lints=allow",
-    ] + select_with_or({
-        "//conditions:default": [
-        ],
-    }),
+    ],
     tags = [
         "cargo-bazel",
         "manual",
diff --git a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/defs.bzl b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/defs.bzl
index ad7dac5..3d2763f 100644
--- a/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/defs.bzl
+++ b/third_party/rules_rust/examples/crate_universe/vendor_remote_pkgs/crates/defs.bzl
@@ -1,8 +1,9 @@
 ###############################################################################
 # @generated
-# This file is auto-generated by the cargo-bazel tool.
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
 #
-# DO NOT MODIFY: Local changes may be replaced in future executions.
+#     bazel run //vendor_remote_pkgs:crates_vendor_pkgs
 ###############################################################################
 """
 # `crates_repository` API
@@ -194,7 +195,10 @@
     dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
 
     if not dependencies:
-        return []
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
 
     crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
     for condition, deps in dependencies.items():
@@ -288,14 +292,14 @@
     "": {
         _COMMON_CONDITION: {
             "axum": "@crates_vendor_pkgs__axum-0.4.8//:axum",
-            "hyper": "@crates_vendor_pkgs__hyper-0.14.17//:hyper",
+            "hyper": "@crates_vendor_pkgs__hyper-0.14.20//:hyper",
             "mime": "@crates_vendor_pkgs__mime-0.3.16//:mime",
-            "serde_json": "@crates_vendor_pkgs__serde_json-1.0.79//:serde_json",
+            "serde_json": "@crates_vendor_pkgs__serde_json-1.0.82//:serde_json",
             "tokio": "@crates_vendor_pkgs__tokio-1.16.1//:tokio",
-            "tower": "@crates_vendor_pkgs__tower-0.4.12//:tower",
-            "tower-http": "@crates_vendor_pkgs__tower-http-0.2.3//:tower_http",
-            "tracing": "@crates_vendor_pkgs__tracing-0.1.31//:tracing",
-            "tracing-subscriber": "@crates_vendor_pkgs__tracing-subscriber-0.3.9//:tracing_subscriber",
+            "tower": "@crates_vendor_pkgs__tower-0.4.13//:tower",
+            "tower-http": "@crates_vendor_pkgs__tower-http-0.2.5//:tower_http",
+            "tracing": "@crates_vendor_pkgs__tracing-0.1.35//:tracing",
+            "tracing-subscriber": "@crates_vendor_pkgs__tracing-subscriber-0.3.15//:tracing_subscriber",
         },
     },
 }
@@ -359,11 +363,11 @@
 
 _CONDITIONS = {
     "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
-    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(target_os = \"redox\")": [],
     "cfg(target_os = \"windows\")": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "cfg(tracing_unstable)": [],
-    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
     "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
     "i686-pc-windows-gnu": [],
     "x86_64-pc-windows-gnu": [],
@@ -385,12 +389,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__async-trait-0.1.52",
-        sha256 = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3",
+        name = "crates_vendor_pkgs__async-trait-0.1.56",
+        sha256 = "96cf8829f67d2eab0b2dfa42c5d0ef737e0724e4a82b01b3e292456202b19716",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/async-trait/0.1.52/download"],
-        strip_prefix = "async-trait-0.1.52",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.async-trait-0.1.52.bazel"),
+        urls = ["https://crates.io/api/v1/crates/async-trait/0.1.56/download"],
+        strip_prefix = "async-trait-0.1.56",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.async-trait-0.1.56.bazel"),
     )
 
     maybe(
@@ -435,12 +439,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__bytes-1.1.0",
-        sha256 = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8",
+        name = "crates_vendor_pkgs__bytes-1.2.0",
+        sha256 = "f0b3de4a0c5e67e16066a0715723abd91edc2f9001d09c46e1dca929351e130e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/bytes/1.1.0/download"],
-        strip_prefix = "bytes-1.1.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.bytes-1.1.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/bytes/1.2.0/download"],
+        strip_prefix = "bytes-1.2.0",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.bytes-1.2.0.bazel"),
     )
 
     maybe(
@@ -525,22 +529,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__h2-0.3.11",
-        sha256 = "d9f1f717ddc7b2ba36df7e871fd88db79326551d3d6f1fc406fbfd28b582ff8e",
+        name = "crates_vendor_pkgs__h2-0.3.13",
+        sha256 = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/h2/0.3.11/download"],
-        strip_prefix = "h2-0.3.11",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.h2-0.3.11.bazel"),
+        urls = ["https://crates.io/api/v1/crates/h2/0.3.13/download"],
+        strip_prefix = "h2-0.3.13",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.h2-0.3.13.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__hashbrown-0.11.2",
-        sha256 = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e",
+        name = "crates_vendor_pkgs__hashbrown-0.12.3",
+        sha256 = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hashbrown/0.11.2/download"],
-        strip_prefix = "hashbrown-0.11.2",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.hashbrown-0.11.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.3/download"],
+        strip_prefix = "hashbrown-0.12.3",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.hashbrown-0.12.3.bazel"),
     )
 
     maybe(
@@ -555,22 +559,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__http-0.2.6",
-        sha256 = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03",
+        name = "crates_vendor_pkgs__http-0.2.8",
+        sha256 = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/http/0.2.6/download"],
-        strip_prefix = "http-0.2.6",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.http-0.2.6.bazel"),
+        urls = ["https://crates.io/api/v1/crates/http/0.2.8/download"],
+        strip_prefix = "http-0.2.8",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.http-0.2.8.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__http-body-0.4.4",
-        sha256 = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6",
+        name = "crates_vendor_pkgs__http-body-0.4.5",
+        sha256 = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/http-body/0.4.4/download"],
-        strip_prefix = "http-body-0.4.4",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.http-body-0.4.4.bazel"),
+        urls = ["https://crates.io/api/v1/crates/http-body/0.4.5/download"],
+        strip_prefix = "http-body-0.4.5",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.http-body-0.4.5.bazel"),
     )
 
     maybe(
@@ -585,12 +589,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__httparse-1.6.0",
-        sha256 = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4",
+        name = "crates_vendor_pkgs__httparse-1.7.1",
+        sha256 = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/httparse/1.6.0/download"],
-        strip_prefix = "httparse-1.6.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.httparse-1.6.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/httparse/1.7.1/download"],
+        strip_prefix = "httparse-1.7.1",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.httparse-1.7.1.bazel"),
     )
 
     maybe(
@@ -605,22 +609,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__hyper-0.14.17",
-        sha256 = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd",
+        name = "crates_vendor_pkgs__hyper-0.14.20",
+        sha256 = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/hyper/0.14.17/download"],
-        strip_prefix = "hyper-0.14.17",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.hyper-0.14.17.bazel"),
+        urls = ["https://crates.io/api/v1/crates/hyper/0.14.20/download"],
+        strip_prefix = "hyper-0.14.20",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.hyper-0.14.20.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__indexmap-1.8.0",
-        sha256 = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223",
+        name = "crates_vendor_pkgs__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/indexmap/1.8.0/download"],
-        strip_prefix = "indexmap-1.8.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.indexmap-1.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.indexmap-1.9.1.bazel"),
     )
 
     maybe(
@@ -635,12 +639,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__itoa-1.0.1",
-        sha256 = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35",
+        name = "crates_vendor_pkgs__itoa-1.0.2",
+        sha256 = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/itoa/1.0.1/download"],
-        strip_prefix = "itoa-1.0.1",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.itoa-1.0.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/itoa/1.0.2/download"],
+        strip_prefix = "itoa-1.0.2",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.itoa-1.0.2.bazel"),
     )
 
     maybe(
@@ -655,32 +659,32 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__libc-0.2.119",
-        sha256 = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4",
+        name = "crates_vendor_pkgs__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/libc/0.2.119/download"],
-        strip_prefix = "libc-0.2.119",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.libc-0.2.119.bazel"),
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.libc-0.2.126.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__lock_api-0.4.6",
-        sha256 = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b",
+        name = "crates_vendor_pkgs__lock_api-0.4.7",
+        sha256 = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/lock_api/0.4.6/download"],
-        strip_prefix = "lock_api-0.4.6",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.lock_api-0.4.6.bazel"),
+        urls = ["https://crates.io/api/v1/crates/lock_api/0.4.7/download"],
+        strip_prefix = "lock_api-0.4.7",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.lock_api-0.4.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__log-0.4.14",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
+        name = "crates_vendor_pkgs__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/log/0.4.14/download"],
-        strip_prefix = "log-0.4.14",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.log-0.4.14.bazel"),
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.log-0.4.17.bazel"),
     )
 
     maybe(
@@ -705,12 +709,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__memchr-2.4.1",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
+        name = "crates_vendor_pkgs__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/memchr/2.4.1/download"],
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.memchr-2.4.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.memchr-2.5.0.bazel"),
     )
 
     maybe(
@@ -765,12 +769,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__once_cell-1.9.0",
-        sha256 = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5",
+        name = "crates_vendor_pkgs__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/once_cell/1.9.0/download"],
-        strip_prefix = "once_cell-1.9.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.once_cell-1.9.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.once_cell-1.13.0.bazel"),
     )
 
     maybe(
@@ -805,32 +809,32 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__pin-project-1.0.10",
-        sha256 = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e",
+        name = "crates_vendor_pkgs__pin-project-1.0.11",
+        sha256 = "78203e83c48cffbe01e4a2d35d566ca4de445d79a85372fc64e378bfc812a260",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pin-project/1.0.10/download"],
-        strip_prefix = "pin-project-1.0.10",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-1.0.10.bazel"),
+        urls = ["https://crates.io/api/v1/crates/pin-project/1.0.11/download"],
+        strip_prefix = "pin-project-1.0.11",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-1.0.11.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__pin-project-internal-1.0.10",
-        sha256 = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb",
+        name = "crates_vendor_pkgs__pin-project-internal-1.0.11",
+        sha256 = "710faf75e1b33345361201d36d04e98ac1ed8909151a017ed384700836104c74",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pin-project-internal/1.0.10/download"],
-        strip_prefix = "pin-project-internal-1.0.10",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-internal-1.0.10.bazel"),
+        urls = ["https://crates.io/api/v1/crates/pin-project-internal/1.0.11/download"],
+        strip_prefix = "pin-project-internal-1.0.11",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-internal-1.0.11.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__pin-project-lite-0.2.8",
-        sha256 = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c",
+        name = "crates_vendor_pkgs__pin-project-lite-0.2.9",
+        sha256 = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/pin-project-lite/0.2.8/download"],
-        strip_prefix = "pin-project-lite-0.2.8",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-lite-0.2.8.bazel"),
+        urls = ["https://crates.io/api/v1/crates/pin-project-lite/0.2.9/download"],
+        strip_prefix = "pin-project-lite-0.2.9",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.pin-project-lite-0.2.9.bazel"),
     )
 
     maybe(
@@ -845,42 +849,42 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__proc-macro2-1.0.36",
-        sha256 = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029",
+        name = "crates_vendor_pkgs__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.36/download"],
-        strip_prefix = "proc-macro2-1.0.36",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.proc-macro2-1.0.36.bazel"),
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.proc-macro2-1.0.40.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__quote-1.0.15",
-        sha256 = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145",
+        name = "crates_vendor_pkgs__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/quote/1.0.15/download"],
-        strip_prefix = "quote-1.0.15",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.quote-1.0.15.bazel"),
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.quote-1.0.20.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__redox_syscall-0.2.11",
-        sha256 = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c",
+        name = "crates_vendor_pkgs__redox_syscall-0.2.13",
+        sha256 = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.11/download"],
-        strip_prefix = "redox_syscall-0.2.11",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.redox_syscall-0.2.11.bazel"),
+        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.13/download"],
+        strip_prefix = "redox_syscall-0.2.13",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.redox_syscall-0.2.13.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__ryu-1.0.9",
-        sha256 = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f",
+        name = "crates_vendor_pkgs__ryu-1.0.10",
+        sha256 = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/ryu/1.0.9/download"],
-        strip_prefix = "ryu-1.0.9",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.ryu-1.0.9.bazel"),
+        urls = ["https://crates.io/api/v1/crates/ryu/1.0.10/download"],
+        strip_prefix = "ryu-1.0.10",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.ryu-1.0.10.bazel"),
     )
 
     maybe(
@@ -895,22 +899,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__serde-1.0.136",
-        sha256 = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789",
+        name = "crates_vendor_pkgs__serde-1.0.140",
+        sha256 = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde/1.0.136/download"],
-        strip_prefix = "serde-1.0.136",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.serde-1.0.136.bazel"),
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.140/download"],
+        strip_prefix = "serde-1.0.140",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.serde-1.0.140.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__serde_json-1.0.79",
-        sha256 = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95",
+        name = "crates_vendor_pkgs__serde_json-1.0.82",
+        sha256 = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.79/download"],
-        strip_prefix = "serde_json-1.0.79",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.serde_json-1.0.79.bazel"),
+        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.82/download"],
+        strip_prefix = "serde_json-1.0.82",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.serde_json-1.0.82.bazel"),
     )
 
     maybe(
@@ -945,22 +949,22 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__slab-0.4.5",
-        sha256 = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5",
+        name = "crates_vendor_pkgs__slab-0.4.7",
+        sha256 = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/slab/0.4.5/download"],
-        strip_prefix = "slab-0.4.5",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.slab-0.4.5.bazel"),
+        urls = ["https://crates.io/api/v1/crates/slab/0.4.7/download"],
+        strip_prefix = "slab-0.4.7",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.slab-0.4.7.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__smallvec-1.8.0",
-        sha256 = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83",
+        name = "crates_vendor_pkgs__smallvec-1.9.0",
+        sha256 = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/smallvec/1.8.0/download"],
-        strip_prefix = "smallvec-1.8.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.smallvec-1.8.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/smallvec/1.9.0/download"],
+        strip_prefix = "smallvec-1.9.0",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.smallvec-1.9.0.bazel"),
     )
 
     maybe(
@@ -975,12 +979,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__syn-1.0.86",
-        sha256 = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b",
+        name = "crates_vendor_pkgs__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/syn/1.0.86/download"],
-        strip_prefix = "syn-1.0.86",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.syn-1.0.86.bazel"),
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.syn-1.0.98.bazel"),
     )
 
     maybe(
@@ -1015,52 +1019,42 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tokio-macros-1.7.0",
-        sha256 = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7",
+        name = "crates_vendor_pkgs__tokio-macros-1.8.0",
+        sha256 = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio-macros/1.7.0/download"],
-        strip_prefix = "tokio-macros-1.7.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tokio-macros-1.7.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tokio-macros/1.8.0/download"],
+        strip_prefix = "tokio-macros-1.8.0",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tokio-macros-1.8.0.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tokio-util-0.6.9",
-        sha256 = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0",
+        name = "crates_vendor_pkgs__tokio-util-0.7.2",
+        sha256 = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio-util/0.6.9/download"],
-        strip_prefix = "tokio-util-0.6.9",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tokio-util-0.6.9.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tokio-util/0.7.2/download"],
+        strip_prefix = "tokio-util-0.7.2",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tokio-util-0.7.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tokio-util-0.7.0",
-        sha256 = "64910e1b9c1901aaf5375561e35b9c057d95ff41a44ede043a03e09279eabaf1",
+        name = "crates_vendor_pkgs__tower-0.4.13",
+        sha256 = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tokio-util/0.7.0/download"],
-        strip_prefix = "tokio-util-0.7.0",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tokio-util-0.7.0.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tower/0.4.13/download"],
+        strip_prefix = "tower-0.4.13",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-0.4.13.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tower-0.4.12",
-        sha256 = "9a89fd63ad6adf737582df5db40d286574513c69a11dac5214dc3b5603d6713e",
+        name = "crates_vendor_pkgs__tower-http-0.2.5",
+        sha256 = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tower/0.4.12/download"],
-        strip_prefix = "tower-0.4.12",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-0.4.12.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "crates_vendor_pkgs__tower-http-0.2.3",
-        sha256 = "2bb284cac1883d54083a0edbdc9cabf931dfed87455f8c7266c01ece6394a43a",
-        type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tower-http/0.2.3/download"],
-        strip_prefix = "tower-http-0.2.3",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-http-0.2.3.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tower-http/0.2.5/download"],
+        strip_prefix = "tower-http-0.2.5",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-http-0.2.5.bazel"),
     )
 
     maybe(
@@ -1075,62 +1069,62 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tower-service-0.3.1",
-        sha256 = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6",
+        name = "crates_vendor_pkgs__tower-service-0.3.2",
+        sha256 = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tower-service/0.3.1/download"],
-        strip_prefix = "tower-service-0.3.1",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-service-0.3.1.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tower-service/0.3.2/download"],
+        strip_prefix = "tower-service-0.3.2",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tower-service-0.3.2.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tracing-0.1.31",
-        sha256 = "f6c650a8ef0cd2dd93736f033d21cbd1224c5a967aa0c258d00fcf7dafef9b9f",
+        name = "crates_vendor_pkgs__tracing-0.1.35",
+        sha256 = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing/0.1.31/download"],
-        strip_prefix = "tracing-0.1.31",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-0.1.31.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tracing/0.1.35/download"],
+        strip_prefix = "tracing-0.1.35",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-0.1.35.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tracing-attributes-0.1.19",
-        sha256 = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716",
+        name = "crates_vendor_pkgs__tracing-attributes-0.1.22",
+        sha256 = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-attributes/0.1.19/download"],
-        strip_prefix = "tracing-attributes-0.1.19",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-attributes-0.1.19.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tracing-attributes/0.1.22/download"],
+        strip_prefix = "tracing-attributes-0.1.22",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-attributes-0.1.22.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tracing-core-0.1.22",
-        sha256 = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23",
+        name = "crates_vendor_pkgs__tracing-core-0.1.28",
+        sha256 = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-core/0.1.22/download"],
-        strip_prefix = "tracing-core-0.1.22",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-core-0.1.22.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tracing-core/0.1.28/download"],
+        strip_prefix = "tracing-core-0.1.28",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-core-0.1.28.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tracing-log-0.1.2",
-        sha256 = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3",
+        name = "crates_vendor_pkgs__tracing-log-0.1.3",
+        sha256 = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-log/0.1.2/download"],
-        strip_prefix = "tracing-log-0.1.2",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-log-0.1.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tracing-log/0.1.3/download"],
+        strip_prefix = "tracing-log-0.1.3",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-log-0.1.3.bazel"),
     )
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__tracing-subscriber-0.3.9",
-        sha256 = "9e0ab7bdc962035a87fba73f3acca9b8a8d0034c2e6f60b84aeaaddddc155dce",
+        name = "crates_vendor_pkgs__tracing-subscriber-0.3.15",
+        sha256 = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/tracing-subscriber/0.3.9/download"],
-        strip_prefix = "tracing-subscriber-0.3.9",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-subscriber-0.3.9.bazel"),
+        urls = ["https://crates.io/api/v1/crates/tracing-subscriber/0.3.15/download"],
+        strip_prefix = "tracing-subscriber-0.3.15",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.tracing-subscriber-0.3.15.bazel"),
     )
 
     maybe(
@@ -1145,12 +1139,12 @@
 
     maybe(
         http_archive,
-        name = "crates_vendor_pkgs__unicode-xid-0.2.2",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
+        name = "crates_vendor_pkgs__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
         type = "tar.gz",
-        urls = ["https://crates.io/api/v1/crates/unicode-xid/0.2.2/download"],
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.unicode-xid-0.2.2.bazel"),
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@examples//vendor_remote_pkgs/crates:BUILD.unicode-ident-1.0.2.bazel"),
     )
 
     maybe(
diff --git a/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix.h b/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix.h
index 40797a2..cfe917b 100644
--- a/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix.h
+++ b/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix.h
@@ -45,4 +45,4 @@
 // Frees the matrix.
 void matrix_free(Matrix* matrix);
 
-#endif // MATRIX_SRC_MATRIX_H_
+#endif  // MATRIX_SRC_MATRIX_H_
diff --git a/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix_test.c b/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix_test.c
index d7bb76b..ab81269 100644
--- a/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix_test.c
+++ b/third_party/rules_rust/examples/ffi/rust_calling_c/c/matrix_test.c
@@ -25,7 +25,7 @@
     for (size_t j = 0; j < m->cols; ++j) {
       uint64_t val = 0;
       matrix_at(m, i, j, &val);
-      printf("%"PRIu64" ", val);
+      printf("%" PRIu64 " ", val);
     }
     printf("\n");
   }
@@ -44,30 +44,38 @@
 }
 
 void test_equal() {
+  // clang-format off
   static uint64_t a_data[] = {11, 12, 13, 14,
                               21, 22, 23, 24};
+  // clang-format on
   Matrix* a = matrix_new(2, 4, a_data);
   assert(a != NULL);
   assert(check_equal(a, a));
 
+  // clang-format off
   static uint64_t b_data[] = {13, 14, 15, 16,
                               22, 23, 24, 25};
+  // clang-format on
   Matrix* b = matrix_new(2, 4, b_data);
   assert(b != NULL);
   assert(!matrix_equal(a, b));
 }
 
 void test_transpose() {
+  // clang-format off
   static uint64_t matrix_data[] = {11, 12, 13, 14,
                                    21, 22, 23, 24};
+  // clang-format on
   Matrix* matrix = matrix_new(2, 4, matrix_data);
   assert(matrix != NULL);
   matrix_transpose(matrix);
 
+  // clang-format off
   static uint64_t expected_transpose_data[] = {11, 21,
                                                12, 22,
                                                13, 23,
                                                14, 24};
+  // clang-format off
   Matrix* expected_transpose = matrix_new(4, 2, expected_transpose_data);
 
   assert(check_equal(expected_transpose, matrix));
diff --git a/third_party/rules_rust/examples/hello_lib/BUILD.bazel b/third_party/rules_rust/examples/hello_lib/BUILD.bazel
index e8fb6f6..1e1f830 100644
--- a/third_party/rules_rust/examples/hello_lib/BUILD.bazel
+++ b/third_party/rules_rust/examples/hello_lib/BUILD.bazel
@@ -1,4 +1,12 @@
-load("@rules_rust//rust:defs.bzl", "rust_analyzer", "rust_doc", "rust_doc_test", "rust_library", "rust_shared_library", "rust_static_library", "rust_test")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_doc",
+    "rust_doc_test",
+    "rust_library",
+    "rust_shared_library",
+    "rust_static_library",
+    "rust_test",
+)
 
 package(default_visibility = ["//visibility:public"])
 
@@ -66,8 +74,3 @@
     name = "hello_lib_doc_test",
     crate = ":hello_lib",
 )
-
-rust_analyzer(
-    name = "hello_rust_analyzer",
-    targets = [":hello_lib"],
-)
diff --git a/third_party/rules_rust/examples/shared_libs/BUILD.bazel b/third_party/rules_rust/examples/shared_libs/BUILD.bazel
new file mode 100644
index 0000000..c90f65d
--- /dev/null
+++ b/third_party/rules_rust/examples/shared_libs/BUILD.bazel
@@ -0,0 +1,29 @@
+load("@rules_cc//cc:defs.bzl", "cc_import", "cc_library")
+load("@rules_rust//rust:defs.bzl", "rust_shared_library")
+
+# A rust_shared_library (forcing the use of pic) that depends on a native
+# linker library with only a static_library member.
+rust_shared_library(
+    name = "rust_shared_lib_with_static_dep",
+    srcs = ["rust_shared_lib_with_static_dep.rs"],
+    deps = [":static_cclib"],
+)
+
+cc_library(
+    name = "nonstandard_name_cc_lib",
+    srcs = ["cc_library_with_func.cc"],
+)
+
+genrule(
+    name = "nonstandard_name_gen",
+    srcs = [":nonstandard_name_cc_lib"],
+    outs = ["nonstandard_name_gen.a"],
+    # Copy the first member (libnonstandard_name_cc_lib.a) from the srcs to the
+    # output nonstandard_name_gen.a.
+    cmd = "cp $$(awk '{print $$1}' <<< '$(SRCS)') $@",
+)
+
+cc_import(
+    name = "static_cclib",
+    static_library = "nonstandard_name_gen.a",
+)
diff --git a/third_party/rules_rust/examples/shared_libs/cc_library_with_func.cc b/third_party/rules_rust/examples/shared_libs/cc_library_with_func.cc
new file mode 100644
index 0000000..1f12151
--- /dev/null
+++ b/third_party/rules_rust/examples/shared_libs/cc_library_with_func.cc
@@ -0,0 +1 @@
+extern "C" int func() { return 123; }
diff --git a/third_party/rules_rust/examples/shared_libs/rust_shared_lib_with_static_dep.rs b/third_party/rules_rust/examples/shared_libs/rust_shared_lib_with_static_dep.rs
new file mode 100644
index 0000000..bbeb52c
--- /dev/null
+++ b/third_party/rules_rust/examples/shared_libs/rust_shared_lib_with_static_dep.rs
@@ -0,0 +1,9 @@
+use std::os::raw::c_int;
+
+extern "C" {
+    pub fn func() -> c_int;
+}
+
+pub fn f() {
+    println!("hi {}", unsafe { func() });
+}
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/BUILD.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..8516755
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/BUILD.bazel
@@ -0,0 +1,20 @@
+load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "bzip2-sys": [crate.annotation(
+            gen_build_script = True,
+        )],
+    },
+    cargo_lockfile = "Cargo.Bazel.lock",
+    generate_build_scripts = False,
+    mode = "remote",
+    packages = {
+        "bzip2": crate.spec(
+            version = "=0.3.3",
+        ),
+    },
+    repository_name = "basic_sys",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/examples/sys/basic/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..39f301a
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,49 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "bzip2"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
+dependencies = [
+ "bzip2-sys",
+ "libc",
+]
+
+[[package]]
+name = "bzip2-sys"
+version = "0.1.11+1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "bzip2",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..f78524b
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,41 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "bzip2",
+    actual = "@basic_sys__bzip2-0.3.3//:bzip2",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "cc__gcc-shim",
+    actual = "@basic_sys__cc-1.0.73//:gcc-shim__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-0.3.3.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-0.3.3.bazel
new file mode 100644
index 0000000..e790651
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-0.3.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bzip2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@basic_sys__bzip2-sys-0.1.11-1.0.8//:bzip2_sys",
+            "@basic_sys__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-sys-0.1.11+1.0.8.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-sys-0.1.11+1.0.8.bazel
new file mode 100644
index 0000000..34b0c06
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.bzip2-sys-0.1.11+1.0.8.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bzip2_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.11+1.0.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@basic_sys__bzip2-sys-0.1.11-1.0.8//:build_script_build",
+            "@basic_sys__libc-0.2.126//:libc",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "bzip2-sys_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    links = "bzip2",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.11+1.0.8",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@basic_sys__cc-1.0.73//:cc",
+            "@basic_sys__pkg-config-0.3.25//:pkg_config",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "bzip2-sys_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.cc-1.0.73.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.cc-1.0.73.bazel
new file mode 100644
index 0000000..94dad1f
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.cc-1.0.73.bazel
@@ -0,0 +1,157 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "gcc-shim__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/gcc-shim.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+        ":cc",
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..84344d1
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
new file mode 100644
index 0000000..cb28873
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "pkg_config",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.25",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/crates.bzl b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..ba569c7
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@examples//sys/basic/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "basic_sys",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@examples//sys/basic/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/examples/sys/basic/3rdparty/crates/defs.bzl b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..3f110a1
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/basic/3rdparty/crates/defs.bzl
@@ -0,0 +1,411 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/basic/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "bzip2": "@basic_sys__bzip2-0.3.3//:bzip2",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "basic_sys__bzip2-0.3.3",
+        sha256 = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bzip2/0.3.3/download"],
+        strip_prefix = "bzip2-0.3.3",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.bzip2-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "basic_sys__bzip2-sys-0.1.11-1.0.8",
+        sha256 = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bzip2-sys/0.1.11+1.0.8/download"],
+        strip_prefix = "bzip2-sys-0.1.11+1.0.8",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.bzip2-sys-0.1.11+1.0.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "basic_sys__cc-1.0.73",
+        sha256 = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cc/1.0.73/download"],
+        strip_prefix = "cc-1.0.73",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.cc-1.0.73.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "basic_sys__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "basic_sys__pkg-config-0.3.25",
+        sha256 = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/pkg-config/0.3.25/download"],
+        strip_prefix = "pkg-config-0.3.25",
+        build_file = Label("@examples//sys/basic/3rdparty/crates:BUILD.pkg-config-0.3.25.bazel"),
+    )
diff --git a/third_party/rules_rust/examples/sys/basic/BUILD.bazel b/third_party/rules_rust/examples/sys/basic/BUILD.bazel
index 142aa89..8971c66 100644
--- a/third_party/rules_rust/examples/sys/basic/BUILD.bazel
+++ b/third_party/rules_rust/examples/sys/basic/BUILD.bazel
@@ -22,7 +22,7 @@
     edition = "2018",
     # Note the `cargo-raze` dependencies here need to have been loaded
     # in the WORKSPACE file. See `//sys:sys_deps.bzl` for rmore details.
-    deps = ["//sys/basic/raze:bzip2"],
+    deps = ["//sys/basic/3rdparty/crates:bzip2"],
 )
 
 sh_test(
diff --git a/third_party/rules_rust/examples/sys/basic/Cargo.lock b/third_party/rules_rust/examples/sys/basic/Cargo.lock
deleted file mode 100644
index 7a14e37..0000000
--- a/third_party/rules_rust/examples/sys/basic/Cargo.lock
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "bzip2"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
-dependencies = [
- "bzip2-sys",
- "libc",
-]
-
-[[package]]
-name = "bzip2-sys"
-version = "0.1.9+1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad3b39a260062fca31f7b0b12f207e8f2590a67d32ec7d59c20484b07ea7285e"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
-
-[[package]]
-name = "libc"
-version = "0.2.77"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
-
-[[package]]
-name = "rules_rust_examples_basic_sys"
-version = "0.0.1"
-dependencies = [
- "bzip2",
-]
diff --git a/third_party/rules_rust/examples/sys/basic/Cargo.toml b/third_party/rules_rust/examples/sys/basic/Cargo.toml
deleted file mode 100644
index 61b97fc..0000000
--- a/third_party/rules_rust/examples/sys/basic/Cargo.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[package]
-name = "rules_rust_examples_basic_sys"
-version = "0.0.1"
-
-[[bin]]
-name = "rules_rust_examples_basic_sys"
-path = "src/main.rs"
-
-[dependencies]
-bzip2 = "=0.3.3"
-
-[package.metadata.raze]
-workspace_path = "//sys/basic/raze"
-genmode = "Remote"
-gen_workspace_prefix = "basic_sys"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "raze"
-default_gen_buildrs = false
-
-[package.metadata.raze.crates.bzip2-sys.'0.1.9+1.0.8']
-gen_buildrs = true
diff --git a/third_party/rules_rust/examples/sys/basic/raze/BUILD.bazel b/third_party/rules_rust/examples/sys/basic/raze/BUILD.bazel
deleted file mode 100644
index ade3349..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/BUILD.bazel
+++ /dev/null
@@ -1,30 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "bzip2",
-    actual = "@basic_sys__bzip2__0_3_3//:bzip2",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/examples/sys/basic/raze/crates.bzl b/third_party/rules_rust/examples/sys/basic/raze/crates.bzl
deleted file mode 100644
index beacc3e..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/crates.bzl
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def basic_sys_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "basic_sys__bzip2__0_3_3",
-        url = "https://crates.io/api/v1/crates/bzip2/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b",
-        strip_prefix = "bzip2-0.3.3",
-        build_file = Label("//sys/basic/raze/remote:BUILD.bzip2-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "basic_sys__bzip2_sys__0_1_9_1_0_8",
-        url = "https://crates.io/api/v1/crates/bzip2-sys/0.1.9+1.0.8/download",
-        type = "tar.gz",
-        sha256 = "ad3b39a260062fca31f7b0b12f207e8f2590a67d32ec7d59c20484b07ea7285e",
-        strip_prefix = "bzip2-sys-0.1.9+1.0.8",
-        build_file = Label("//sys/basic/raze/remote:BUILD.bzip2-sys-0.1.9+1.0.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "basic_sys__cc__1_0_60",
-        url = "https://crates.io/api/v1/crates/cc/1.0.60/download",
-        type = "tar.gz",
-        sha256 = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c",
-        strip_prefix = "cc-1.0.60",
-        build_file = Label("//sys/basic/raze/remote:BUILD.cc-1.0.60.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "basic_sys__libc__0_2_77",
-        url = "https://crates.io/api/v1/crates/libc/0.2.77/download",
-        type = "tar.gz",
-        sha256 = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235",
-        strip_prefix = "libc-0.2.77",
-        build_file = Label("//sys/basic/raze/remote:BUILD.libc-0.2.77.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "basic_sys__pkg_config__0_3_18",
-        url = "https://crates.io/api/v1/crates/pkg-config/0.3.18/download",
-        type = "tar.gz",
-        sha256 = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33",
-        strip_prefix = "pkg-config-0.3.18",
-        build_file = Label("//sys/basic/raze/remote:BUILD.pkg-config-0.3.18.bazel"),
-    )
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-0.3.3.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-0.3.3.bazel
deleted file mode 100644
index 403de65..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-0.3.3.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/basic/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "bzip2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        "@basic_sys__bzip2_sys__0_1_9_1_0_8//:bzip2_sys",
-        "@basic_sys__libc__0_2_77//:libc",
-    ],
-)
-
-# Unsupported target "tokio" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-sys-0.1.9+1.0.8.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-sys-0.1.9+1.0.8.bazel
deleted file mode 100644
index 2401d2c..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.bzip2-sys-0.1.9+1.0.8.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/basic/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "bzip2_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    links = "bzip2",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.9+1.0.8",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@basic_sys__cc__1_0_60//:cc",
-        "@basic_sys__pkg_config__0_3_18//:pkg_config",
-    ],
-)
-
-rust_library(
-    name = "bzip2_sys",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.9+1.0.8",
-    # buildifier: leave-alone
-    deps = [
-        ":bzip2_sys_build_script",
-        "@basic_sys__libc__0_2_77//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.cc-1.0.60.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.cc-1.0.60.bazel
deleted file mode 100644
index ad826c1..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.cc-1.0.60.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/basic/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_gcc_shim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/gcc-shim.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.60",
-    # buildifier: leave-alone
-    deps = [
-        ":cc",
-    ],
-)
-
-rust_library(
-    name = "cc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.60",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "cc_env" with type "test" omitted
-
-# Unsupported target "cflags" with type "test" omitted
-
-# Unsupported target "cxxflags" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.libc-0.2.77.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.libc-0.2.77.bazel
deleted file mode 100644
index 4b8aed7..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.libc-0.2.77.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/basic/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.77",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.pkg-config-0.3.18.bazel b/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.pkg-config-0.3.18.bazel
deleted file mode 100644
index 0121432..0000000
--- a/third_party/rules_rust/examples/sys/basic/raze/remote/BUILD.pkg-config-0.3.18.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/basic/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "pkg_config",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.18",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/BUILD.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..9046d78
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/BUILD.bazel
@@ -0,0 +1,28 @@
+load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "libgit2-sys": [crate.annotation(
+            gen_build_script = False,
+            # libgit2 comes from @rules_rust//crate_universe/3rdparty:third_party_deps.bzl
+            deps = ["@libgit2"],
+        )],
+        "libz-sys": [crate.annotation(
+            gen_build_script = False,
+            # zlib comes from @rules_rust//crate_universe/3rdparty:third_party_deps.bzl
+            deps = ["@zlib"],
+        )],
+    },
+    cargo_lockfile = "Cargo.Bazel.lock",
+    generate_build_scripts = True,
+    mode = "remote",
+    packages = {
+        "git2": crate.spec(
+            default_features = False,
+            version = "=0.14.4",
+        ),
+    },
+    repository_name = "complex_sys",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/examples/sys/complex/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..e8bdcd0
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,179 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "git2",
+]
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "git2"
+version = "0.14.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "jobserver"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.13.4+1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..85dc3b7
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,41 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "git2",
+    actual = "@complex_sys__git2-0.14.4//:git2",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "cc__gcc-shim",
+    actual = "@complex_sys__cc-1.0.73//:gcc-shim__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..2315084
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cc-1.0.73.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cc-1.0.73.bazel
new file mode 100644
index 0000000..02c3dd8
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cc-1.0.73.bazel
@@ -0,0 +1,163 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "jobserver",
+        "parallel",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__jobserver-0.1.24//:jobserver",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "gcc-shim__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "jobserver",
+        "parallel",
+    ],
+    crate_root = "src/bin/gcc-shim.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+        ":cc",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__jobserver-0.1.24//:jobserver",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..1c475ad
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
new file mode 100644
index 0000000..25bbf71
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "form_urlencoded",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__matches-0.1.9//:matches",
+            "@complex_sys__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.git2-0.14.4.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.git2-0.14.4.bazel
new file mode 100644
index 0000000..8bddd3b
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.git2-0.14.4.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "git2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.14.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__bitflags-1.3.2//:bitflags",
+            "@complex_sys__libc-0.2.126//:libc",
+            "@complex_sys__libgit2-sys-0.13.4-1.4.2//:libgit2_sys",
+            "@complex_sys__log-0.4.17//:log",
+            "@complex_sys__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.idna-0.2.3.bazel
new file mode 100644
index 0000000..b117628
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.idna-0.2.3.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "idna",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__matches-0.1.9//:matches",
+            "@complex_sys__unicode-bidi-0.3.8//:unicode_bidi",
+            "@complex_sys__unicode-normalization-0.1.21//:unicode_normalization",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.jobserver-0.1.24.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.jobserver-0.1.24.bazel
new file mode 100644
index 0000000..425194f
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.jobserver-0.1.24.bazel
@@ -0,0 +1,117 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "jobserver",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.24",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@complex_sys__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..8df7c2b
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel
new file mode 100644
index 0000000..0cbe928
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libgit2-sys-0.13.4+1.4.2.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libgit2_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.13.4+1.4.2",
+    deps = [
+        "@libgit2",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__libc-0.2.126//:libc",
+            "@complex_sys__libz-sys-1.1.8//:libz_sys",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
new file mode 100644
index 0000000..0a01278
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libz_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "libc",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.8",
+    deps = [
+        "@zlib",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..2e38426
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__cfg-if-1.0.0//:cfg_if",
+            "@complex_sys__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.matches-0.1.9.bazel
new file mode 100644
index 0000000..9faefd4
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.matches-0.1.9.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "matches",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
new file mode 100644
index 0000000..d0e033c
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "percent_encoding",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
new file mode 100644
index 0000000..e022ea7
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "pkg_config",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.25",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
new file mode 100644
index 0000000..3c99ffc
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Zlib OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "tinyvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "tinyvec_macros",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__tinyvec_macros-0.1.0//:tinyvec_macros",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
new file mode 100644
index 0000000..e7cf813
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0 OR Zlib
+# ])
+
+rust_library(
+    name = "tinyvec_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
new file mode 100644
index 0000000..94c2631
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_bidi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "hardcoded-data",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
new file mode 100644
index 0000000..b57cb1f
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_normalization",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.21",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__tinyvec-1.6.0//:tinyvec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.url-2.2.2.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.url-2.2.2.bazel
new file mode 100644
index 0000000..5fb550c
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.url-2.2.2.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "url",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.2.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@complex_sys__form_urlencoded-1.0.1//:form_urlencoded",
+            "@complex_sys__idna-0.2.3//:idna",
+            "@complex_sys__matches-0.1.9//:matches",
+            "@complex_sys__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
new file mode 100644
index 0000000..795f202
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "vcpkg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/crates.bzl b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..5969c28
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@examples//sys/complex/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "complex_sys",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@examples//sys/complex/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/examples/sys/complex/3rdparty/crates/defs.bzl b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..5fc3e58
--- /dev/null
+++ b/third_party/rules_rust/examples/sys/complex/3rdparty/crates/defs.bzl
@@ -0,0 +1,562 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //sys/complex/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "git2": "@complex_sys__git2-0.14.4//:git2",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "complex_sys__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__cc-1.0.73",
+        sha256 = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cc/1.0.73/download"],
+        strip_prefix = "cc-1.0.73",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.cc-1.0.73.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__form_urlencoded-1.0.1",
+        sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download"],
+        strip_prefix = "form_urlencoded-1.0.1",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.form_urlencoded-1.0.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__git2-0.14.4",
+        sha256 = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/git2/0.14.4/download"],
+        strip_prefix = "git2-0.14.4",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.git2-0.14.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__idna-0.2.3",
+        sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/idna/0.2.3/download"],
+        strip_prefix = "idna-0.2.3",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.idna-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__jobserver-0.1.24",
+        sha256 = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/jobserver/0.1.24/download"],
+        strip_prefix = "jobserver-0.1.24",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.jobserver-0.1.24.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__libgit2-sys-0.13.4-1.4.2",
+        sha256 = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libgit2-sys/0.13.4+1.4.2/download"],
+        strip_prefix = "libgit2-sys-0.13.4+1.4.2",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.libgit2-sys-0.13.4+1.4.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__libz-sys-1.1.8",
+        sha256 = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libz-sys/1.1.8/download"],
+        strip_prefix = "libz-sys-1.1.8",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.libz-sys-1.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__matches-0.1.9",
+        sha256 = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/matches/0.1.9/download"],
+        strip_prefix = "matches-0.1.9",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.matches-0.1.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__percent-encoding-2.1.0",
+        sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/percent-encoding/2.1.0/download"],
+        strip_prefix = "percent-encoding-2.1.0",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.percent-encoding-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__pkg-config-0.3.25",
+        sha256 = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/pkg-config/0.3.25/download"],
+        strip_prefix = "pkg-config-0.3.25",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.pkg-config-0.3.25.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__tinyvec-1.6.0",
+        sha256 = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec/1.6.0/download"],
+        strip_prefix = "tinyvec-1.6.0",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.tinyvec-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__tinyvec_macros-0.1.0",
+        sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download"],
+        strip_prefix = "tinyvec_macros-0.1.0",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.tinyvec_macros-0.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__unicode-bidi-0.3.8",
+        sha256 = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download"],
+        strip_prefix = "unicode-bidi-0.3.8",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.unicode-bidi-0.3.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__unicode-normalization-0.1.21",
+        sha256 = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.21/download"],
+        strip_prefix = "unicode-normalization-0.1.21",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.unicode-normalization-0.1.21.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__url-2.2.2",
+        sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/url/2.2.2/download"],
+        strip_prefix = "url-2.2.2",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.url-2.2.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "complex_sys__vcpkg-0.2.15",
+        sha256 = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/vcpkg/0.2.15/download"],
+        strip_prefix = "vcpkg-0.2.15",
+        build_file = Label("@examples//sys/complex/3rdparty/crates:BUILD.vcpkg-0.2.15.bazel"),
+    )
diff --git a/third_party/rules_rust/examples/sys/complex/BUILD.bazel b/third_party/rules_rust/examples/sys/complex/BUILD.bazel
index f0e7f0b..eaf3199 100644
--- a/third_party/rules_rust/examples/sys/complex/BUILD.bazel
+++ b/third_party/rules_rust/examples/sys/complex/BUILD.bazel
@@ -20,7 +20,7 @@
     name = "complex_sys",
     srcs = ["src/main.rs"],
     edition = "2018",
-    # Note the `cargo-raze` dependencies here need to have been loaded
+    # Note the `crate_universe` dependencies here need to have been loaded
     # in the WORKSPACE file. See `//sys:sys_deps.bzl` for rmore details.
-    deps = ["//sys/complex/raze:git2"],
+    deps = ["//sys/complex/3rdparty/crates:git2"],
 )
diff --git a/third_party/rules_rust/examples/sys/complex/Cargo.lock b/third_party/rules_rust/examples/sys/complex/Cargo.lock
deleted file mode 100644
index a2676c7..0000000
--- a/third_party/rules_rust/examples/sys/complex/Cargo.lock
+++ /dev/null
@@ -1,260 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "autocfg"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-[[package]]
-name = "cc"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2"
-dependencies = [
- "jobserver",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-dependencies = [
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "git2"
-version = "0.13.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6f1a0238d7f8f8fd5ee642f4ebac4dbc03e03d1f78fbe7a3ede35dcf7e2224"
-dependencies = [
- "bitflags",
- "libc",
- "libgit2-sys",
- "log",
- "openssl-probe",
- "openssl-sys",
- "url",
-]
-
-[[package]]
-name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "jobserver"
-version = "0.1.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5ca711fd837261e14ec9e674f092cbb931d3fa1482b017ae59328ddc6f3212b"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790"
-
-[[package]]
-name = "libgit2-sys"
-version = "0.12.21+1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86271bacd72b2b9e854c3dcfb82efd538f15f870e4c11af66900effb462f6825"
-dependencies = [
- "cc",
- "libc",
- "libssh2-sys",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
-]
-
-[[package]]
-name = "libssh2-sys"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0186af0d8f171ae6b9c4c90ec51898bad5d08a2d5e470903a50d9ad8959cbee"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "libz-sys"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-
-[[package]]
-name = "openssl"
-version = "0.10.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
-dependencies = [
- "bitflags",
- "cfg-if",
- "foreign-types",
- "lazy_static",
- "libc",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
-
-[[package]]
-name = "rules_rust_examples_complex_sys"
-version = "0.0.1"
-dependencies = [
- "git2",
- "openssl",
- "openssl-sys",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0"
-dependencies = [
- "matches",
-]
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "url"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-dependencies = [
- "form_urlencoded",
- "idna",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
diff --git a/third_party/rules_rust/examples/sys/complex/Cargo.toml b/third_party/rules_rust/examples/sys/complex/Cargo.toml
deleted file mode 100644
index 1e47fb4..0000000
--- a/third_party/rules_rust/examples/sys/complex/Cargo.toml
+++ /dev/null
@@ -1,35 +0,0 @@
-[package]
-name = "rules_rust_examples_complex_sys"
-version = "0.0.1"
-
-[[bin]]
-name = "rules_rust_examples_complex_sys"
-path = "src/main.rs"
-
-[dependencies]
-git2 = "=0.13.12"
-openssl = "=0.10.32"
-openssl-sys = "=0.9.60"
-
-[package.metadata.raze]
-workspace_path = "//sys/complex/raze"
-genmode = "Remote"
-gen_workspace_prefix = "complex_sys"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "raze"
-default_gen_buildrs = true
-
-[package.metadata.raze.crates.openssl-sys.'*']
-# build.rs file: https://github.com/sfackler/rust-openssl/blob/master/openssl-sys/build/main.rs
-build_data_dependencies = [
-    "@openssl//:openssl",
-    "@openssl//:gen_dir",
-]
-data_attr = "[\"@openssl//:openssl\"]"
-additional_deps = ["@openssl//:openssl"]
-    [package.metadata.raze.crates.openssl-sys.'*'.buildrs_additional_environment_variables]
-        OPENSSL_DIR="$(execpath @openssl//:gen_dir)"
-        OPENSSL_STATIC="1"
-
-[package.metadata.raze.crates.libssh2-sys.'0.2.20']
-build_data_dependencies = ["@openssl"]
diff --git a/third_party/rules_rust/examples/sys/complex/raze/BUILD.bazel b/third_party/rules_rust/examples/sys/complex/raze/BUILD.bazel
deleted file mode 100644
index f718efb..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/BUILD.bazel
+++ /dev/null
@@ -1,48 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "git2",
-    actual = "@complex_sys__git2__0_13_12//:git2",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "openssl",
-    actual = "@complex_sys__openssl__0_10_32//:openssl",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "openssl_sys",
-    actual = "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/crates.bzl b/third_party/rules_rust/examples/sys/complex/raze/crates.bzl
deleted file mode 100644
index a8ccc94..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/crates.bzl
+++ /dev/null
@@ -1,292 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def complex_sys_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "complex_sys__autocfg__1_0_1",
-        url = "https://crates.io/api/v1/crates/autocfg/1.0.1/download",
-        type = "tar.gz",
-        sha256 = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a",
-        strip_prefix = "autocfg-1.0.1",
-        build_file = Label("//sys/complex/raze/remote:BUILD.autocfg-1.0.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__bitflags__1_2_1",
-        url = "https://crates.io/api/v1/crates/bitflags/1.2.1/download",
-        type = "tar.gz",
-        sha256 = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693",
-        strip_prefix = "bitflags-1.2.1",
-        build_file = Label("//sys/complex/raze/remote:BUILD.bitflags-1.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__cc__1_0_69",
-        url = "https://crates.io/api/v1/crates/cc/1.0.69/download",
-        type = "tar.gz",
-        sha256 = "e70cc2f62c6ce1868963827bd677764c62d07c3d9a3e1fb1177ee1a9ab199eb2",
-        strip_prefix = "cc-1.0.69",
-        build_file = Label("//sys/complex/raze/remote:BUILD.cc-1.0.69.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//sys/complex/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__foreign_types__0_3_2",
-        url = "https://crates.io/api/v1/crates/foreign-types/0.3.2/download",
-        type = "tar.gz",
-        sha256 = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1",
-        strip_prefix = "foreign-types-0.3.2",
-        build_file = Label("//sys/complex/raze/remote:BUILD.foreign-types-0.3.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__foreign_types_shared__0_1_1",
-        url = "https://crates.io/api/v1/crates/foreign-types-shared/0.1.1/download",
-        type = "tar.gz",
-        sha256 = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b",
-        strip_prefix = "foreign-types-shared-0.1.1",
-        build_file = Label("//sys/complex/raze/remote:BUILD.foreign-types-shared-0.1.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__form_urlencoded__1_0_1",
-        url = "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
-        type = "tar.gz",
-        sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
-        strip_prefix = "form_urlencoded-1.0.1",
-        build_file = Label("//sys/complex/raze/remote:BUILD.form_urlencoded-1.0.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__git2__0_13_12",
-        url = "https://crates.io/api/v1/crates/git2/0.13.12/download",
-        type = "tar.gz",
-        sha256 = "ca6f1a0238d7f8f8fd5ee642f4ebac4dbc03e03d1f78fbe7a3ede35dcf7e2224",
-        strip_prefix = "git2-0.13.12",
-        build_file = Label("//sys/complex/raze/remote:BUILD.git2-0.13.12.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__idna__0_2_3",
-        url = "https://crates.io/api/v1/crates/idna/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
-        strip_prefix = "idna-0.2.3",
-        build_file = Label("//sys/complex/raze/remote:BUILD.idna-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__jobserver__0_1_23",
-        url = "https://crates.io/api/v1/crates/jobserver/0.1.23/download",
-        type = "tar.gz",
-        sha256 = "f5ca711fd837261e14ec9e674f092cbb931d3fa1482b017ae59328ddc6f3212b",
-        strip_prefix = "jobserver-0.1.23",
-        build_file = Label("//sys/complex/raze/remote:BUILD.jobserver-0.1.23.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//sys/complex/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__libc__0_2_98",
-        url = "https://crates.io/api/v1/crates/libc/0.2.98/download",
-        type = "tar.gz",
-        sha256 = "320cfe77175da3a483efed4bc0adc1968ca050b098ce4f2f1c13a56626128790",
-        strip_prefix = "libc-0.2.98",
-        build_file = Label("//sys/complex/raze/remote:BUILD.libc-0.2.98.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__libgit2_sys__0_12_21_1_1_0",
-        url = "https://crates.io/api/v1/crates/libgit2-sys/0.12.21+1.1.0/download",
-        type = "tar.gz",
-        sha256 = "86271bacd72b2b9e854c3dcfb82efd538f15f870e4c11af66900effb462f6825",
-        strip_prefix = "libgit2-sys-0.12.21+1.1.0",
-        build_file = Label("//sys/complex/raze/remote:BUILD.libgit2-sys-0.12.21+1.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__libssh2_sys__0_2_21",
-        url = "https://crates.io/api/v1/crates/libssh2-sys/0.2.21/download",
-        type = "tar.gz",
-        sha256 = "e0186af0d8f171ae6b9c4c90ec51898bad5d08a2d5e470903a50d9ad8959cbee",
-        strip_prefix = "libssh2-sys-0.2.21",
-        build_file = Label("//sys/complex/raze/remote:BUILD.libssh2-sys-0.2.21.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__libz_sys__1_1_3",
-        url = "https://crates.io/api/v1/crates/libz-sys/1.1.3/download",
-        type = "tar.gz",
-        sha256 = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66",
-        strip_prefix = "libz-sys-1.1.3",
-        build_file = Label("//sys/complex/raze/remote:BUILD.libz-sys-1.1.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//sys/complex/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__matches__0_1_8",
-        url = "https://crates.io/api/v1/crates/matches/0.1.8/download",
-        type = "tar.gz",
-        sha256 = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08",
-        strip_prefix = "matches-0.1.8",
-        build_file = Label("//sys/complex/raze/remote:BUILD.matches-0.1.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__openssl__0_10_32",
-        url = "https://crates.io/api/v1/crates/openssl/0.10.32/download",
-        type = "tar.gz",
-        sha256 = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70",
-        strip_prefix = "openssl-0.10.32",
-        build_file = Label("//sys/complex/raze/remote:BUILD.openssl-0.10.32.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__openssl_probe__0_1_4",
-        url = "https://crates.io/api/v1/crates/openssl-probe/0.1.4/download",
-        type = "tar.gz",
-        sha256 = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a",
-        strip_prefix = "openssl-probe-0.1.4",
-        build_file = Label("//sys/complex/raze/remote:BUILD.openssl-probe-0.1.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__openssl_sys__0_9_60",
-        url = "https://crates.io/api/v1/crates/openssl-sys/0.9.60/download",
-        type = "tar.gz",
-        sha256 = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6",
-        strip_prefix = "openssl-sys-0.9.60",
-        build_file = Label("//sys/complex/raze/remote:BUILD.openssl-sys-0.9.60.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__percent_encoding__2_1_0",
-        url = "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
-        strip_prefix = "percent-encoding-2.1.0",
-        build_file = Label("//sys/complex/raze/remote:BUILD.percent-encoding-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__pkg_config__0_3_19",
-        url = "https://crates.io/api/v1/crates/pkg-config/0.3.19/download",
-        type = "tar.gz",
-        sha256 = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c",
-        strip_prefix = "pkg-config-0.3.19",
-        build_file = Label("//sys/complex/raze/remote:BUILD.pkg-config-0.3.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__tinyvec__1_3_1",
-        url = "https://crates.io/api/v1/crates/tinyvec/1.3.1/download",
-        type = "tar.gz",
-        sha256 = "848a1e1181b9f6753b5e96a092749e29b11d19ede67dfbbd6c7dc7e0f49b5338",
-        strip_prefix = "tinyvec-1.3.1",
-        build_file = Label("//sys/complex/raze/remote:BUILD.tinyvec-1.3.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__tinyvec_macros__0_1_0",
-        url = "https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download",
-        type = "tar.gz",
-        sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
-        strip_prefix = "tinyvec_macros-0.1.0",
-        build_file = Label("//sys/complex/raze/remote:BUILD.tinyvec_macros-0.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__unicode_bidi__0_3_5",
-        url = "https://crates.io/api/v1/crates/unicode-bidi/0.3.5/download",
-        type = "tar.gz",
-        sha256 = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0",
-        strip_prefix = "unicode-bidi-0.3.5",
-        build_file = Label("//sys/complex/raze/remote:BUILD.unicode-bidi-0.3.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__unicode_normalization__0_1_19",
-        url = "https://crates.io/api/v1/crates/unicode-normalization/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9",
-        strip_prefix = "unicode-normalization-0.1.19",
-        build_file = Label("//sys/complex/raze/remote:BUILD.unicode-normalization-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__url__2_2_2",
-        url = "https://crates.io/api/v1/crates/url/2.2.2/download",
-        type = "tar.gz",
-        sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
-        strip_prefix = "url-2.2.2",
-        build_file = Label("//sys/complex/raze/remote:BUILD.url-2.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "complex_sys__vcpkg__0_2_15",
-        url = "https://crates.io/api/v1/crates/vcpkg/0.2.15/download",
-        type = "tar.gz",
-        sha256 = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
-        strip_prefix = "vcpkg-0.2.15",
-        build_file = Label("//sys/complex/raze/remote:BUILD.vcpkg-0.2.15.bazel"),
-    )
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.autocfg-1.0.1.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.autocfg-1.0.1.bazel
deleted file mode 100644
index 5faa88d..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.autocfg-1.0.1.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "integers" with type "example" omitted
-
-# Unsupported target "paths" with type "example" omitted
-
-# Unsupported target "traits" with type "example" omitted
-
-# Unsupported target "versions" with type "example" omitted
-
-rust_library(
-    name = "autocfg",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "rustflags" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bitflags-1.2.1.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bitflags-1.2.1.bazel
deleted file mode 100644
index 09adb27..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.bitflags-1.2.1.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "bitflags_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.1",
-    # buildifier: leave-alone
-    deps = [
-        ":bitflags_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cc-1.0.69.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cc-1.0.69.bazel
deleted file mode 100644
index 2bc830d..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cc-1.0.69.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_gcc_shim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "jobserver",
-        "parallel",
-    ],
-    crate_root = "src/bin/gcc-shim.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    # buildifier: leave-alone
-    deps = [
-        ":cc",
-        "@complex_sys__jobserver__0_1_23//:jobserver",
-    ],
-)
-
-rust_library(
-    name = "cc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "jobserver",
-        "parallel",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__jobserver__0_1_23//:jobserver",
-    ],
-)
-
-# Unsupported target "cc_env" with type "test" omitted
-
-# Unsupported target "cflags" with type "test" omitted
-
-# Unsupported target "cxxflags" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index c2cdc13..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-0.3.2.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-0.3.2.bazel
deleted file mode 100644
index 598b30a..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-0.3.2.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "foreign_types",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.2",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__foreign_types_shared__0_1_1//:foreign_types_shared",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-shared-0.1.1.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-shared-0.1.1.bazel
deleted file mode 100644
index b084e4e..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.foreign-types-shared-0.1.1.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "foreign_types_shared",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.form_urlencoded-1.0.1.bazel
deleted file mode 100644
index 4e1962b..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.form_urlencoded-1.0.1.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "form_urlencoded",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.1",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__matches__0_1_8//:matches",
-        "@complex_sys__percent_encoding__2_1_0//:percent_encoding",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.git2-0.13.12.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.git2-0.13.12.bazel
deleted file mode 100644
index 2c84c59..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.git2-0.13.12.bazel
+++ /dev/null
@@ -1,115 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "add" with type "example" omitted
-
-# Unsupported target "blame" with type "example" omitted
-
-# Unsupported target "cat-file" with type "example" omitted
-
-# Unsupported target "clone" with type "example" omitted
-
-# Unsupported target "diff" with type "example" omitted
-
-# Unsupported target "fetch" with type "example" omitted
-
-# Unsupported target "init" with type "example" omitted
-
-# Unsupported target "log" with type "example" omitted
-
-# Unsupported target "ls-remote" with type "example" omitted
-
-# Unsupported target "pull" with type "example" omitted
-
-# Unsupported target "rev-list" with type "example" omitted
-
-# Unsupported target "rev-parse" with type "example" omitted
-
-# Unsupported target "status" with type "example" omitted
-
-# Unsupported target "tag" with type "example" omitted
-
-rust_library(
-    name = "git2",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "default",
-        "https",
-        "openssl-probe",
-        "openssl-sys",
-        "ssh",
-        "ssh_key_from_memory",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.13.12",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__bitflags__1_2_1//:bitflags",
-        "@complex_sys__libc__0_2_98//:libc",
-        "@complex_sys__libgit2_sys__0_12_21_1_1_0//:libgit2_sys",
-        "@complex_sys__log__0_4_14//:log",
-        "@complex_sys__url__2_2_2//:url",
-    ] + selects.with_or({
-        # cfg(all(unix, not(target_os = "macos")))
-        (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__openssl_probe__0_1_4//:openssl_probe",
-            "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.idna-0.2.3.bazel
deleted file mode 100644
index b558dba..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.idna-0.2.3.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "all" with type "bench" omitted
-
-rust_library(
-    name = "idna",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__matches__0_1_8//:matches",
-        "@complex_sys__unicode_bidi__0_3_5//:unicode_bidi",
-        "@complex_sys__unicode_normalization__0_1_19//:unicode_normalization",
-    ],
-)
-
-# Unsupported target "tests" with type "test" omitted
-
-# Unsupported target "unit" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.jobserver-0.1.23.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.jobserver-0.1.23.bazel
deleted file mode 100644
index bc6f007..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.jobserver-0.1.23.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "jobserver",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.23",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__libc__0_2_98//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "client" with type "test" omitted
-
-# Unsupported target "client-of-myself" with type "test" omitted
-
-# Unsupported target "helper" with type "test" omitted
-
-# Unsupported target "make-as-a-client" with type "test" omitted
-
-# Unsupported target "server" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index 440c1c9..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libc-0.2.98.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libc-0.2.98.bazel
deleted file mode 100644
index b3a4526..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libc-0.2.98.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libc_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.98",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.98",
-    # buildifier: leave-alone
-    deps = [
-        ":libc_build_script",
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel
deleted file mode 100644
index 63c87f1..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel
+++ /dev/null
@@ -1,149 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libgit2_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "https",
-        "libssh2-sys",
-        "openssl-sys",
-        "ssh",
-        "ssh_key_from_memory",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    links = "git2",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.12.21+1.1.0",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@complex_sys__cc__1_0_69//:cc",
-        "@complex_sys__libssh2_sys__0_2_21//:libssh2_sys",
-        "@complex_sys__libz_sys__1_1_3//:libz_sys",
-        "@complex_sys__pkg_config__0_3_19//:pkg_config",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "libgit2_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "https",
-        "libssh2-sys",
-        "openssl-sys",
-        "ssh",
-        "ssh_key_from_memory",
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.12.21+1.1.0",
-    # buildifier: leave-alone
-    deps = [
-        ":libgit2_sys_build_script",
-        "@complex_sys__libc__0_2_98//:libc",
-        "@complex_sys__libssh2_sys__0_2_21//:libssh2_sys",
-        "@complex_sys__libz_sys__1_1_3//:libz_sys",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libssh2-sys-0.2.21.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libssh2-sys-0.2.21.bazel
deleted file mode 100644
index dab53f1..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libssh2-sys-0.2.21.bazel
+++ /dev/null
@@ -1,156 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libssh2_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]) + [
-        "@openssl",
-    ],
-    edition = "2015",
-    links = "ssh2",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.21",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@complex_sys__cc__1_0_69//:cc",
-        "@complex_sys__libz_sys__1_1_3//:libz_sys",
-        "@complex_sys__pkg_config__0_3_19//:pkg_config",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@complex_sys__vcpkg__0_2_15//:vcpkg",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "libssh2_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.21",
-    # buildifier: leave-alone
-    deps = [
-        ":libssh2_sys_build_script",
-        "@complex_sys__libc__0_2_98//:libc",
-        "@complex_sys__libz_sys__1_1_3//:libz_sys",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libz-sys-1.1.3.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libz-sys-1.1.3.bazel
deleted file mode 100644
index 88c2b13..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.libz-sys-1.1.3.bazel
+++ /dev/null
@@ -1,108 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libz_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "libc",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    links = "z",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.3",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@complex_sys__cc__1_0_69//:cc",
-        "@complex_sys__pkg_config__0_3_19//:pkg_config",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@complex_sys__vcpkg__0_2_15//:vcpkg",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "libz_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "libc",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.3",
-    # buildifier: leave-alone
-    deps = [
-        ":libz_sys_build_script",
-        "@complex_sys__libc__0_2_98//:libc",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.log-0.4.14.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index dbea3b3..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "log_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "value" with type "bench" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        ":log_build_script",
-        "@complex_sys__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.matches-0.1.8.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.matches-0.1.8.bazel
deleted file mode 100644
index 2b9a32d..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.matches-0.1.8.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "matches",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "macro_use_one" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-0.10.32.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-0.10.32.bazel
deleted file mode 100644
index 5dda642..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-0.10.32.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "openssl_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.32",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-    ],
-)
-
-# Unsupported target "mk_certs" with type "example" omitted
-
-rust_library(
-    name = "openssl",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.32",
-    # buildifier: leave-alone
-    deps = [
-        ":openssl_build_script",
-        "@complex_sys__bitflags__1_2_1//:bitflags",
-        "@complex_sys__cfg_if__1_0_0//:cfg_if",
-        "@complex_sys__foreign_types__0_3_2//:foreign_types",
-        "@complex_sys__lazy_static__1_4_0//:lazy_static",
-        "@complex_sys__libc__0_2_98//:libc",
-        "@complex_sys__openssl_sys__0_9_60//:openssl_sys",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-probe-0.1.4.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-probe-0.1.4.bazel
deleted file mode 100644
index e8c551b..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-probe-0.1.4.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "openssl_probe",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.4",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-sys-0.9.60.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-sys-0.9.60.bazel
deleted file mode 100644
index c033c83..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.openssl-sys-0.9.60.bazel
+++ /dev/null
@@ -1,113 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "openssl_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-        "OPENSSL_DIR": "$(execpath @openssl//:gen_dir)",
-        "OPENSSL_STATIC": "1",
-    },
-    crate_features = [
-    ],
-    crate_root = "build/main.rs",
-    data = glob(["**"]) + [
-        "@openssl//:gen_dir",
-        "@openssl//:openssl",
-    ],
-    edition = "2015",
-    links = "openssl",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.60",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@complex_sys__autocfg__1_0_1//:autocfg",
-        "@complex_sys__cc__1_0_69//:cc",
-        "@complex_sys__pkg_config__0_3_19//:pkg_config",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@complex_sys__vcpkg__0_2_15//:vcpkg",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "openssl_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [] + ["@openssl//:openssl"],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.60",
-    # buildifier: leave-alone
-    deps = [
-        ":openssl_sys_build_script",
-        "@complex_sys__libc__0_2_98//:libc",
-        "@openssl//:openssl",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.percent-encoding-2.1.0.bazel
deleted file mode 100644
index c6db1ca..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.percent-encoding-2.1.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "percent_encoding",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.pkg-config-0.3.19.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.pkg-config-0.3.19.bazel
deleted file mode 100644
index 579c9ba..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.pkg-config-0.3.19.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "pkg_config",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.19",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec-1.3.1.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec-1.3.1.bazel
deleted file mode 100644
index ec3dc78..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec-1.3.1.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Zlib from expression "Zlib OR (Apache-2.0 OR MIT)"
-])
-
-# Generated Targets
-
-# Unsupported target "macros" with type "bench" omitted
-
-rust_library(
-    name = "tinyvec",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "default",
-        "tinyvec_macros",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.1",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__tinyvec_macros__0_1_0//:tinyvec_macros",
-    ],
-)
-
-# Unsupported target "arrayvec" with type "test" omitted
-
-# Unsupported target "tinyvec" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel
deleted file mode 100644
index 898618b..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR (Apache-2.0 OR Zlib)"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tinyvec_macros",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-bidi-0.3.5.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-bidi-0.3.5.bazel
deleted file mode 100644
index eb6eaa4..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-bidi-0.3.5.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unicode_bidi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.5",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__matches__0_1_8//:matches",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-normalization-0.1.19.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-normalization-0.1.19.bazel
deleted file mode 100644
index eacf38d..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.unicode-normalization-0.1.19.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "unicode_normalization",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__tinyvec__1_3_1//:tinyvec",
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.url-2.2.2.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.url-2.2.2.bazel
deleted file mode 100644
index 37b82d9..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.url-2.2.2.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "parse_url" with type "bench" omitted
-
-rust_library(
-    name = "url",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.2.2",
-    # buildifier: leave-alone
-    deps = [
-        "@complex_sys__form_urlencoded__1_0_1//:form_urlencoded",
-        "@complex_sys__idna__0_2_3//:idna",
-        "@complex_sys__matches__0_1_8//:matches",
-        "@complex_sys__percent_encoding__2_1_0//:percent_encoding",
-    ],
-)
-
-# Unsupported target "data" with type "test" omitted
-
-# Unsupported target "unit" with type "test" omitted
diff --git a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.vcpkg-0.2.15.bazel b/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.vcpkg-0.2.15.bazel
deleted file mode 100644
index 6a4c404..0000000
--- a/third_party/rules_rust/examples/sys/complex/raze/remote/BUILD.vcpkg-0.2.15.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//sys/complex/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "vcpkg",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.15",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/examples/sys/complex/repositories.bzl b/third_party/rules_rust/examples/sys/complex/repositories.bzl
deleted file mode 100644
index 1284191..0000000
--- a/third_party/rules_rust/examples/sys/complex/repositories.bzl
+++ /dev/null
@@ -1,10 +0,0 @@
-# buildifier: disable=module-docstring
-load("//sys/complex/raze:crates.bzl", "complex_sys_fetch_remote_crates")
-load("//third_party/openssl:openssl_repositories.bzl", "openssl_repositories")
-
-def complex_sys_repositories():
-    """Define repository dependencies for the `complex_sys` example"""
-
-    complex_sys_fetch_remote_crates()
-
-    openssl_repositories()
diff --git a/third_party/rules_rust/examples/sys/sys_deps.bzl b/third_party/rules_rust/examples/sys/sys_deps.bzl
index 31716e4..1825ad1 100644
--- a/third_party/rules_rust/examples/sys/sys_deps.bzl
+++ b/third_party/rules_rust/examples/sys/sys_deps.bzl
@@ -1,14 +1,20 @@
-# buildifier: disable=module-docstring
-load("//sys/basic/raze:crates.bzl", "basic_sys_fetch_remote_crates")
-load("//sys/complex:repositories.bzl", "complex_sys_repositories")
+"""Dependencies for the `@rules_rust_examples//sys` package"""
+
+load("//sys/basic/3rdparty/crates:defs.bzl", basic_crate_repositories = "crate_repositories")
+load("//sys/complex/3rdparty/crates:defs.bzl", complex_crate_repositories = "crate_repositories")
+load("//third_party/openssl:openssl_repositories.bzl", "openssl_repositories")
 
 def sys_deps():
     """This macro loads dependencies for the `sys` crate examples
 
     Commonly `*-sys` crates are built on top of some existing library and
     will have a number of dependencies. The examples here use
-    [cargo-raze](https://github.com/google/cargo-raze) to gather these
-    dependencies and make them avaialble in the workspace.
+    [crate_universe](https://bazelbuild.github.io/rules_rust/crate_universe.html)
+    to gather these dependencies and make them avaialble in the workspace.
     """
-    basic_sys_fetch_remote_crates()
-    complex_sys_repositories()
+
+    # Required by `//sys/complex`
+    openssl_repositories()
+
+    basic_crate_repositories()
+    complex_crate_repositories()
diff --git a/third_party/rules_rust/examples/wasm/BUILD.bazel b/third_party/rules_rust/examples/wasm/BUILD.bazel
index e499c31..8fe0654 100644
--- a/third_party/rules_rust/examples/wasm/BUILD.bazel
+++ b/third_party/rules_rust/examples/wasm/BUILD.bazel
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# buildifier: disable=module-docstring
 load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test")
 load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_shared_library")
 load("@rules_rust//wasm_bindgen:wasm_bindgen.bzl", "rust_wasm_bindgen")
@@ -24,7 +23,7 @@
     srcs = ["main.rs"],
     edition = "2018",
     deps = [
-        "@rules_rust//wasm_bindgen/raze:wasm_bindgen",
+        "@rules_rust//wasm_bindgen/3rdparty:wasm_bindgen",
     ],
 )
 
@@ -33,7 +32,7 @@
     srcs = ["main.rs"],
     edition = "2018",
     deps = [
-        "@rules_rust//wasm_bindgen/raze:wasm_bindgen",
+        "@rules_rust//wasm_bindgen/3rdparty:wasm_bindgen",
     ],
 )
 
diff --git a/third_party/rules_rust/proto/3rdparty/BUILD.bazel b/third_party/rules_rust/proto/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..cb1e2a7
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/BUILD.bazel
@@ -0,0 +1,67 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "lazy_static": [crate.annotation(
+            rustc_flags = [
+                "--cfg=lazy_static_heap_impl",
+            ],
+        )],
+        "protobuf": [crate.annotation(
+            patch_args = ["-p1"],
+            patches = ["@rules_rust//proto/3rdparty/patches:protobuf-2.8.2.patch"],
+        )],
+    },
+    cargo_lockfile = "Cargo.Bazel.lock",
+    mode = "remote",
+    packages = {
+        "grpc": crate.spec(
+            version = "0.6.2",
+        ),
+        "grpc-compiler": crate.spec(
+            version = "0.6.2",
+        ),
+        "log": crate.spec(
+            version = "0.4, 0.4.7",
+        ),
+        "protobuf": crate.spec(
+            features = ["with-bytes"],
+            version = "2.8.2",
+        ),
+        "protobuf-codegen": crate.spec(
+            version = "2.8.2",
+        ),
+        "tls-api": crate.spec(
+            version = "0.1.22",
+        ),
+        "tls-api-stub": crate.spec(
+            version = "0.1.22",
+        ),
+    },
+    repository_name = "rules_rust_proto",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasm_bindgen_cli",
+    actual = "@rules_rust_wasm_bindgen_cli",
+    tags = ["manual"],
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "wasm_bindgen",
+    actual = "//wasm_bindgen/3rdparty/crates:wasm-bindgen",
+    visibility = ["//visibility:public"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//proto/3rdparty/crates:defs.bzl",
+        "//proto/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//proto:__pkg__"],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/proto/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..e2eaa42
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,792 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "bytes"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+dependencies = [
+ "byteorder",
+ "iovec",
+]
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils",
+ "lazy_static",
+ "maybe-uninit",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "grpc",
+ "grpc-compiler",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf",
+ "protobuf-codegen",
+ "tls-api",
+ "tls-api-stub",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+dependencies = [
+ "bitflags",
+ "fuchsia-zircon-sys",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+[[package]]
+name = "futures"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
+
+[[package]]
+name = "futures-cpupool"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
+dependencies = [
+ "futures",
+ "num_cpus",
+]
+
+[[package]]
+name = "grpc"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aaf1d741fe6f3413f1f9f71b99f5e4e26776d563475a8a53ce53a73a8534c1d"
+dependencies = [
+ "base64",
+ "bytes",
+ "futures",
+ "futures-cpupool",
+ "httpbis",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "protobuf",
+ "tls-api",
+ "tls-api-stub",
+ "tokio-core",
+ "tokio-io",
+ "tokio-tls-api",
+]
+
+[[package]]
+name = "grpc-compiler"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "907274ce8ee7b40a0d0b0db09022ea22846a47cfb1fc8ad2c983c70001b4ffb1"
+dependencies = [
+ "protobuf",
+ "protobuf-codegen",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "httpbis"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614"
+dependencies = [
+ "bytes",
+ "futures",
+ "futures-cpupool",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "net2",
+ "tls-api",
+ "tls-api-stub",
+ "tokio-core",
+ "tokio-io",
+ "tokio-timer 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-tls-api",
+ "tokio-uds 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unix_socket",
+ "void",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "lock_api"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+dependencies = [
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memoffset"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mio"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+dependencies = [
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fuchsia-zircon",
+ "fuchsia-zircon-sys",
+ "iovec",
+ "kernel32-sys",
+ "libc",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "miow",
+ "net2",
+ "slab 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "mio-uds"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+dependencies = [
+ "iovec",
+ "libc",
+ "mio",
+]
+
+[[package]]
+name = "miow"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+dependencies = [
+ "kernel32-sys",
+ "net2",
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "ws2_32-sys",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
+dependencies = [
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+ "rustc_version",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+dependencies = [
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cloudabi",
+ "libc",
+ "redox_syscall",
+ "rustc_version",
+ "smallvec",
+ "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "protobuf"
+version = "2.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70731852eec72c56d11226c8a5f96ad5058a3dab73647ca5f7ee351e464f2571"
+dependencies = [
+ "bytes",
+]
+
+[[package]]
+name = "protobuf-codegen"
+version = "2.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d74b9cbbf2ac9a7169c85a3714ec16c51ee9ec7cfd511549527e9a7df720795"
+dependencies = [
+ "protobuf",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "scoped-tls"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
+[[package]]
+name = "slab"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
+
+[[package]]
+name = "slab"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
+dependencies = [
+ "maybe-uninit",
+]
+
+[[package]]
+name = "tls-api"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "049c03787a0595182357fbd487577947f4351b78ce20c3668f6d49f17feb13d1"
+dependencies = [
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tls-api-stub"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9a0cc8c149724db9de7d73a0e1bc80b1a74f5394f08c6f301e11f9c35fa061e"
+dependencies = [
+ "tls-api",
+ "void",
+]
+
+[[package]]
+name = "tokio"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+dependencies = [
+ "bytes",
+ "futures",
+ "mio",
+ "num_cpus",
+ "tokio-codec",
+ "tokio-current-thread",
+ "tokio-executor",
+ "tokio-fs",
+ "tokio-io",
+ "tokio-reactor",
+ "tokio-sync",
+ "tokio-tcp",
+ "tokio-threadpool",
+ "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-udp",
+ "tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tokio-codec"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
+dependencies = [
+ "bytes",
+ "futures",
+ "tokio-io",
+]
+
+[[package]]
+name = "tokio-core"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87b1395334443abca552f63d4f61d0486f12377c2ba8b368e523f89e828cffd4"
+dependencies = [
+ "bytes",
+ "futures",
+ "iovec",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio",
+ "scoped-tls",
+ "tokio",
+ "tokio-executor",
+ "tokio-io",
+ "tokio-reactor",
+ "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tokio-current-thread"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
+dependencies = [
+ "futures",
+ "tokio-executor",
+]
+
+[[package]]
+name = "tokio-executor"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
+dependencies = [
+ "crossbeam-utils",
+ "futures",
+]
+
+[[package]]
+name = "tokio-fs"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
+dependencies = [
+ "futures",
+ "tokio-io",
+ "tokio-threadpool",
+]
+
+[[package]]
+name = "tokio-io"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+dependencies = [
+ "bytes",
+ "futures",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tokio-reactor"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
+dependencies = [
+ "crossbeam-utils",
+ "futures",
+ "lazy_static",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio",
+ "num_cpus",
+ "parking_lot",
+ "slab 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-executor",
+ "tokio-io",
+ "tokio-sync",
+]
+
+[[package]]
+name = "tokio-sync"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
+dependencies = [
+ "fnv",
+ "futures",
+]
+
+[[package]]
+name = "tokio-tcp"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
+dependencies = [
+ "bytes",
+ "futures",
+ "iovec",
+ "mio",
+ "tokio-io",
+ "tokio-reactor",
+]
+
+[[package]]
+name = "tokio-threadpool"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-queue",
+ "crossbeam-utils",
+ "futures",
+ "lazy_static",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num_cpus",
+ "slab 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-executor",
+]
+
+[[package]]
+name = "tokio-timer"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6131e780037787ff1b3f8aad9da83bca02438b72277850dd6ad0d455e0e20efc"
+dependencies = [
+ "futures",
+ "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tokio-timer"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
+dependencies = [
+ "crossbeam-utils",
+ "futures",
+ "slab 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tokio-executor",
+]
+
+[[package]]
+name = "tokio-tls-api"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68d0e040d5b1f4cfca70ec4f371229886a5de5bb554d272a4a8da73004a7b2c9"
+dependencies = [
+ "futures",
+ "tls-api",
+ "tokio-io",
+]
+
+[[package]]
+name = "tokio-udp"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
+dependencies = [
+ "bytes",
+ "futures",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-reactor",
+]
+
+[[package]]
+name = "tokio-uds"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65ae5d255ce739e8537221ed2942e0445f4b3b813daebac1c0050ddaaa3587f9"
+dependencies = [
+ "bytes",
+ "futures",
+ "iovec",
+ "libc",
+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio",
+ "mio-uds",
+ "tokio-core",
+ "tokio-io",
+]
+
+[[package]]
+name = "tokio-uds"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
+dependencies = [
+ "bytes",
+ "futures",
+ "iovec",
+ "libc",
+ "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+ "mio",
+ "mio-uds",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-reactor",
+]
+
+[[package]]
+name = "unix_socket"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564"
+dependencies = [
+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc",
+]
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+dependencies = [
+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-build",
+]
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..de041c0
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.base64-0.9.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.base64-0.9.3.bazel
new file mode 100644
index 0000000..5a21a94
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.base64-0.9.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "base64",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__byteorder-1.4.3//:byteorder",
+            "@rules_rust_proto__safemem-0.3.3//:safemem",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..075d512
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,89 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "grpc",
+    actual = "@rules_rust_proto__grpc-0.6.2//:grpc",
+    tags = ["manual"],
+)
+
+alias(
+    name = "grpc-compiler",
+    actual = "@rules_rust_proto__grpc-compiler-0.6.2//:grpc_compiler",
+    tags = ["manual"],
+)
+
+alias(
+    name = "log",
+    actual = "@rules_rust_proto__log-0.4.17//:log",
+    tags = ["manual"],
+)
+
+alias(
+    name = "protobuf",
+    actual = "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+    tags = ["manual"],
+)
+
+alias(
+    name = "protobuf-codegen",
+    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen",
+    tags = ["manual"],
+)
+
+alias(
+    name = "tls-api",
+    actual = "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+    tags = ["manual"],
+)
+
+alias(
+    name = "tls-api-stub",
+    actual = "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "grpc-compiler__protoc-gen-rust-grpc",
+    actual = "@rules_rust_proto__grpc-compiler-0.6.2//:protoc-gen-rust-grpc__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "protobuf-codegen__protoc-gen-rust",
+    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protoc-gen-rust__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "protobuf-codegen__protobuf-bin-gen-rust-do-not-use",
+    actual = "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf-bin-gen-rust-do-not-use__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..376a421
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.byteorder-1.4.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
new file mode 100644
index 0000000..fac5324
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "byteorder",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.bytes-0.4.12.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bytes-0.4.12.bazel
new file mode 100644
index 0000000..67d4a2d
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.bytes-0.4.12.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__byteorder-1.4.3//:byteorder",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
new file mode 100644
index 0000000..74edf2a
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-0.1.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..ac048f6
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.cloudabi-0.0.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cloudabi-0.0.3.bazel
new file mode 100644
index 0000000..5fc5e2c
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.cloudabi-0.0.3.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-2-Clause
+# ])
+
+rust_library(
+    name = "cloudabi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bitflags",
+        "default",
+    ],
+    crate_root = "cloudabi.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.0.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bitflags-1.3.2//:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-deque-0.7.4.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-deque-0.7.4.bazel
new file mode 100644
index 0000000..6e074d5
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-deque-0.7.4.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_deque",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__crossbeam-epoch-0.8.2//:crossbeam_epoch",
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__maybe-uninit-2.0.0//:maybe_uninit",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-epoch-0.8.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-epoch-0.8.2.bazel
new file mode 100644
index 0000000..fade294
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-epoch-0.8.2.bazel
@@ -0,0 +1,187 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_epoch",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__crossbeam-epoch-0.8.2//:build_script_build",
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_proto__maybe-uninit-2.0.0//:maybe_uninit",
+            "@rules_rust_proto__memoffset-0.5.6//:memoffset",
+            "@rules_rust_proto__scopeguard-1.1.0//:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "crossbeam-epoch_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.8.2",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "crossbeam-epoch_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-queue-0.2.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-queue-0.2.3.bazel
new file mode 100644
index 0000000..54b721f
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-queue-0.2.3.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0 AND BSD-2-Clause
+# ])
+
+rust_library(
+    name = "crossbeam_queue",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__maybe-uninit-2.0.0//:maybe_uninit",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-utils-0.7.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-utils-0.7.2.bazel
new file mode 100644
index 0000000..c43a991
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.crossbeam-utils-0.7.2.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_utils",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:build_script_build",
+            "@rules_rust_proto__lazy_static-1.4.0//:lazy_static",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "crossbeam-utils_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.7.2",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "crossbeam-utils_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.fnv-1.0.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fnv-1.0.7.bazel
new file mode 100644
index 0000000..e6e2d1e
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fnv-1.0.7.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 / MIT
+# ])
+
+rust_library(
+    name = "fnv",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-0.3.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-0.3.3.bazel
new file mode 100644
index 0000000..2081666
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-0.3.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "fuchsia_zircon",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bitflags-1.3.2//:bitflags",
+            "@rules_rust_proto__fuchsia-zircon-sys-0.3.3//:fuchsia_zircon_sys",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-sys-0.3.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-sys-0.3.3.bazel
new file mode 100644
index 0000000..94be648
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.fuchsia-zircon-sys-0.3.3.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "fuchsia_zircon_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-0.1.31.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-0.1.31.bazel
new file mode 100644
index 0000000..baf3817
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-0.1.31.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "futures",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_std",
+        "with-deprecated",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.31",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-cpupool-0.1.8.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-cpupool-0.1.8.bazel
new file mode 100644
index 0000000..74399d4
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.futures-cpupool-0.1.8.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "futures_cpupool",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "with-deprecated",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__num_cpus-1.13.1//:num_cpus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-0.6.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-0.6.2.bazel
new file mode 100644
index 0000000..fe04e70
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-0.6.2.bazel
@@ -0,0 +1,102 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "grpc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__base64-0.9.3//:base64",
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__futures-cpupool-0.1.8//:futures_cpupool",
+            "@rules_rust_proto__httpbis-0.7.0//:httpbis",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+            "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
+            "@rules_rust_proto__tokio-core-0.1.18//:tokio_core",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-tls-api-0.1.22//:tokio_tls_api",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-compiler-0.6.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-compiler-0.6.2.bazel
new file mode 100644
index 0000000..33e256e
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.grpc-compiler-0.6.2.bazel
@@ -0,0 +1,161 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "grpc_compiler",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+            "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "protoc-gen-rust-grpc__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/protoc-gen-rust-grpc.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.2",
+    deps = [
+        ":grpc_compiler",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+            "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..c0640ca
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.httpbis-0.7.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.httpbis-0.7.0.bazel
new file mode 100644
index 0000000..53f14d4
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.httpbis-0.7.0.bazel
@@ -0,0 +1,227 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "httpbis",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.0",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__tokio-uds-0.1.7//:tokio_uds",
+            "@rules_rust_proto__unix_socket-0.5.0//:unix_socket",
+
+            # Common Deps
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__futures-cpupool-0.1.8//:futures_cpupool",
+            "@rules_rust_proto__httpbis-0.7.0//:build_script_build",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
+            "@rules_rust_proto__tokio-core-0.1.18//:tokio_core",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-timer-0.1.2//:tokio_timer",
+            "@rules_rust_proto__tokio-tls-api-0.1.22//:tokio_tls_api",
+            "@rules_rust_proto__void-1.0.2//:void",
+        ],
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__futures-cpupool-0.1.8//:futures_cpupool",
+            "@rules_rust_proto__httpbis-0.7.0//:build_script_build",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
+            "@rules_rust_proto__tokio-core-0.1.18//:tokio_core",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-timer-0.1.2//:tokio_timer",
+            "@rules_rust_proto__tokio-tls-api-0.1.22//:tokio_tls_api",
+            "@rules_rust_proto__void-1.0.2//:void",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "httpbis_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.7.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "httpbis_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.iovec-0.1.4.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.iovec-0.1.4.bazel
new file mode 100644
index 0000000..bdebbff
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.iovec-0.1.4.bazel
@@ -0,0 +1,117 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "iovec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.4",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.kernel32-sys-0.2.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.kernel32-sys-0.2.2.bazel
new file mode 100644
index 0000000..5e79eb1
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.kernel32-sys-0.2.2.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "kernel32",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__kernel32-sys-0.2.2//:build_script_build",
+            "@rules_rust_proto__winapi-0.2.8//:winapi",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "kernel32-sys_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.2",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-build-0.1.1//:build",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "kernel32-sys_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
new file mode 100644
index 0000000..d05a5bd
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "lazy_static",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=lazy_static_heap_impl",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..e720b0c
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.lock_api-0.3.4.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.lock_api-0.3.4.bazel
new file mode 100644
index 0000000..eeee52f
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.lock_api-0.3.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__scopeguard-1.1.0//:scopeguard",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.3.9.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.3.9.bazel
new file mode 100644
index 0000000..600cf71
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.3.9.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__log-0.4.17//:log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..ca62ec0
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_proto__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.maybe-uninit-2.0.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.maybe-uninit-2.0.0.bazel
new file mode 100644
index 0000000..239aa81
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.maybe-uninit-2.0.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "maybe_uninit",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__maybe-uninit-2.0.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "maybe-uninit_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.0.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "maybe-uninit_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.memoffset-0.5.6.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.memoffset-0.5.6.bazel
new file mode 100644
index 0000000..ecb0a43
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.memoffset-0.5.6.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "memoffset",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.6",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__memoffset-0.5.6//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memoffset_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.5.6",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memoffset_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-0.6.23.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-0.6.23.bazel
new file mode 100644
index 0000000..c3ed309
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-0.6.23.bazel
@@ -0,0 +1,151 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "mio",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "with-deprecated",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.23",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "fuchsia")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "fuchsia")'
+        # Skipped dependencies: [{"id":"fuchsia-zircon 0.3.3","target":"fuchsia_zircon"},{"id":"fuchsia-zircon-sys 0.3.3","target":"fuchsia_zircon_sys"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__kernel32-sys-0.2.2//:kernel32",
+            "@rules_rust_proto__miow-0.2.2//:miow",
+            "@rules_rust_proto__winapi-0.2.8//:winapi",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+        ],
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-uds-0.6.8.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-uds-0.6.8.bazel
new file mode 100644
index 0000000..3593e95
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.mio-uds-0.6.8.bazel
@@ -0,0 +1,119 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "mio_uds",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.8",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__libc-0.2.126//:libc",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.miow-0.2.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.miow-0.2.2.bazel
new file mode 100644
index 0000000..3305a39
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.miow-0.2.2.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "miow",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__kernel32-sys-0.2.2//:kernel32",
+            "@rules_rust_proto__net2-0.2.37//:net2",
+            "@rules_rust_proto__winapi-0.2.8//:winapi",
+            "@rules_rust_proto__ws2_32-sys-0.2.1//:ws2_32",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.net2-0.2.37.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.net2-0.2.37.bazel
new file mode 100644
index 0000000..5062966
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.net2-0.2.37.bazel
@@ -0,0 +1,133 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "net2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "duration",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.37",
+    deps = [
+    ] + select_with_or({
+        # cfg(any(target_os = "redox", unix, target_os = "wasi"))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
new file mode 100644
index 0000000..eb66e90
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
@@ -0,0 +1,125 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_cpus",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.1",
+    deps = [
+    ] + select_with_or({
+        # cfg(all(any(target_arch = "x86_64", target_arch = "aarch64"), target_os = "hermit"))
+        #
+        # No supported platform triples for cfg: 'cfg(all(any(target_arch = "x86_64", target_arch = "aarch64"), target_os = "hermit"))'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(not(windows))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-unknown-unknown",
+            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot-0.9.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot-0.9.0.bazel
new file mode 100644
index 0000000..2563828
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot-0.9.0.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "parking_lot",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__lock_api-0.3.4//:lock_api",
+            "@rules_rust_proto__parking_lot-0.9.0//:build_script_build",
+            "@rules_rust_proto__parking_lot_core-0.6.2//:parking_lot_core",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "parking_lot_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.9.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__rustc_version-0.2.3//:rustc_version",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "parking_lot_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot_core-0.6.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot_core-0.6.2.bazel
new file mode 100644
index 0000000..32d0707
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.parking_lot_core-0.6.2.bazel
@@ -0,0 +1,230 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "parking_lot_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.2",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "cloudabi")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "cloudabi")'
+        # Skipped dependencies: [{"id":"cloudabi 0.0.3","target":"cloudabi"}]
+        #
+        # cfg(target_os = "redox")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "redox")'
+        # Skipped dependencies: [{"id":"redox_syscall 0.1.57","target":"syscall"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__parking_lot_core-0.6.2//:build_script_build",
+            "@rules_rust_proto__smallvec-0.6.14//:smallvec",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__parking_lot_core-0.6.2//:build_script_build",
+            "@rules_rust_proto__smallvec-0.6.14//:smallvec",
+        ],
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__parking_lot_core-0.6.2//:build_script_build",
+            "@rules_rust_proto__smallvec-0.6.14//:smallvec",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "parking_lot_core_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.6.2",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__rustc_version-0.2.3//:rustc_version",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "parking_lot_core_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-2.8.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-2.8.2.bazel
new file mode 100644
index 0000000..aa85d0b
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-2.8.2.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "protobuf",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bytes",
+        "with-bytes",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.8.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__protobuf-2.8.2//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "protobuf_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bytes",
+        "with-bytes",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.8.2",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "protobuf_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-codegen-2.8.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-codegen-2.8.2.bazel
new file mode 100644
index 0000000..5a63331
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.protobuf-codegen-2.8.2.bazel
@@ -0,0 +1,226 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "protobuf_codegen",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.8.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "protoc-gen-rust__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/protoc-gen-rust.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.8.2",
+    deps = [
+        ":protobuf_codegen",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "protobuf-bin-gen-rust-do-not-use__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/protobuf-bin-gen-rust-do-not-use.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.8.2",
+    deps = [
+        ":protobuf_codegen",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.redox_syscall-0.1.57.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.redox_syscall-0.1.57.bazel
new file mode 100644
index 0000000..7a078cb
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.redox_syscall-0.1.57.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.57",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.rustc_version-0.2.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.rustc_version-0.2.3.bazel
new file mode 100644
index 0000000..9780f59
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.rustc_version-0.2.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "rustc_version",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__semver-0.9.0//:semver",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.safemem-0.3.3.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.safemem-0.3.3.bazel
new file mode 100644
index 0000000..02ef8a6
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.safemem-0.3.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "safemem",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.scoped-tls-0.1.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.scoped-tls-0.1.2.bazel
new file mode 100644
index 0000000..e764fae
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.scoped-tls-0.1.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "scoped_tls",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel
new file mode 100644
index 0000000..53c44b7
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "scopeguard",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-0.9.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-0.9.0.bazel
new file mode 100644
index 0000000..ae3d4a0
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-0.9.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "semver",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__semver-parser-0.7.0//:semver_parser",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-parser-0.7.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-parser-0.7.0.bazel
new file mode 100644
index 0000000..de4e9d4
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.semver-parser-0.7.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "semver_parser",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.3.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.3.0.bazel
new file mode 100644
index 0000000..d4998ed
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.3.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "slab",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.4.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.4.7.bazel
new file mode 100644
index 0000000..feb5d93
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.slab-0.4.7.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "slab",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__slab-0.4.7//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "slab_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.7",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "slab_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.smallvec-0.6.14.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.smallvec-0.6.14.bazel
new file mode 100644
index 0000000..a350125
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.smallvec-0.6.14.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.14",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__maybe-uninit-2.0.0//:maybe_uninit",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-0.1.22.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-0.1.22.bazel
new file mode 100644
index 0000000..0dd4b51
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-0.1.22.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tls_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__log-0.4.17//:log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-stub-0.1.22.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-stub-0.1.22.bazel
new file mode 100644
index 0000000..3189886
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tls-api-stub-0.1.22.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tls_api_stub",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "@rules_rust_proto__void-1.0.2//:void",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-0.1.22.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-0.1.22.bazel
new file mode 100644
index 0000000..c33ef7b
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-0.1.22.bazel
@@ -0,0 +1,173 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "bytes",
+        "codec",
+        "default",
+        "fs",
+        "io",
+        "mio",
+        "num_cpus",
+        "reactor",
+        "rt-full",
+        "sync",
+        "tcp",
+        "timer",
+        "tokio-codec",
+        "tokio-current-thread",
+        "tokio-executor",
+        "tokio-fs",
+        "tokio-io",
+        "tokio-reactor",
+        "tokio-sync",
+        "tokio-tcp",
+        "tokio-threadpool",
+        "tokio-timer",
+        "tokio-udp",
+        "tokio-uds",
+        "udp",
+        "uds",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_proto__tokio-uds-0.2.7//:tokio_uds",
+
+            # Common Deps
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_proto__tokio-codec-0.1.2//:tokio_codec",
+            "@rules_rust_proto__tokio-current-thread-0.1.7//:tokio_current_thread",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+            "@rules_rust_proto__tokio-fs-0.1.7//:tokio_fs",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+            "@rules_rust_proto__tokio-sync-0.1.8//:tokio_sync",
+            "@rules_rust_proto__tokio-tcp-0.1.4//:tokio_tcp",
+            "@rules_rust_proto__tokio-threadpool-0.1.18//:tokio_threadpool",
+            "@rules_rust_proto__tokio-timer-0.2.13//:tokio_timer",
+            "@rules_rust_proto__tokio-udp-0.1.6//:tokio_udp",
+        ],
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_proto__tokio-codec-0.1.2//:tokio_codec",
+            "@rules_rust_proto__tokio-current-thread-0.1.7//:tokio_current_thread",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+            "@rules_rust_proto__tokio-fs-0.1.7//:tokio_fs",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+            "@rules_rust_proto__tokio-sync-0.1.8//:tokio_sync",
+            "@rules_rust_proto__tokio-tcp-0.1.4//:tokio_tcp",
+            "@rules_rust_proto__tokio-threadpool-0.1.18//:tokio_threadpool",
+            "@rules_rust_proto__tokio-timer-0.2.13//:tokio_timer",
+            "@rules_rust_proto__tokio-udp-0.1.6//:tokio_udp",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-codec-0.1.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-codec-0.1.2.bazel
new file mode 100644
index 0000000..26a586c
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-codec-0.1.2.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_codec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-core-0.1.18.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-core-0.1.18.bazel
new file mode 100644
index 0000000..a7532c8
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-core-0.1.18.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tokio_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__scoped-tls-0.1.2//:scoped_tls",
+            "@rules_rust_proto__tokio-0.1.22//:tokio",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+            "@rules_rust_proto__tokio-timer-0.2.13//:tokio_timer",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-current-thread-0.1.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-current-thread-0.1.7.bazel
new file mode 100644
index 0000000..91dc929
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-current-thread-0.1.7.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_current_thread",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-executor-0.1.10.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-executor-0.1.10.bazel
new file mode 100644
index 0000000..7a0f588
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-executor-0.1.10.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_executor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-fs-0.1.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-fs-0.1.7.bazel
new file mode 100644
index 0000000..42b51dc
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-fs-0.1.7.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_fs",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-threadpool-0.1.18//:tokio_threadpool",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-io-0.1.13.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-io-0.1.13.bazel
new file mode 100644
index 0000000..36fb632
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-io-0.1.13.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_io",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__log-0.4.17//:log",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-reactor-0.1.12.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-reactor-0.1.12.bazel
new file mode 100644
index 0000000..f2eec69
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-reactor-0.1.12.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_reactor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_proto__parking_lot-0.9.0//:parking_lot",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-sync-0.1.8//:tokio_sync",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-sync-0.1.8.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-sync-0.1.8.bazel
new file mode 100644
index 0000000..34566c0
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-sync-0.1.8.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_sync",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__fnv-1.0.7//:fnv",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tcp-0.1.4.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tcp-0.1.4.bazel
new file mode 100644
index 0000000..743f8b0
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tcp-0.1.4.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_tcp",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-threadpool-0.1.18.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-threadpool-0.1.18.bazel
new file mode 100644
index 0000000..cafb9cb
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-threadpool-0.1.18.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_threadpool",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__crossbeam-deque-0.7.4//:crossbeam_deque",
+            "@rules_rust_proto__crossbeam-queue-0.2.3//:crossbeam_queue",
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.1.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.1.2.bazel
new file mode 100644
index 0000000..79c91e9
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.1.2.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tokio_timer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__slab-0.3.0//:slab",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.2.13.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.2.13.bazel
new file mode 100644
index 0000000..6c2f050
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-timer-0.2.13.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_timer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__crossbeam-utils-0.7.2//:crossbeam_utils",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__slab-0.4.7//:slab",
+            "@rules_rust_proto__tokio-executor-0.1.10//:tokio_executor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tls-api-0.1.22.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tls-api-0.1.22.bazel
new file mode 100644
index 0000000..b4a36f2
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-tls-api-0.1.22.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tokio_tls_api",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.22",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-udp-0.1.6.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-udp-0.1.6.bazel
new file mode 100644
index 0000000..ae02c80
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-udp-0.1.6.bazel
@@ -0,0 +1,97 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_udp",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.6",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__tokio-codec-0.1.2//:tokio_codec",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.1.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.1.7.bazel
new file mode 100644
index 0000000..c27f778
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.1.7.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "tokio_uds",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__libc-0.2.126//:libc",
+            "@rules_rust_proto__log-0.3.9//:log",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__mio-uds-0.6.8//:mio_uds",
+            "@rules_rust_proto__tokio-core-0.1.18//:tokio_core",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.2.7.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.2.7.bazel
new file mode 100644
index 0000000..8d0235f
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.tokio-uds-0.2.7.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "tokio_uds",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__bytes-0.4.12//:bytes",
+            "@rules_rust_proto__futures-0.1.31//:futures",
+            "@rules_rust_proto__iovec-0.1.4//:iovec",
+            "@rules_rust_proto__libc-0.2.126//:libc",
+            "@rules_rust_proto__log-0.4.17//:log",
+            "@rules_rust_proto__mio-0.6.23//:mio",
+            "@rules_rust_proto__mio-uds-0.6.8//:mio_uds",
+            "@rules_rust_proto__tokio-codec-0.1.2//:tokio_codec",
+            "@rules_rust_proto__tokio-io-0.1.13//:tokio_io",
+            "@rules_rust_proto__tokio-reactor-0.1.12//:tokio_reactor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.unix_socket-0.5.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.unix_socket-0.5.0.bazel
new file mode 100644
index 0000000..f78fb1f
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.unix_socket-0.5.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unix_socket",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__cfg-if-0.1.10//:cfg_if",
+            "@rules_rust_proto__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.void-1.0.2.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.void-1.0.2.bazel
new file mode 100644
index 0000000..cd0e4bc
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.void-1.0.2.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "void",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.2.8.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.2.8.bazel
new file mode 100644
index 0000000..ff2af66
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.2.8.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..70452ae
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,206 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "errhandlingapi",
+        "handleapi",
+        "minwindef",
+        "ntstatus",
+        "winbase",
+        "winerror",
+        "winnt",
+        "winsock2",
+        "ws2def",
+        "ws2ipdef",
+        "ws2tcpip",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-0.3.9//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "errhandlingapi",
+        "handleapi",
+        "minwindef",
+        "ntstatus",
+        "winbase",
+        "winerror",
+        "winnt",
+        "winsock2",
+        "ws2def",
+        "ws2ipdef",
+        "ws2tcpip",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-build-0.1.1.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-build-0.1.1.bazel
new file mode 100644
index 0000000..90d09f2
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-build-0.1.1.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "build",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..0ff44fd
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-i686-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-i686-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..a4fb59f
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-x86_64-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-x86_64-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/BUILD.ws2_32-sys-0.2.1.bazel b/third_party/rules_rust/proto/3rdparty/crates/BUILD.ws2_32-sys-0.2.1.bazel
new file mode 100644
index 0000000..591c218
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/BUILD.ws2_32-sys-0.2.1.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "ws2_32",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-0.2.8//:winapi",
+            "@rules_rust_proto__ws2_32-sys-0.2.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "ws2_32-sys_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_proto__winapi-build-0.1.1//:build",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "ws2_32-sys_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/proto/3rdparty/crates/crates.bzl b/third_party/rules_rust/proto/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..5a694ea
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//proto/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_proto",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//proto/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/proto/3rdparty/crates/defs.bzl b/third_party/rules_rust/proto/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..b19e46e
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/crates/defs.bzl
@@ -0,0 +1,1143 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //proto/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "grpc": "@rules_rust_proto__grpc-0.6.2//:grpc",
+            "grpc-compiler": "@rules_rust_proto__grpc-compiler-0.6.2//:grpc_compiler",
+            "log": "@rules_rust_proto__log-0.4.17//:log",
+            "protobuf": "@rules_rust_proto__protobuf-2.8.2//:protobuf",
+            "protobuf-codegen": "@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen",
+            "tls-api": "@rules_rust_proto__tls-api-0.1.22//:tls_api",
+            "tls-api-stub": "@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
+    "cfg(any(target_os = \"redox\", unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(target_os = \"cloudabi\")": [],
+    "cfg(target_os = \"fuchsia\")": [],
+    "cfg(target_os = \"redox\")": [],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__base64-0.9.3",
+        sha256 = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/base64/0.9.3/download"],
+        strip_prefix = "base64-0.9.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.base64-0.9.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__byteorder-1.4.3",
+        sha256 = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/byteorder/1.4.3/download"],
+        strip_prefix = "byteorder-1.4.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.byteorder-1.4.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__bytes-0.4.12",
+        sha256 = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bytes/0.4.12/download"],
+        strip_prefix = "bytes-0.4.12",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.bytes-0.4.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__cfg-if-0.1.10",
+        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/0.1.10/download"],
+        strip_prefix = "cfg-if-0.1.10",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.cfg-if-0.1.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__cloudabi-0.0.3",
+        sha256 = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cloudabi/0.0.3/download"],
+        strip_prefix = "cloudabi-0.0.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.cloudabi-0.0.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__crossbeam-deque-0.7.4",
+        sha256 = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-deque/0.7.4/download"],
+        strip_prefix = "crossbeam-deque-0.7.4",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.crossbeam-deque-0.7.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__crossbeam-epoch-0.8.2",
+        sha256 = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-epoch/0.8.2/download"],
+        strip_prefix = "crossbeam-epoch-0.8.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.crossbeam-epoch-0.8.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__crossbeam-queue-0.2.3",
+        sha256 = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-queue/0.2.3/download"],
+        strip_prefix = "crossbeam-queue-0.2.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.crossbeam-queue-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__crossbeam-utils-0.7.2",
+        sha256 = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-utils/0.7.2/download"],
+        strip_prefix = "crossbeam-utils-0.7.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.crossbeam-utils-0.7.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__fnv-1.0.7",
+        sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/fnv/1.0.7/download"],
+        strip_prefix = "fnv-1.0.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.fnv-1.0.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__fuchsia-zircon-0.3.3",
+        sha256 = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/fuchsia-zircon/0.3.3/download"],
+        strip_prefix = "fuchsia-zircon-0.3.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.fuchsia-zircon-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__fuchsia-zircon-sys-0.3.3",
+        sha256 = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/fuchsia-zircon-sys/0.3.3/download"],
+        strip_prefix = "fuchsia-zircon-sys-0.3.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.fuchsia-zircon-sys-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__futures-0.1.31",
+        sha256 = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/futures/0.1.31/download"],
+        strip_prefix = "futures-0.1.31",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.futures-0.1.31.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__futures-cpupool-0.1.8",
+        sha256 = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/futures-cpupool/0.1.8/download"],
+        strip_prefix = "futures-cpupool-0.1.8",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.futures-cpupool-0.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__grpc-0.6.2",
+        sha256 = "2aaf1d741fe6f3413f1f9f71b99f5e4e26776d563475a8a53ce53a73a8534c1d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/grpc/0.6.2/download"],
+        strip_prefix = "grpc-0.6.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.grpc-0.6.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__grpc-compiler-0.6.2",
+        sha256 = "907274ce8ee7b40a0d0b0db09022ea22846a47cfb1fc8ad2c983c70001b4ffb1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/grpc-compiler/0.6.2/download"],
+        strip_prefix = "grpc-compiler-0.6.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.grpc-compiler-0.6.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__httpbis-0.7.0",
+        sha256 = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/httpbis/0.7.0/download"],
+        strip_prefix = "httpbis-0.7.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.httpbis-0.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__iovec-0.1.4",
+        sha256 = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/iovec/0.1.4/download"],
+        strip_prefix = "iovec-0.1.4",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.iovec-0.1.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__kernel32-sys-0.2.2",
+        sha256 = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/kernel32-sys/0.2.2/download"],
+        strip_prefix = "kernel32-sys-0.2.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.kernel32-sys-0.2.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__lazy_static-1.4.0",
+        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        strip_prefix = "lazy_static-1.4.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__lock_api-0.3.4",
+        sha256 = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lock_api/0.3.4/download"],
+        strip_prefix = "lock_api-0.3.4",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.lock_api-0.3.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__log-0.3.9",
+        sha256 = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.3.9/download"],
+        strip_prefix = "log-0.3.9",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.log-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__maybe-uninit-2.0.0",
+        sha256 = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/maybe-uninit/2.0.0/download"],
+        strip_prefix = "maybe-uninit-2.0.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.maybe-uninit-2.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__memoffset-0.5.6",
+        sha256 = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memoffset/0.5.6/download"],
+        strip_prefix = "memoffset-0.5.6",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.memoffset-0.5.6.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__mio-0.6.23",
+        sha256 = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/mio/0.6.23/download"],
+        strip_prefix = "mio-0.6.23",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.mio-0.6.23.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__mio-uds-0.6.8",
+        sha256 = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/mio-uds/0.6.8/download"],
+        strip_prefix = "mio-uds-0.6.8",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.mio-uds-0.6.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__miow-0.2.2",
+        sha256 = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/miow/0.2.2/download"],
+        strip_prefix = "miow-0.2.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.miow-0.2.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__net2-0.2.37",
+        sha256 = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/net2/0.2.37/download"],
+        strip_prefix = "net2-0.2.37",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.net2-0.2.37.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__num_cpus-1.13.1",
+        sha256 = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/num_cpus/1.13.1/download"],
+        strip_prefix = "num_cpus-1.13.1",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.num_cpus-1.13.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__parking_lot-0.9.0",
+        sha256 = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/parking_lot/0.9.0/download"],
+        strip_prefix = "parking_lot-0.9.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.parking_lot-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__parking_lot_core-0.6.2",
+        sha256 = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/parking_lot_core/0.6.2/download"],
+        strip_prefix = "parking_lot_core-0.6.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.parking_lot_core-0.6.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__protobuf-2.8.2",
+        patch_args = [
+            "-p1",
+        ],
+        patches = [
+            "@rules_rust//proto/3rdparty/patches:protobuf-2.8.2.patch",
+        ],
+        sha256 = "70731852eec72c56d11226c8a5f96ad5058a3dab73647ca5f7ee351e464f2571",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/protobuf/2.8.2/download"],
+        strip_prefix = "protobuf-2.8.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.protobuf-2.8.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__protobuf-codegen-2.8.2",
+        sha256 = "3d74b9cbbf2ac9a7169c85a3714ec16c51ee9ec7cfd511549527e9a7df720795",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/protobuf-codegen/2.8.2/download"],
+        strip_prefix = "protobuf-codegen-2.8.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.protobuf-codegen-2.8.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__redox_syscall-0.1.57",
+        sha256 = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.1.57/download"],
+        strip_prefix = "redox_syscall-0.1.57",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.redox_syscall-0.1.57.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__rustc_version-0.2.3",
+        sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rustc_version/0.2.3/download"],
+        strip_prefix = "rustc_version-0.2.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.rustc_version-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__safemem-0.3.3",
+        sha256 = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/safemem/0.3.3/download"],
+        strip_prefix = "safemem-0.3.3",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.safemem-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__scoped-tls-0.1.2",
+        sha256 = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/scoped-tls/0.1.2/download"],
+        strip_prefix = "scoped-tls-0.1.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.scoped-tls-0.1.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__scopeguard-1.1.0",
+        sha256 = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/scopeguard/1.1.0/download"],
+        strip_prefix = "scopeguard-1.1.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.scopeguard-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__semver-0.9.0",
+        sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/semver/0.9.0/download"],
+        strip_prefix = "semver-0.9.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.semver-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__semver-parser-0.7.0",
+        sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/semver-parser/0.7.0/download"],
+        strip_prefix = "semver-parser-0.7.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.semver-parser-0.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__slab-0.3.0",
+        sha256 = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/slab/0.3.0/download"],
+        strip_prefix = "slab-0.3.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.slab-0.3.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__slab-0.4.7",
+        sha256 = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/slab/0.4.7/download"],
+        strip_prefix = "slab-0.4.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.slab-0.4.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__smallvec-0.6.14",
+        sha256 = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/smallvec/0.6.14/download"],
+        strip_prefix = "smallvec-0.6.14",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.smallvec-0.6.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tls-api-0.1.22",
+        sha256 = "049c03787a0595182357fbd487577947f4351b78ce20c3668f6d49f17feb13d1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tls-api/0.1.22/download"],
+        strip_prefix = "tls-api-0.1.22",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tls-api-0.1.22.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tls-api-stub-0.1.22",
+        sha256 = "c9a0cc8c149724db9de7d73a0e1bc80b1a74f5394f08c6f301e11f9c35fa061e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tls-api-stub/0.1.22/download"],
+        strip_prefix = "tls-api-stub-0.1.22",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tls-api-stub-0.1.22.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-0.1.22",
+        sha256 = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio/0.1.22/download"],
+        strip_prefix = "tokio-0.1.22",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-0.1.22.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-codec-0.1.2",
+        sha256 = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-codec/0.1.2/download"],
+        strip_prefix = "tokio-codec-0.1.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-codec-0.1.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-core-0.1.18",
+        sha256 = "87b1395334443abca552f63d4f61d0486f12377c2ba8b368e523f89e828cffd4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-core/0.1.18/download"],
+        strip_prefix = "tokio-core-0.1.18",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-core-0.1.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-current-thread-0.1.7",
+        sha256 = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-current-thread/0.1.7/download"],
+        strip_prefix = "tokio-current-thread-0.1.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-current-thread-0.1.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-executor-0.1.10",
+        sha256 = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-executor/0.1.10/download"],
+        strip_prefix = "tokio-executor-0.1.10",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-executor-0.1.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-fs-0.1.7",
+        sha256 = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-fs/0.1.7/download"],
+        strip_prefix = "tokio-fs-0.1.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-fs-0.1.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-io-0.1.13",
+        sha256 = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-io/0.1.13/download"],
+        strip_prefix = "tokio-io-0.1.13",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-io-0.1.13.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-reactor-0.1.12",
+        sha256 = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-reactor/0.1.12/download"],
+        strip_prefix = "tokio-reactor-0.1.12",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-reactor-0.1.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-sync-0.1.8",
+        sha256 = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-sync/0.1.8/download"],
+        strip_prefix = "tokio-sync-0.1.8",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-sync-0.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-tcp-0.1.4",
+        sha256 = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-tcp/0.1.4/download"],
+        strip_prefix = "tokio-tcp-0.1.4",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-tcp-0.1.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-threadpool-0.1.18",
+        sha256 = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-threadpool/0.1.18/download"],
+        strip_prefix = "tokio-threadpool-0.1.18",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-threadpool-0.1.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-timer-0.1.2",
+        sha256 = "6131e780037787ff1b3f8aad9da83bca02438b72277850dd6ad0d455e0e20efc",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-timer/0.1.2/download"],
+        strip_prefix = "tokio-timer-0.1.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-timer-0.1.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-timer-0.2.13",
+        sha256 = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-timer/0.2.13/download"],
+        strip_prefix = "tokio-timer-0.2.13",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-timer-0.2.13.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-tls-api-0.1.22",
+        sha256 = "68d0e040d5b1f4cfca70ec4f371229886a5de5bb554d272a4a8da73004a7b2c9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-tls-api/0.1.22/download"],
+        strip_prefix = "tokio-tls-api-0.1.22",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-tls-api-0.1.22.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-udp-0.1.6",
+        sha256 = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-udp/0.1.6/download"],
+        strip_prefix = "tokio-udp-0.1.6",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-udp-0.1.6.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-uds-0.1.7",
+        sha256 = "65ae5d255ce739e8537221ed2942e0445f4b3b813daebac1c0050ddaaa3587f9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-uds/0.1.7/download"],
+        strip_prefix = "tokio-uds-0.1.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-uds-0.1.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__tokio-uds-0.2.7",
+        sha256 = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tokio-uds/0.2.7/download"],
+        strip_prefix = "tokio-uds-0.2.7",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.tokio-uds-0.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__unix_socket-0.5.0",
+        sha256 = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unix_socket/0.5.0/download"],
+        strip_prefix = "unix_socket-0.5.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.unix_socket-0.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__void-1.0.2",
+        sha256 = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/void/1.0.2/download"],
+        strip_prefix = "void-1.0.2",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.void-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__winapi-0.2.8",
+        sha256 = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.2.8/download"],
+        strip_prefix = "winapi-0.2.8",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.winapi-0.2.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__winapi-build-0.1.1",
+        sha256 = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-build/0.1.1/download"],
+        strip_prefix = "winapi-build-0.1.1",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.winapi-build-0.1.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_proto__ws2_32-sys-0.2.1",
+        sha256 = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ws2_32-sys/0.2.1/download"],
+        strip_prefix = "ws2_32-sys-0.2.1",
+        build_file = Label("@rules_rust//proto/3rdparty/crates:BUILD.ws2_32-sys-0.2.1.bazel"),
+    )
diff --git a/third_party/rules_rust/proto/patches/BUILD.bazel b/third_party/rules_rust/proto/3rdparty/patches/BUILD.bazel
similarity index 100%
rename from third_party/rules_rust/proto/patches/BUILD.bazel
rename to third_party/rules_rust/proto/3rdparty/patches/BUILD.bazel
diff --git a/third_party/rules_rust/proto/3rdparty/patches/README.md b/third_party/rules_rust/proto/3rdparty/patches/README.md
new file mode 100644
index 0000000..56e910b
--- /dev/null
+++ b/third_party/rules_rust/proto/3rdparty/patches/README.md
@@ -0,0 +1,27 @@
+# Patches
+
+Details related to patches required for the rules_rust protobuf rules.
+
+## protobuf-2.8.2
+
+The protobuf crate from the rust-protobuf repository introduced a build.rs
+script in the 2.x.x series. This generates a small version.rs file that would be
+[included into lib.rs](https://github.com/stepancheg/rust-protobuf/blob/v2.8/protobuf/src/lib.rs#L122).
+However, the build.rs file requires a number of environment variables, normally
+provided by cargo to the build file. Cargo raze does not provide these
+variables. The resulting code includes a version string and version identifier.
+The version string is then used by protobuf-codegen to generate code refering to
+the identifier in the protobuf library. The use can be seen
+[here](https://github.com/stepancheg/rust-protobuf/blob/v2.8/protobuf-codegen/src/lib.rs#L160).
+This is to enforce at compile time that the version of protobuf-codegen matches
+the version of the protobuf crate.
+
+For this crate, the patch that is applied is replacing the include! macro with
+what would be generated by the build.rs file. This lets us avoid running the
+build file altogether, at the expense of having to update the patch for every
+version.
+
+
+## com_google_protobuf-v3.10.0-bzl_visibility
+
+The patches here provide the required visibility to `*.bzl` files used by the rules defined in `com_google_protobuf`.
diff --git a/third_party/rules_rust/proto/patches/com_google_protobuf-v3.10.0-bzl_visibility.patch b/third_party/rules_rust/proto/3rdparty/patches/com_google_protobuf-v3.10.0-bzl_visibility.patch
similarity index 100%
rename from third_party/rules_rust/proto/patches/com_google_protobuf-v3.10.0-bzl_visibility.patch
rename to third_party/rules_rust/proto/3rdparty/patches/com_google_protobuf-v3.10.0-bzl_visibility.patch
diff --git a/third_party/rules_rust/proto/raze/patch/protobuf-2.8.2.patch b/third_party/rules_rust/proto/3rdparty/patches/protobuf-2.8.2.patch
similarity index 100%
rename from third_party/rules_rust/proto/raze/patch/protobuf-2.8.2.patch
rename to third_party/rules_rust/proto/3rdparty/patches/protobuf-2.8.2.patch
diff --git a/third_party/rules_rust/proto/BUILD.bazel b/third_party/rules_rust/proto/BUILD.bazel
index 1b7fa26..298c615 100644
--- a/third_party/rules_rust/proto/BUILD.bazel
+++ b/third_party/rules_rust/proto/BUILD.bazel
@@ -6,37 +6,47 @@
 
 alias(
     name = "protoc_gen_rust",
-    actual = "//proto/raze:cargo_bin_protoc_gen_rust",
+    actual = "//proto/3rdparty/crates:protobuf-codegen__protoc-gen-rust",
 )
 
 alias(
     name = "protoc_gen_rust_grpc",
-    actual = "//proto/raze:cargo_bin_protoc_gen_rust_grpc",
+    actual = "//proto/3rdparty/crates:grpc-compiler__protoc-gen-rust-grpc",
 )
 
-toolchain_type(name = "toolchain")
+toolchain_type(
+    name = "toolchain_type",
+)
+
+alias(
+    name = "toolchain",
+    actual = "toolchain_type",
+    deprecation = "instead use `@rules_rust//proto:toolchain_type`",
+    tags = ["manual"],
+)
 
 rust_binary(
     name = "optional_output_wrapper",
     srcs = ["optional_output_wrapper.rs"],
+    edition = "2018",
     visibility = ["//visibility:public"],
 )
 
 toolchain(
     name = "default-proto-toolchain",
     toolchain = ":default-proto-toolchain-impl",
-    toolchain_type = "@rules_rust//proto:toolchain",
+    toolchain_type = "@rules_rust//proto:toolchain_type",
 )
 
-rust_proto_toolchain(name = "default-proto-toolchain-impl")
+rust_proto_toolchain(
+    name = "default-proto-toolchain-impl",
+    edition = "2018",
+)
 
 bzl_library(
     name = "bzl_lib",
-    srcs = glob(["**/*.bzl"]) + ["//proto/raze:crates.bzl"],
-)
-
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//proto:bzl_lib` target instead",
+    srcs = glob(["**/*.bzl"]),
+    deps = [
+        "//proto/3rdparty:bzl_lib",
+    ],
 )
diff --git a/third_party/rules_rust/proto/patches/README.md b/third_party/rules_rust/proto/patches/README.md
deleted file mode 100644
index 7d4ca11..0000000
--- a/third_party/rules_rust/proto/patches/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# @rules_rust//proto patches
-
-The patches here provide the required visibility to `*.bzl` files used by the rules defined in `com_google_protobuf`.
diff --git a/third_party/rules_rust/proto/proto.bzl b/third_party/rules_rust/proto/proto.bzl
index ea239b0..b5e65a3 100644
--- a/third_party/rules_rust/proto/proto.bzl
+++ b/third_party/rules_rust/proto/proto.bzl
@@ -44,7 +44,7 @@
 load("//rust/private:rustc.bzl", "rustc_compile_action")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:utils.bzl", "compute_crate_name", "determine_output_hash", "find_toolchain", "transform_deps")
+load("//rust/private:utils.bzl", "can_build_metadata", "compute_crate_name", "determine_output_hash", "find_toolchain", "transform_deps")
 
 RustProtoInfo = provider(
     doc = "Rust protobuf provider info",
@@ -186,7 +186,7 @@
     """
 
     # Create all the source in a specific folder
-    proto_toolchain = ctx.toolchains[Label("//proto:toolchain")]
+    proto_toolchain = ctx.toolchains[Label("//proto:toolchain_type")]
     output_dir = "%s.%s.rust" % (crate_name, "grpc" if is_grpc else "proto")
 
     # Generate the proto stubs
@@ -212,6 +212,13 @@
         crate_name,
         output_hash,
     ))
+    rust_metadata = None
+    if can_build_metadata(toolchain, ctx, "rlib"):
+        rust_metadata = ctx.actions.declare_file("%s/lib%s-%s.rmeta" % (
+            output_dir,
+            crate_name,
+            output_hash,
+        ))
 
     # Gather all dependencies for compilation
     compile_action_deps = depset(
@@ -234,6 +241,7 @@
             proc_macro_deps = depset([]),
             aliases = {},
             output = rust_lib,
+            metadata = rust_metadata,
             edition = proto_toolchain.edition,
             rustc_env = {},
             is_test = False,
@@ -319,8 +327,8 @@
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//proto:toolchain")),
-        str(Label("//rust:toolchain")),
+        str(Label("//proto:toolchain_type")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     # TODO: Remove once (bazelbuild/bazel#11584) is closed and the rules use
@@ -397,8 +405,8 @@
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//proto:toolchain")),
-        str(Label("//rust:toolchain")),
+        str(Label("//proto:toolchain_type")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     # TODO: Remove once (bazelbuild/bazel#11584) is closed and the rules use
diff --git a/third_party/rules_rust/proto/raze/BUILD.bazel b/third_party/rules_rust/proto/raze/BUILD.bazel
index d23e6cb..42a33d1 100644
--- a/third_party/rules_rust/proto/raze/BUILD.bazel
+++ b/third_party/rules_rust/proto/raze/BUILD.bazel
@@ -1,76 +1,56 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
 package(default_visibility = ["//visibility:public"])
 
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
 # Aliased targets
 alias(
     name = "grpc",
-    actual = "@rules_rust_proto__grpc__0_6_2//:grpc",
+    actual = "//proto/3rdparty/crates:grpc",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:grpc",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
 
 alias(
     name = "cargo_bin_protoc_gen_rust_grpc",
-    actual = "@rules_rust_proto__grpc_compiler__0_6_2//:cargo_bin_protoc_gen_rust_grpc",
+    actual = "//proto/3rdparty/crates:grpc-compiler__protoc-gen-rust-grpc",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:grpc-compiler__protoc-gen-rust-grpc",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
 
 alias(
     name = "grpc_compiler",
-    actual = "@rules_rust_proto__grpc_compiler__0_6_2//:grpc_compiler",
+    actual = "//proto/3rdparty/crates:grpc_compiler",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:grpc_compiler",
     tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "log",
-    actual = "@rules_rust_proto__log__0_4_6//:log",
-    tags = [
-        "cargo-raze",
         "manual",
     ],
 )
 
 alias(
     name = "protobuf",
-    actual = "@rules_rust_proto__protobuf__2_8_2//:protobuf",
+    actual = "//proto/3rdparty/crates:protobuf",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:protobuf",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
 
 alias(
     name = "cargo_bin_protoc_gen_rust",
-    actual = "@rules_rust_proto__protobuf_codegen__2_8_2//:cargo_bin_protoc_gen_rust",
+    actual = "//proto/3rdparty/crates:protobuf-codegen__protoc-gen-rust",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:protobuf-codegen__protoc-gen-rust",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
 
 alias(
     name = "protobuf_codegen",
-    actual = "@rules_rust_proto__protobuf_codegen__2_8_2//:protobuf_codegen",
+    actual = "//proto/3rdparty/crates:protobuf-codegen",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:protobuf-codegen",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
@@ -78,25 +58,8 @@
 alias(
     name = "tls_api",
     actual = "@rules_rust_proto__tls_api__0_1_22//:tls_api",
+    deprecation = "Instead, use @rules_rust//proto/3rdparty/crates:tls_api",
     tags = [
-        "cargo-raze",
         "manual",
     ],
 )
-
-alias(
-    name = "tls_api_stub",
-    actual = "@rules_rust_proto__tls_api_stub__0_1_22//:tls_api_stub",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/proto/raze/Cargo.lock b/third_party/rules_rust/proto/raze/Cargo.lock
deleted file mode 100644
index 2c6b3d0..0000000
--- a/third_party/rules_rust/proto/raze/Cargo.lock
+++ /dev/null
@@ -1,782 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "autocfg"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "base64"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "byteorder"
-version = "1.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "bytes"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "cloudabi"
-version = "0.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "crossbeam-queue"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "fake_lib"
-version = "0.0.1"
-dependencies = [
- "grpc 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "grpc-compiler 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf-codegen 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api-stub 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "fuchsia-zircon"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "fuchsia-zircon-sys"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "futures"
-version = "0.1.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "futures-cpupool"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "grpc"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "httpbis 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api-stub 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "grpc-compiler"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "protobuf 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "protobuf-codegen 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "httpbis"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api-stub 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-timer 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-uds 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "kernel32-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "libc"
-version = "0.2.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "lock_api"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "log"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "log"
-version = "0.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "maybe-uninit"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "memoffset"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "mio"
-version = "0.6.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "mio-uds"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "miow"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "net2"
-version = "0.2.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "hermit-abi 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "protobuf"
-version = "2.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "protobuf-codegen"
-version = "2.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "protobuf 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "rustc_version"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "scoped-tls"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "semver"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "slab"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "slab"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "smallvec"
-version = "0.6.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tls-api"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tls-api-stub"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-uds 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-codec"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-core"
-version = "0.1.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-current-thread"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-executor"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-fs"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-io"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-reactor"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-sync"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-tcp"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-threadpool"
-version = "0.1.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-timer"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-timer"
-version = "0.2.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-tls-api"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-udp"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-uds"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "tokio-uds"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
- "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "unix_socket"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
- "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "void"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[[package]]
-name = "winapi-build"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
-[[package]]
-name = "ws2_32-sys"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-dependencies = [
- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-]
-
-[metadata]
-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
-"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
-"checksum crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
-"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
-"checksum grpc 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2aaf1d741fe6f3413f1f9f71b99f5e4e26776d563475a8a53ce53a73a8534c1d"
-"checksum grpc-compiler 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "907274ce8ee7b40a0d0b0db09022ea22846a47cfb1fc8ad2c983c70001b4ffb1"
-"checksum hermit-abi 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15"
-"checksum httpbis 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614"
-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-"checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
-"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
-"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-"checksum memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
-"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
-"checksum protobuf 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "70731852eec72c56d11226c8a5f96ad5058a3dab73647ca5f7ee351e464f2571"
-"checksum protobuf-codegen 2.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3d74b9cbbf2ac9a7169c85a3714ec16c51ee9ec7cfd511549527e9a7df720795"
-"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
-"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-"checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23"
-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
-"checksum tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "049c03787a0595182357fbd487577947f4351b78ce20c3668f6d49f17feb13d1"
-"checksum tls-api-stub 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "c9a0cc8c149724db9de7d73a0e1bc80b1a74f5394f08c6f301e11f9c35fa061e"
-"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
-"checksum tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
-"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
-"checksum tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
-"checksum tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
-"checksum tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
-"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
-"checksum tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
-"checksum tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
-"checksum tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
-"checksum tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
-"checksum tokio-timer 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6131e780037787ff1b3f8aad9da83bca02438b72277850dd6ad0d455e0e20efc"
-"checksum tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
-"checksum tokio-tls-api 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "68d0e040d5b1f4cfca70ec4f371229886a5de5bb554d272a4a8da73004a7b2c9"
-"checksum tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
-"checksum tokio-uds 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "65ae5d255ce739e8537221ed2942e0445f4b3b813daebac1c0050ddaaa3587f9"
-"checksum tokio-uds 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5076db410d6fdc6523df7595447629099a1fdc47b3d9f896220780fa48faf798"
-"checksum unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564"
-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
diff --git a/third_party/rules_rust/proto/raze/Cargo.toml b/third_party/rules_rust/proto/raze/Cargo.toml
deleted file mode 100644
index 773554d..0000000
--- a/third_party/rules_rust/proto/raze/Cargo.toml
+++ /dev/null
@@ -1,47 +0,0 @@
-
-[package]
-name = "fake_rules_rust_proto"
-version = "0.0.1"
-
-[lib]
-path = "fake_rules_rust_proto.rs"
-
-[dependencies]
-# Newer version of protobuf have been released, but the 0.6.2 release of
-# grpc-rust doesn't work with 2.10 or above, and the 2.9 release pulled.
-protobuf = { version = "2.8.2", features = ["with-bytes"] }
-protobuf-codegen = "2.8.2"
-grpc = "0.6.2"
-grpc-compiler = "0.6.2"
-# Newer version of tls-api have been released, but the 0.1 release is still
-# required by grpc 0.6.2, so continue to use 0.1 of tls-api here.
-tls-api = "0.1.22"
-tls-api-stub = "0.1.22"
-# This needs to be specified, as log 0.3 depends on log 0.4, and log 0.4.7 and
-# up break log 0.3, which is needed by tokio-uds-0.1.7 (which is required by
-# httpbis 0.7.0, which hasn't had a version released in a while).  grpc
-# requires httpbis.
-log = "0.4, <0.4.7"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//proto/raze"
-gen_workspace_prefix = "rules_rust_proto"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = false
-
-[package.metadata.raze.crates.lazy_static.'1.4.0']
-additional_flags = [
-  "--cfg=lazy_static_heap_impl",
-]
-
-[package.metadata.raze.crates.protobuf.'2.8.2']
-patches = ["@rules_rust//proto/raze/patch:protobuf-2.8.2.patch"]
-patch_args = ["-p1"]
-
-[package.metadata.raze.crates.protobuf-codegen.'2.8.2']
-extra_aliased_targets = ["cargo_bin_protoc_gen_rust"]
-
-[package.metadata.raze.crates.grpc-compiler.'0.6.2']
-extra_aliased_targets = ["cargo_bin_protoc_gen_rust_grpc"]
diff --git a/third_party/rules_rust/proto/raze/crates.bzl b/third_party/rules_rust/proto/raze/crates.bzl
deleted file mode 100644
index 3ec2de1..0000000
--- a/third_party/rules_rust/proto/raze/crates.bzl
+++ /dev/null
@@ -1,768 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_proto_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__autocfg__1_0_0",
-        url = "https://crates.io/api/v1/crates/autocfg/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d",
-        strip_prefix = "autocfg-1.0.0",
-        build_file = Label("//proto/raze/remote:BUILD.autocfg-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__base64__0_9_3",
-        url = "https://crates.io/api/v1/crates/base64/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643",
-        strip_prefix = "base64-0.9.3",
-        build_file = Label("//proto/raze/remote:BUILD.base64-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__bitflags__1_2_1",
-        url = "https://crates.io/api/v1/crates/bitflags/1.2.1/download",
-        type = "tar.gz",
-        sha256 = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693",
-        strip_prefix = "bitflags-1.2.1",
-        build_file = Label("//proto/raze/remote:BUILD.bitflags-1.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__byteorder__1_3_4",
-        url = "https://crates.io/api/v1/crates/byteorder/1.3.4/download",
-        type = "tar.gz",
-        sha256 = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de",
-        strip_prefix = "byteorder-1.3.4",
-        build_file = Label("//proto/raze/remote:BUILD.byteorder-1.3.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__bytes__0_4_12",
-        url = "https://crates.io/api/v1/crates/bytes/0.4.12/download",
-        type = "tar.gz",
-        sha256 = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c",
-        strip_prefix = "bytes-0.4.12",
-        build_file = Label("//proto/raze/remote:BUILD.bytes-0.4.12.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__cfg_if__0_1_10",
-        url = "https://crates.io/api/v1/crates/cfg-if/0.1.10/download",
-        type = "tar.gz",
-        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
-        strip_prefix = "cfg-if-0.1.10",
-        build_file = Label("//proto/raze/remote:BUILD.cfg-if-0.1.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__cloudabi__0_0_3",
-        url = "https://crates.io/api/v1/crates/cloudabi/0.0.3/download",
-        type = "tar.gz",
-        sha256 = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f",
-        strip_prefix = "cloudabi-0.0.3",
-        build_file = Label("//proto/raze/remote:BUILD.cloudabi-0.0.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__crossbeam_deque__0_7_3",
-        url = "https://crates.io/api/v1/crates/crossbeam-deque/0.7.3/download",
-        type = "tar.gz",
-        sha256 = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285",
-        strip_prefix = "crossbeam-deque-0.7.3",
-        build_file = Label("//proto/raze/remote:BUILD.crossbeam-deque-0.7.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__crossbeam_epoch__0_8_2",
-        url = "https://crates.io/api/v1/crates/crossbeam-epoch/0.8.2/download",
-        type = "tar.gz",
-        sha256 = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace",
-        strip_prefix = "crossbeam-epoch-0.8.2",
-        build_file = Label("//proto/raze/remote:BUILD.crossbeam-epoch-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__crossbeam_queue__0_2_1",
-        url = "https://crates.io/api/v1/crates/crossbeam-queue/0.2.1/download",
-        type = "tar.gz",
-        sha256 = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db",
-        strip_prefix = "crossbeam-queue-0.2.1",
-        build_file = Label("//proto/raze/remote:BUILD.crossbeam-queue-0.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__crossbeam_utils__0_7_2",
-        url = "https://crates.io/api/v1/crates/crossbeam-utils/0.7.2/download",
-        type = "tar.gz",
-        sha256 = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8",
-        strip_prefix = "crossbeam-utils-0.7.2",
-        build_file = Label("//proto/raze/remote:BUILD.crossbeam-utils-0.7.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__fnv__1_0_6",
-        url = "https://crates.io/api/v1/crates/fnv/1.0.6/download",
-        type = "tar.gz",
-        sha256 = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3",
-        strip_prefix = "fnv-1.0.6",
-        build_file = Label("//proto/raze/remote:BUILD.fnv-1.0.6.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__fuchsia_zircon__0_3_3",
-        url = "https://crates.io/api/v1/crates/fuchsia-zircon/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82",
-        strip_prefix = "fuchsia-zircon-0.3.3",
-        build_file = Label("//proto/raze/remote:BUILD.fuchsia-zircon-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__fuchsia_zircon_sys__0_3_3",
-        url = "https://crates.io/api/v1/crates/fuchsia-zircon-sys/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7",
-        strip_prefix = "fuchsia-zircon-sys-0.3.3",
-        build_file = Label("//proto/raze/remote:BUILD.fuchsia-zircon-sys-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__futures__0_1_29",
-        url = "https://crates.io/api/v1/crates/futures/0.1.29/download",
-        type = "tar.gz",
-        sha256 = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef",
-        strip_prefix = "futures-0.1.29",
-        build_file = Label("//proto/raze/remote:BUILD.futures-0.1.29.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__futures_cpupool__0_1_8",
-        url = "https://crates.io/api/v1/crates/futures-cpupool/0.1.8/download",
-        type = "tar.gz",
-        sha256 = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4",
-        strip_prefix = "futures-cpupool-0.1.8",
-        build_file = Label("//proto/raze/remote:BUILD.futures-cpupool-0.1.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__grpc__0_6_2",
-        url = "https://crates.io/api/v1/crates/grpc/0.6.2/download",
-        type = "tar.gz",
-        sha256 = "2aaf1d741fe6f3413f1f9f71b99f5e4e26776d563475a8a53ce53a73a8534c1d",
-        strip_prefix = "grpc-0.6.2",
-        build_file = Label("//proto/raze/remote:BUILD.grpc-0.6.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__grpc_compiler__0_6_2",
-        url = "https://crates.io/api/v1/crates/grpc-compiler/0.6.2/download",
-        type = "tar.gz",
-        sha256 = "907274ce8ee7b40a0d0b0db09022ea22846a47cfb1fc8ad2c983c70001b4ffb1",
-        strip_prefix = "grpc-compiler-0.6.2",
-        build_file = Label("//proto/raze/remote:BUILD.grpc-compiler-0.6.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__hermit_abi__0_1_11",
-        url = "https://crates.io/api/v1/crates/hermit-abi/0.1.11/download",
-        type = "tar.gz",
-        sha256 = "8a0d737e0f947a1864e93d33fdef4af8445a00d1ed8dc0c8ddb73139ea6abf15",
-        strip_prefix = "hermit-abi-0.1.11",
-        build_file = Label("//proto/raze/remote:BUILD.hermit-abi-0.1.11.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__httpbis__0_7_0",
-        url = "https://crates.io/api/v1/crates/httpbis/0.7.0/download",
-        type = "tar.gz",
-        sha256 = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614",
-        strip_prefix = "httpbis-0.7.0",
-        build_file = Label("//proto/raze/remote:BUILD.httpbis-0.7.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__iovec__0_1_4",
-        url = "https://crates.io/api/v1/crates/iovec/0.1.4/download",
-        type = "tar.gz",
-        sha256 = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e",
-        strip_prefix = "iovec-0.1.4",
-        build_file = Label("//proto/raze/remote:BUILD.iovec-0.1.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__kernel32_sys__0_2_2",
-        url = "https://crates.io/api/v1/crates/kernel32-sys/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d",
-        strip_prefix = "kernel32-sys-0.2.2",
-        build_file = Label("//proto/raze/remote:BUILD.kernel32-sys-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//proto/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__libc__0_2_69",
-        url = "https://crates.io/api/v1/crates/libc/0.2.69/download",
-        type = "tar.gz",
-        sha256 = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005",
-        strip_prefix = "libc-0.2.69",
-        build_file = Label("//proto/raze/remote:BUILD.libc-0.2.69.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__lock_api__0_3_4",
-        url = "https://crates.io/api/v1/crates/lock_api/0.3.4/download",
-        type = "tar.gz",
-        sha256 = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75",
-        strip_prefix = "lock_api-0.3.4",
-        build_file = Label("//proto/raze/remote:BUILD.lock_api-0.3.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__log__0_3_9",
-        url = "https://crates.io/api/v1/crates/log/0.3.9/download",
-        type = "tar.gz",
-        sha256 = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b",
-        strip_prefix = "log-0.3.9",
-        build_file = Label("//proto/raze/remote:BUILD.log-0.3.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__log__0_4_6",
-        url = "https://crates.io/api/v1/crates/log/0.4.6/download",
-        type = "tar.gz",
-        sha256 = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6",
-        strip_prefix = "log-0.4.6",
-        build_file = Label("//proto/raze/remote:BUILD.log-0.4.6.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__maybe_uninit__2_0_0",
-        url = "https://crates.io/api/v1/crates/maybe-uninit/2.0.0/download",
-        type = "tar.gz",
-        sha256 = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00",
-        strip_prefix = "maybe-uninit-2.0.0",
-        build_file = Label("//proto/raze/remote:BUILD.maybe-uninit-2.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__memoffset__0_5_4",
-        url = "https://crates.io/api/v1/crates/memoffset/0.5.4/download",
-        type = "tar.gz",
-        sha256 = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8",
-        strip_prefix = "memoffset-0.5.4",
-        build_file = Label("//proto/raze/remote:BUILD.memoffset-0.5.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__mio__0_6_21",
-        url = "https://crates.io/api/v1/crates/mio/0.6.21/download",
-        type = "tar.gz",
-        sha256 = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f",
-        strip_prefix = "mio-0.6.21",
-        build_file = Label("//proto/raze/remote:BUILD.mio-0.6.21.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__mio_uds__0_6_7",
-        url = "https://crates.io/api/v1/crates/mio-uds/0.6.7/download",
-        type = "tar.gz",
-        sha256 = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125",
-        strip_prefix = "mio-uds-0.6.7",
-        build_file = Label("//proto/raze/remote:BUILD.mio-uds-0.6.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__miow__0_2_1",
-        url = "https://crates.io/api/v1/crates/miow/0.2.1/download",
-        type = "tar.gz",
-        sha256 = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919",
-        strip_prefix = "miow-0.2.1",
-        build_file = Label("//proto/raze/remote:BUILD.miow-0.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__net2__0_2_33",
-        url = "https://crates.io/api/v1/crates/net2/0.2.33/download",
-        type = "tar.gz",
-        sha256 = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88",
-        strip_prefix = "net2-0.2.33",
-        build_file = Label("//proto/raze/remote:BUILD.net2-0.2.33.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__num_cpus__1_13_0",
-        url = "https://crates.io/api/v1/crates/num_cpus/1.13.0/download",
-        type = "tar.gz",
-        sha256 = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3",
-        strip_prefix = "num_cpus-1.13.0",
-        build_file = Label("//proto/raze/remote:BUILD.num_cpus-1.13.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__parking_lot__0_9_0",
-        url = "https://crates.io/api/v1/crates/parking_lot/0.9.0/download",
-        type = "tar.gz",
-        sha256 = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252",
-        strip_prefix = "parking_lot-0.9.0",
-        build_file = Label("//proto/raze/remote:BUILD.parking_lot-0.9.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__parking_lot_core__0_6_2",
-        url = "https://crates.io/api/v1/crates/parking_lot_core/0.6.2/download",
-        type = "tar.gz",
-        sha256 = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b",
-        strip_prefix = "parking_lot_core-0.6.2",
-        build_file = Label("//proto/raze/remote:BUILD.parking_lot_core-0.6.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__protobuf__2_8_2",
-        url = "https://crates.io/api/v1/crates/protobuf/2.8.2/download",
-        type = "tar.gz",
-        sha256 = "70731852eec72c56d11226c8a5f96ad5058a3dab73647ca5f7ee351e464f2571",
-        strip_prefix = "protobuf-2.8.2",
-        patches = [
-            "@rules_rust//proto/raze/patch:protobuf-2.8.2.patch",
-        ],
-        patch_args = [
-            "-p1",
-        ],
-        build_file = Label("//proto/raze/remote:BUILD.protobuf-2.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__protobuf_codegen__2_8_2",
-        url = "https://crates.io/api/v1/crates/protobuf-codegen/2.8.2/download",
-        type = "tar.gz",
-        sha256 = "3d74b9cbbf2ac9a7169c85a3714ec16c51ee9ec7cfd511549527e9a7df720795",
-        strip_prefix = "protobuf-codegen-2.8.2",
-        build_file = Label("//proto/raze/remote:BUILD.protobuf-codegen-2.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__redox_syscall__0_1_56",
-        url = "https://crates.io/api/v1/crates/redox_syscall/0.1.56/download",
-        type = "tar.gz",
-        sha256 = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84",
-        strip_prefix = "redox_syscall-0.1.56",
-        build_file = Label("//proto/raze/remote:BUILD.redox_syscall-0.1.56.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__rustc_version__0_2_3",
-        url = "https://crates.io/api/v1/crates/rustc_version/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a",
-        strip_prefix = "rustc_version-0.2.3",
-        build_file = Label("//proto/raze/remote:BUILD.rustc_version-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__safemem__0_3_3",
-        url = "https://crates.io/api/v1/crates/safemem/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072",
-        strip_prefix = "safemem-0.3.3",
-        build_file = Label("//proto/raze/remote:BUILD.safemem-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__scoped_tls__0_1_2",
-        url = "https://crates.io/api/v1/crates/scoped-tls/0.1.2/download",
-        type = "tar.gz",
-        sha256 = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28",
-        strip_prefix = "scoped-tls-0.1.2",
-        build_file = Label("//proto/raze/remote:BUILD.scoped-tls-0.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__scopeguard__1_1_0",
-        url = "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
-        type = "tar.gz",
-        sha256 = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
-        strip_prefix = "scopeguard-1.1.0",
-        build_file = Label("//proto/raze/remote:BUILD.scopeguard-1.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__semver__0_9_0",
-        url = "https://crates.io/api/v1/crates/semver/0.9.0/download",
-        type = "tar.gz",
-        sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403",
-        strip_prefix = "semver-0.9.0",
-        build_file = Label("//proto/raze/remote:BUILD.semver-0.9.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__semver_parser__0_7_0",
-        url = "https://crates.io/api/v1/crates/semver-parser/0.7.0/download",
-        type = "tar.gz",
-        sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3",
-        strip_prefix = "semver-parser-0.7.0",
-        build_file = Label("//proto/raze/remote:BUILD.semver-parser-0.7.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__slab__0_3_0",
-        url = "https://crates.io/api/v1/crates/slab/0.3.0/download",
-        type = "tar.gz",
-        sha256 = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23",
-        strip_prefix = "slab-0.3.0",
-        build_file = Label("//proto/raze/remote:BUILD.slab-0.3.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__slab__0_4_2",
-        url = "https://crates.io/api/v1/crates/slab/0.4.2/download",
-        type = "tar.gz",
-        sha256 = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8",
-        strip_prefix = "slab-0.4.2",
-        build_file = Label("//proto/raze/remote:BUILD.slab-0.4.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__smallvec__0_6_13",
-        url = "https://crates.io/api/v1/crates/smallvec/0.6.13/download",
-        type = "tar.gz",
-        sha256 = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6",
-        strip_prefix = "smallvec-0.6.13",
-        build_file = Label("//proto/raze/remote:BUILD.smallvec-0.6.13.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tls_api__0_1_22",
-        url = "https://crates.io/api/v1/crates/tls-api/0.1.22/download",
-        type = "tar.gz",
-        sha256 = "049c03787a0595182357fbd487577947f4351b78ce20c3668f6d49f17feb13d1",
-        strip_prefix = "tls-api-0.1.22",
-        build_file = Label("//proto/raze/remote:BUILD.tls-api-0.1.22.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tls_api_stub__0_1_22",
-        url = "https://crates.io/api/v1/crates/tls-api-stub/0.1.22/download",
-        type = "tar.gz",
-        sha256 = "c9a0cc8c149724db9de7d73a0e1bc80b1a74f5394f08c6f301e11f9c35fa061e",
-        strip_prefix = "tls-api-stub-0.1.22",
-        build_file = Label("//proto/raze/remote:BUILD.tls-api-stub-0.1.22.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio__0_1_22",
-        url = "https://crates.io/api/v1/crates/tokio/0.1.22/download",
-        type = "tar.gz",
-        sha256 = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6",
-        strip_prefix = "tokio-0.1.22",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-0.1.22.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_codec__0_1_2",
-        url = "https://crates.io/api/v1/crates/tokio-codec/0.1.2/download",
-        type = "tar.gz",
-        sha256 = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b",
-        strip_prefix = "tokio-codec-0.1.2",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-codec-0.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_core__0_1_17",
-        url = "https://crates.io/api/v1/crates/tokio-core/0.1.17/download",
-        type = "tar.gz",
-        sha256 = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71",
-        strip_prefix = "tokio-core-0.1.17",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-core-0.1.17.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_current_thread__0_1_7",
-        url = "https://crates.io/api/v1/crates/tokio-current-thread/0.1.7/download",
-        type = "tar.gz",
-        sha256 = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e",
-        strip_prefix = "tokio-current-thread-0.1.7",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-current-thread-0.1.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_executor__0_1_10",
-        url = "https://crates.io/api/v1/crates/tokio-executor/0.1.10/download",
-        type = "tar.gz",
-        sha256 = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671",
-        strip_prefix = "tokio-executor-0.1.10",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-executor-0.1.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_fs__0_1_7",
-        url = "https://crates.io/api/v1/crates/tokio-fs/0.1.7/download",
-        type = "tar.gz",
-        sha256 = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4",
-        strip_prefix = "tokio-fs-0.1.7",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-fs-0.1.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_io__0_1_13",
-        url = "https://crates.io/api/v1/crates/tokio-io/0.1.13/download",
-        type = "tar.gz",
-        sha256 = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674",
-        strip_prefix = "tokio-io-0.1.13",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-io-0.1.13.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_reactor__0_1_12",
-        url = "https://crates.io/api/v1/crates/tokio-reactor/0.1.12/download",
-        type = "tar.gz",
-        sha256 = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351",
-        strip_prefix = "tokio-reactor-0.1.12",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-reactor-0.1.12.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_sync__0_1_8",
-        url = "https://crates.io/api/v1/crates/tokio-sync/0.1.8/download",
-        type = "tar.gz",
-        sha256 = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee",
-        strip_prefix = "tokio-sync-0.1.8",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-sync-0.1.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_tcp__0_1_4",
-        url = "https://crates.io/api/v1/crates/tokio-tcp/0.1.4/download",
-        type = "tar.gz",
-        sha256 = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72",
-        strip_prefix = "tokio-tcp-0.1.4",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-tcp-0.1.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_threadpool__0_1_18",
-        url = "https://crates.io/api/v1/crates/tokio-threadpool/0.1.18/download",
-        type = "tar.gz",
-        sha256 = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89",
-        strip_prefix = "tokio-threadpool-0.1.18",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-threadpool-0.1.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_timer__0_1_2",
-        url = "https://crates.io/api/v1/crates/tokio-timer/0.1.2/download",
-        type = "tar.gz",
-        sha256 = "6131e780037787ff1b3f8aad9da83bca02438b72277850dd6ad0d455e0e20efc",
-        strip_prefix = "tokio-timer-0.1.2",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-timer-0.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_timer__0_2_13",
-        url = "https://crates.io/api/v1/crates/tokio-timer/0.2.13/download",
-        type = "tar.gz",
-        sha256 = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296",
-        strip_prefix = "tokio-timer-0.2.13",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-timer-0.2.13.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_tls_api__0_1_22",
-        url = "https://crates.io/api/v1/crates/tokio-tls-api/0.1.22/download",
-        type = "tar.gz",
-        sha256 = "68d0e040d5b1f4cfca70ec4f371229886a5de5bb554d272a4a8da73004a7b2c9",
-        strip_prefix = "tokio-tls-api-0.1.22",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-tls-api-0.1.22.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_udp__0_1_6",
-        url = "https://crates.io/api/v1/crates/tokio-udp/0.1.6/download",
-        type = "tar.gz",
-        sha256 = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82",
-        strip_prefix = "tokio-udp-0.1.6",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-udp-0.1.6.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_uds__0_1_7",
-        url = "https://crates.io/api/v1/crates/tokio-uds/0.1.7/download",
-        type = "tar.gz",
-        sha256 = "65ae5d255ce739e8537221ed2942e0445f4b3b813daebac1c0050ddaaa3587f9",
-        strip_prefix = "tokio-uds-0.1.7",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-uds-0.1.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__tokio_uds__0_2_6",
-        url = "https://crates.io/api/v1/crates/tokio-uds/0.2.6/download",
-        type = "tar.gz",
-        sha256 = "5076db410d6fdc6523df7595447629099a1fdc47b3d9f896220780fa48faf798",
-        strip_prefix = "tokio-uds-0.2.6",
-        build_file = Label("//proto/raze/remote:BUILD.tokio-uds-0.2.6.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__unix_socket__0_5_0",
-        url = "https://crates.io/api/v1/crates/unix_socket/0.5.0/download",
-        type = "tar.gz",
-        sha256 = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564",
-        strip_prefix = "unix_socket-0.5.0",
-        build_file = Label("//proto/raze/remote:BUILD.unix_socket-0.5.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__void__1_0_2",
-        url = "https://crates.io/api/v1/crates/void/1.0.2/download",
-        type = "tar.gz",
-        sha256 = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d",
-        strip_prefix = "void-1.0.2",
-        build_file = Label("//proto/raze/remote:BUILD.void-1.0.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__winapi__0_2_8",
-        url = "https://crates.io/api/v1/crates/winapi/0.2.8/download",
-        type = "tar.gz",
-        sha256 = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a",
-        strip_prefix = "winapi-0.2.8",
-        build_file = Label("//proto/raze/remote:BUILD.winapi-0.2.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__winapi__0_3_8",
-        url = "https://crates.io/api/v1/crates/winapi/0.3.8/download",
-        type = "tar.gz",
-        sha256 = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6",
-        strip_prefix = "winapi-0.3.8",
-        build_file = Label("//proto/raze/remote:BUILD.winapi-0.3.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__winapi_build__0_1_1",
-        url = "https://crates.io/api/v1/crates/winapi-build/0.1.1/download",
-        type = "tar.gz",
-        sha256 = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc",
-        strip_prefix = "winapi-build-0.1.1",
-        build_file = Label("//proto/raze/remote:BUILD.winapi-build-0.1.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__winapi_i686_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
-        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
-        build_file = Label("//proto/raze/remote:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__winapi_x86_64_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
-        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
-        build_file = Label("//proto/raze/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_proto__ws2_32_sys__0_2_1",
-        url = "https://crates.io/api/v1/crates/ws2_32-sys/0.2.1/download",
-        type = "tar.gz",
-        sha256 = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e",
-        strip_prefix = "ws2_32-sys-0.2.1",
-        build_file = Label("//proto/raze/remote:BUILD.ws2_32-sys-0.2.1.bazel"),
-    )
diff --git a/third_party/rules_rust/proto/raze/patch/BUILD.bazel b/third_party/rules_rust/proto/raze/patch/BUILD.bazel
deleted file mode 100644
index a5e9d2a..0000000
--- a/third_party/rules_rust/proto/raze/patch/BUILD.bazel
+++ /dev/null
@@ -1,8 +0,0 @@
-package(default_visibility = ["//proto/raze:__subpackages__"])
-
-filegroup(
-    name = "patches",
-    srcs = [
-        "protobuf-2.8.2.patch",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/patch/README.md b/third_party/rules_rust/proto/raze/patch/README.md
deleted file mode 100644
index 2cd05d7..0000000
--- a/third_party/rules_rust/proto/raze/patch/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Patches
-
-Cargo raze, in its remote mode allows for patches to be applied to a repository
-before building it with rustc. It is advisable to use this functionality
-sparingly, if at all. Also note that the patch is applied after all of the
-dependency resolution has been completed by cargo raze, and that patching the
-version of a dependency will not cause cargo raze to update that dependency in
-the BUILD file.
-
-The patch itself can be generated using git or another tool. The output of git
-diff requires the `-p1` option to remove the leading `/` from the git diff patch
-format.
-
-## protobuf-2.8.2
-
-The protobuf crate from the rust-protobuf repository introduced a build.rs
-script in the 2.x.x series. This generates a small version.rs file that would be
-[included into lib.rs](https://github.com/stepancheg/rust-protobuf/blob/v2.8/protobuf/src/lib.rs#L122).
-However, the build.rs file requires a number of environment variables, normally
-provided by cargo to the build file. Cargo raze does not provide these
-variables. The resulting code includes a version string and version identifier.
-The version string is then used by protobuf-codegen to generate code refering to
-the identifier in the protobuf library. The use can be seen
-[here](https://github.com/stepancheg/rust-protobuf/blob/v2.8/protobuf-codegen/src/lib.rs#L160).
-This is to enforce at compile time that the version of protobuf-codegen matches
-the version of the protobuf crate.
-
-For this crate, the patch that is applied is replacing the include! macro with
-what would be generated by the build.rs file. This lets us avoid running the
-build file altogether, at the expense of having to update the patch for every
-version.
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.autocfg-1.0.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.autocfg-1.0.0.bazel
deleted file mode 100644
index 9682987..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.autocfg-1.0.0.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "integers" with type "example" omitted
-
-# Unsupported target "paths" with type "example" omitted
-
-# Unsupported target "traits" with type "example" omitted
-
-# Unsupported target "versions" with type "example" omitted
-
-rust_library(
-    name = "autocfg",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "rustflags" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.base64-0.9.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.base64-0.9.3.bazel
deleted file mode 100644
index 0ff1374..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.base64-0.9.3.bazel
+++ /dev/null
@@ -1,67 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmarks" with type "bench" omitted
-
-# Unsupported target "make_tables" with type "example" omitted
-
-rust_library(
-    name = "base64",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__byteorder__1_3_4//:byteorder",
-        "@rules_rust_proto__safemem__0_3_3//:safemem",
-    ],
-)
-
-# Unsupported target "decode" with type "test" omitted
-
-# Unsupported target "encode" with type "test" omitted
-
-# Unsupported target "helpers" with type "test" omitted
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.bitflags-1.2.1.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.bitflags-1.2.1.bazel
deleted file mode 100644
index 7d99f2d..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.bitflags-1.2.1.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.byteorder-1.3.4.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.byteorder-1.3.4.bazel
deleted file mode 100644
index 861495b..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.byteorder-1.3.4.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "byteorder",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.4",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.bytes-0.4.12.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.bytes-0.4.12.bazel
deleted file mode 100644
index ca3b7ae..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.bytes-0.4.12.bazel
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "bytes" with type "bench" omitted
-
-rust_library(
-    name = "bytes",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.12",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__byteorder__1_3_4//:byteorder",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-    ],
-)
-
-# Unsupported target "test_buf" with type "test" omitted
-
-# Unsupported target "test_buf_mut" with type "test" omitted
-
-# Unsupported target "test_bytes" with type "test" omitted
-
-# Unsupported target "test_chain" with type "test" omitted
-
-# Unsupported target "test_debug" with type "test" omitted
-
-# Unsupported target "test_from_buf" with type "test" omitted
-
-# Unsupported target "test_iter" with type "test" omitted
-
-# Unsupported target "test_reader" with type "test" omitted
-
-# Unsupported target "test_serde" with type "test" omitted
-
-# Unsupported target "test_take" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.cfg-if-0.1.10.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.cfg-if-0.1.10.bazel
deleted file mode 100644
index 792b241..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.cfg-if-0.1.10.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.10",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.cloudabi-0.0.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.cloudabi-0.0.3.bazel
deleted file mode 100644
index acf75d1..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.cloudabi-0.0.3.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "restricted",  # BSD-2-Clause from expression "BSD-2-Clause"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cloudabi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "bitflags",
-        "default",
-    ],
-    crate_root = "cloudabi.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.0.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bitflags__1_2_1//:bitflags",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-deque-0.7.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-deque-0.7.3.bazel
deleted file mode 100644
index 4e517b6..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-deque-0.7.3.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "crossbeam_deque",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__crossbeam_epoch__0_8_2//:crossbeam_epoch",
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__maybe_uninit__2_0_0//:maybe_uninit",
-    ],
-)
-
-# Unsupported target "fifo" with type "test" omitted
-
-# Unsupported target "injector" with type "test" omitted
-
-# Unsupported target "lifo" with type "test" omitted
-
-# Unsupported target "steal" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-epoch-0.8.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-epoch-0.8.2.bazel
deleted file mode 100644
index 6749a99..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-epoch-0.8.2.bazel
+++ /dev/null
@@ -1,74 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "defer" with type "bench" omitted
-
-# Unsupported target "flush" with type "bench" omitted
-
-# Unsupported target "pin" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-# Unsupported target "sanitize" with type "example" omitted
-
-# Unsupported target "treiber_stack" with type "example" omitted
-
-rust_library(
-    name = "crossbeam_epoch",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_proto__maybe_uninit__2_0_0//:maybe_uninit",
-        "@rules_rust_proto__memoffset__0_5_4//:memoffset",
-        "@rules_rust_proto__scopeguard__1_1_0//:scopeguard",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-queue-0.2.1.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-queue-0.2.1.bazel
deleted file mode 100644
index fac28d3..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-queue-0.2.1.bazel
+++ /dev/null
@@ -1,61 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR (Apache-2.0 AND BSD-2-Clause)"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "crossbeam_queue",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-    ],
-)
-
-# Unsupported target "array_queue" with type "test" omitted
-
-# Unsupported target "seg_queue" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-utils-0.7.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-utils-0.7.2.bazel
deleted file mode 100644
index 61f09e2..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.crossbeam-utils-0.7.2.bazel
+++ /dev/null
@@ -1,74 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "atomic_cell" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "crossbeam_utils",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__lazy_static__1_4_0//:lazy_static",
-    ],
-)
-
-# Unsupported target "atomic_cell" with type "test" omitted
-
-# Unsupported target "cache_padded" with type "test" omitted
-
-# Unsupported target "parker" with type "test" omitted
-
-# Unsupported target "sharded_lock" with type "test" omitted
-
-# Unsupported target "thread" with type "test" omitted
-
-# Unsupported target "wait_group" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.fnv-1.0.6.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.fnv-1.0.6.bazel
deleted file mode 100644
index ddac662..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.fnv-1.0.6.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "fnv",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.6",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-0.3.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-0.3.3.bazel
deleted file mode 100644
index 69c1ae7..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-0.3.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "fuchsia_zircon",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bitflags__1_2_1//:bitflags",
-        "@rules_rust_proto__fuchsia_zircon_sys__0_3_3//:fuchsia_zircon_sys",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel
deleted file mode 100644
index ce34aa2..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
-])
-
-# Generated Targets
-
-# Unsupported target "hello" with type "example" omitted
-
-rust_library(
-    name = "fuchsia_zircon_sys",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.futures-0.1.29.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.futures-0.1.29.bazel
deleted file mode 100644
index 8ae5d86..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.futures-0.1.29.bazel
+++ /dev/null
@@ -1,118 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bilock" with type "bench" omitted
-
-# Unsupported target "futures_unordered" with type "bench" omitted
-
-# Unsupported target "poll" with type "bench" omitted
-
-# Unsupported target "sync_mpsc" with type "bench" omitted
-
-# Unsupported target "thread_notify" with type "bench" omitted
-
-rust_library(
-    name = "futures",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_std",
-        "with-deprecated",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.29",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "all" with type "test" omitted
-
-# Unsupported target "bilock" with type "test" omitted
-
-# Unsupported target "buffer_unordered" with type "test" omitted
-
-# Unsupported target "channel" with type "test" omitted
-
-# Unsupported target "eager_drop" with type "test" omitted
-
-# Unsupported target "eventual" with type "test" omitted
-
-# Unsupported target "fuse" with type "test" omitted
-
-# Unsupported target "future_flatten_stream" with type "test" omitted
-
-# Unsupported target "futures_ordered" with type "test" omitted
-
-# Unsupported target "futures_unordered" with type "test" omitted
-
-# Unsupported target "inspect" with type "test" omitted
-
-# Unsupported target "mpsc" with type "test" omitted
-
-# Unsupported target "mpsc-close" with type "test" omitted
-
-# Unsupported target "oneshot" with type "test" omitted
-
-# Unsupported target "ready_queue" with type "test" omitted
-
-# Unsupported target "recurse" with type "test" omitted
-
-# Unsupported target "select_all" with type "test" omitted
-
-# Unsupported target "select_ok" with type "test" omitted
-
-# Unsupported target "shared" with type "test" omitted
-
-# Unsupported target "sink" with type "test" omitted
-
-# Unsupported target "split" with type "test" omitted
-
-# Unsupported target "stream" with type "test" omitted
-
-# Unsupported target "stream_catch_unwind" with type "test" omitted
-
-# Unsupported target "unfold" with type "test" omitted
-
-# Unsupported target "unsync" with type "test" omitted
-
-# Unsupported target "unsync-oneshot" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.futures-cpupool-0.1.8.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.futures-cpupool-0.1.8.bazel
deleted file mode 100644
index 0543a19..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.futures-cpupool-0.1.8.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "futures_cpupool",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "with-deprecated",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.8",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__num_cpus__1_13_0//:num_cpus",
-    ],
-)
-
-# Unsupported target "smoke" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.grpc-0.6.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.grpc-0.6.2.bazel
deleted file mode 100644
index c844b62..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.grpc-0.6.2.bazel
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "grpc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__base64__0_9_3//:base64",
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__futures_cpupool__0_1_8//:futures_cpupool",
-        "@rules_rust_proto__httpbis__0_7_0//:httpbis",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-        "@rules_rust_proto__tls_api__0_1_22//:tls_api",
-        "@rules_rust_proto__tls_api_stub__0_1_22//:tls_api_stub",
-        "@rules_rust_proto__tokio_core__0_1_17//:tokio_core",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_tls_api__0_1_22//:tokio_tls_api",
-    ],
-)
-
-# Unsupported target "client" with type "test" omitted
-
-# Unsupported target "server" with type "test" omitted
-
-# Unsupported target "simple" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.grpc-compiler-0.6.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.grpc-compiler-0.6.2.bazel
deleted file mode 100644
index 8dab3a3..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.grpc-compiler-0.6.2.bazel
+++ /dev/null
@@ -1,81 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_protoc_gen_rust_grpc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/protoc-gen-rust-grpc.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.2",
-    # buildifier: leave-alone
-    deps = [
-        ":grpc_compiler",
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-        "@rules_rust_proto__protobuf_codegen__2_8_2//:protobuf_codegen",
-    ],
-)
-
-rust_library(
-    name = "grpc_compiler",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-        "@rules_rust_proto__protobuf_codegen__2_8_2//:protobuf_codegen",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.hermit-abi-0.1.11.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.hermit-abi-0.1.11.bazel
deleted file mode 100644
index 6c5b997..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.hermit-abi-0.1.11.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "hermit_abi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.11",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__libc__0_2_69//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.httpbis-0.7.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.httpbis-0.7.0.bazel
deleted file mode 100644
index f329e41..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.httpbis-0.7.0.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "client_server" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-# Unsupported target "client" with type "example" omitted
-
-# Unsupported target "server" with type "example" omitted
-
-rust_library(
-    name = "httpbis",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__futures_cpupool__0_1_8//:futures_cpupool",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__net2__0_2_33//:net2",
-        "@rules_rust_proto__tls_api__0_1_22//:tls_api",
-        "@rules_rust_proto__tls_api_stub__0_1_22//:tls_api_stub",
-        "@rules_rust_proto__tokio_core__0_1_17//:tokio_core",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_timer__0_1_2//:tokio_timer",
-        "@rules_rust_proto__tokio_tls_api__0_1_22//:tokio_tls_api",
-        "@rules_rust_proto__void__1_0_2//:void",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__tokio_uds__0_1_7//:tokio_uds",
-            "@rules_rust_proto__unix_socket__0_5_0//:unix_socket",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.iovec-0.1.4.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.iovec-0.1.4.bazel
deleted file mode 100644
index 9fcb172..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.iovec-0.1.4.bazel
+++ /dev/null
@@ -1,78 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "iovec",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.4",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__libc__0_2_69//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.kernel32-sys-0.2.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.kernel32-sys-0.2.2.bazel
deleted file mode 100644
index 4103c40..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.kernel32-sys-0.2.2.bazel
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-alias(
-    name = "kernel32_sys",
-    actual = ":kernel32",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-rust_library(
-    name = "kernel32",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__winapi__0_2_8//:winapi",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index 1cf4320..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=lazy_static_heap_impl",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.libc-0.2.69.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.libc-0.2.69.bazel
deleted file mode 100644
index 1116822..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.libc-0.2.69.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.69",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.lock_api-0.3.4.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.lock_api-0.3.4.bazel
deleted file mode 100644
index c4fc23f..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.lock_api-0.3.4.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lock_api",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__scopeguard__1_1_0//:scopeguard",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.log-0.3.9.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.log-0.3.9.bazel
deleted file mode 100644
index 8a8aad4..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.log-0.3.9.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__log__0_4_6//:log",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.log-0.4.6.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.log-0.4.6.bazel
deleted file mode 100644
index a3a7a10..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.log-0.4.6.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.6",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.maybe-uninit-2.0.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.maybe-uninit-2.0.0.bazel
deleted file mode 100644
index c991af2..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.maybe-uninit-2.0.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "maybe_uninit",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "doesnt_drop" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.memoffset-0.5.4.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.memoffset-0.5.4.bazel
deleted file mode 100644
index cd38911..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.memoffset-0.5.4.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "memoffset",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.5.4",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.mio-0.6.21.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.mio-0.6.21.bazel
deleted file mode 100644
index e8c6e95..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.mio-0.6.21.bazel
+++ /dev/null
@@ -1,100 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "bench_poll" with type "bench" omitted
-
-rust_library(
-    name = "mio",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "default",
-        "with-deprecated",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.21",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__net2__0_2_33//:net2",
-        "@rules_rust_proto__slab__0_4_2//:slab",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__libc__0_2_69//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_proto__kernel32_sys__0_2_2//:kernel32_sys",
-            "@rules_rust_proto__miow__0_2_1//:miow",
-            "@rules_rust_proto__winapi__0_2_8//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.mio-uds-0.6.7.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.mio-uds-0.6.7.bazel
deleted file mode 100644
index 2fada07..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.mio-uds-0.6.7.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "mio_uds",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.7",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__iovec__0_1_4//:iovec",
-            "@rules_rust_proto__libc__0_2_69//:libc",
-            "@rules_rust_proto__mio__0_6_21//:mio",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "echo" with type "test" omitted
-
-# Unsupported target "smoke" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.miow-0.2.1.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.miow-0.2.1.bazel
deleted file mode 100644
index 766f4cd..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.miow-0.2.1.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "miow",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__kernel32_sys__0_2_2//:kernel32_sys",
-        "@rules_rust_proto__net2__0_2_33//:net2",
-        "@rules_rust_proto__winapi__0_2_8//:winapi",
-        "@rules_rust_proto__ws2_32_sys__0_2_1//:ws2_32_sys",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.net2-0.2.33.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.net2-0.2.33.bazel
deleted file mode 100644
index 2d13ae7..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.net2-0.2.33.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "net2",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "default",
-        "duration",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.33",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-    ] + selects.with_or({
-        # cfg(any(target_os = "redox", unix))
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__libc__0_2_69//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_proto__winapi__0_3_8//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "all" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.num_cpus-1.13.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.num_cpus-1.13.0.bazel
deleted file mode 100644
index 5aee7b9..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.num_cpus-1.13.0.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "values" with type "example" omitted
-
-rust_library(
-    name = "num_cpus",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.13.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__libc__0_2_69//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot-0.9.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot-0.9.0.bazel
deleted file mode 100644
index 2ce210f..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot-0.9.0.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "parking_lot",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__lock_api__0_3_4//:lock_api",
-        "@rules_rust_proto__parking_lot_core__0_6_2//:parking_lot_core",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot_core-0.6.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot_core-0.6.2.bazel
deleted file mode 100644
index 843a86b..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.parking_lot_core-0.6.2.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "parking_lot_core",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__smallvec__0_6_13//:smallvec",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__libc__0_2_69//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_proto__winapi__0_3_8//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-2.8.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-2.8.2.bazel
deleted file mode 100644
index d27c2d6..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-2.8.2.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "coded_input_stream" with type "bench" omitted
-
-# Unsupported target "coded_output_stream" with type "bench" omitted
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "protobuf",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "bytes",
-        "with-bytes",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.8.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-codegen-2.8.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-codegen-2.8.2.bazel
deleted file mode 100644
index eef555a..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.protobuf-codegen-2.8.2.bazel
+++ /dev/null
@@ -1,104 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_protobuf_bin_gen_rust_do_not_use",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/protobuf-bin-gen-rust-do-not-use.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.8.2",
-    # buildifier: leave-alone
-    deps = [
-        ":protobuf_codegen",
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-    ],
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_protoc_gen_rust",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/protoc-gen-rust.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.8.2",
-    # buildifier: leave-alone
-    deps = [
-        ":protobuf_codegen",
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-    ],
-)
-
-rust_library(
-    name = "protobuf_codegen",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.8.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__protobuf__2_8_2//:protobuf",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.redox_syscall-0.1.56.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.redox_syscall-0.1.56.bazel
deleted file mode 100644
index 553dc6f..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.redox_syscall-0.1.56.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-alias(
-    name = "redox_syscall",
-    actual = ":syscall",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-rust_library(
-    name = "syscall",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.56",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.rustc_version-0.2.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.rustc_version-0.2.3.bazel
deleted file mode 100644
index 671bffc..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.rustc_version-0.2.3.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rustc_version",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__semver__0_9_0//:semver",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.safemem-0.3.3.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.safemem-0.3.3.bazel
deleted file mode 100644
index a3cb953..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.safemem-0.3.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "safemem",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.scoped-tls-0.1.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.scoped-tls-0.1.2.bazel
deleted file mode 100644
index a6e593a..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.scoped-tls-0.1.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "scoped_tls",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.scopeguard-1.1.0.bazel
deleted file mode 100644
index 8d5533a..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.scopeguard-1.1.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "readme" with type "example" omitted
-
-rust_library(
-    name = "scopeguard",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.semver-0.9.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.semver-0.9.0.bazel
deleted file mode 100644
index 370211c..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.semver-0.9.0.bazel
+++ /dev/null
@@ -1,61 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "semver",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__semver_parser__0_7_0//:semver_parser",
-    ],
-)
-
-# Unsupported target "deprecation" with type "test" omitted
-
-# Unsupported target "regression" with type "test" omitted
-
-# Unsupported target "serde" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.semver-parser-0.7.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.semver-parser-0.7.0.bazel
deleted file mode 100644
index 9f91111..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.semver-parser-0.7.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "semver_parser",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.3.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.3.0.bazel
deleted file mode 100644
index 2af87d1..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.3.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "slab",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.4.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.4.2.bazel
deleted file mode 100644
index 85e61e3..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.slab-0.4.2.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "slab",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "slab" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.smallvec-0.6.13.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.smallvec-0.6.13.bazel
deleted file mode 100644
index aeaedfd..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.smallvec-0.6.13.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "smallvec",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.13",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__maybe_uninit__2_0_0//:maybe_uninit",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-0.1.22.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-0.1.22.bazel
deleted file mode 100644
index e75e72b..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-0.1.22.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tls_api",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.22",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__log__0_4_6//:log",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-stub-0.1.22.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-stub-0.1.22.bazel
deleted file mode 100644
index 71fe4cf..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tls-api-stub-0.1.22.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tls_api_stub",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.22",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__tls_api__0_1_22//:tls_api",
-        "@rules_rust_proto__void__1_0_2//:void",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-0.1.22.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-0.1.22.bazel
deleted file mode 100644
index 8c46d0c..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-0.1.22.bazel
+++ /dev/null
@@ -1,171 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "blocking" with type "example" omitted
-
-# Unsupported target "chat" with type "example" omitted
-
-# Unsupported target "chat-combinator" with type "example" omitted
-
-# Unsupported target "chat-combinator-current-thread" with type "example" omitted
-
-# Unsupported target "connect" with type "example" omitted
-
-# Unsupported target "echo" with type "example" omitted
-
-# Unsupported target "echo-udp" with type "example" omitted
-
-# Unsupported target "hello_world" with type "example" omitted
-
-# Unsupported target "manual-runtime" with type "example" omitted
-
-# Unsupported target "print_each_packet" with type "example" omitted
-
-# Unsupported target "proxy" with type "example" omitted
-
-# Unsupported target "tinydb" with type "example" omitted
-
-# Unsupported target "tinyhttp" with type "example" omitted
-
-# Unsupported target "udp-client" with type "example" omitted
-
-# Unsupported target "udp-codec" with type "example" omitted
-
-rust_library(
-    name = "tokio",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "bytes",
-        "codec",
-        "default",
-        "fs",
-        "io",
-        "mio",
-        "num_cpus",
-        "reactor",
-        "rt-full",
-        "sync",
-        "tcp",
-        "timer",
-        "tokio-codec",
-        "tokio-current-thread",
-        "tokio-executor",
-        "tokio-fs",
-        "tokio-io",
-        "tokio-reactor",
-        "tokio-sync",
-        "tokio-tcp",
-        "tokio-threadpool",
-        "tokio-timer",
-        "tokio-udp",
-        "tokio-uds",
-        "udp",
-        "uds",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.22",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__num_cpus__1_13_0//:num_cpus",
-        "@rules_rust_proto__tokio_codec__0_1_2//:tokio_codec",
-        "@rules_rust_proto__tokio_current_thread__0_1_7//:tokio_current_thread",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-        "@rules_rust_proto__tokio_fs__0_1_7//:tokio_fs",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_reactor__0_1_12//:tokio_reactor",
-        "@rules_rust_proto__tokio_sync__0_1_8//:tokio_sync",
-        "@rules_rust_proto__tokio_tcp__0_1_4//:tokio_tcp",
-        "@rules_rust_proto__tokio_threadpool__0_1_18//:tokio_threadpool",
-        "@rules_rust_proto__tokio_timer__0_2_13//:tokio_timer",
-        "@rules_rust_proto__tokio_udp__0_1_6//:tokio_udp",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_proto__tokio_uds__0_2_6//:tokio_uds",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "buffered" with type "test" omitted
-
-# Unsupported target "clock" with type "test" omitted
-
-# Unsupported target "drop-core" with type "test" omitted
-
-# Unsupported target "enumerate" with type "test" omitted
-
-# Unsupported target "global" with type "test" omitted
-
-# Unsupported target "length_delimited" with type "test" omitted
-
-# Unsupported target "line-frames" with type "test" omitted
-
-# Unsupported target "pipe-hup" with type "test" omitted
-
-# Unsupported target "reactor" with type "test" omitted
-
-# Unsupported target "runtime" with type "test" omitted
-
-# Unsupported target "timer" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-codec-0.1.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-codec-0.1.2.bazel
deleted file mode 100644
index 4a6e746..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-codec-0.1.2.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_codec",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-    ],
-)
-
-# Unsupported target "codecs" with type "test" omitted
-
-# Unsupported target "framed" with type "test" omitted
-
-# Unsupported target "framed_read" with type "test" omitted
-
-# Unsupported target "framed_write" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-core-0.1.17.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-core-0.1.17.bazel
deleted file mode 100644
index 77a8bc0..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-core-0.1.17.bazel
+++ /dev/null
@@ -1,118 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "latency" with type "bench" omitted
-
-# Unsupported target "mio-ops" with type "bench" omitted
-
-# Unsupported target "tcp" with type "bench" omitted
-
-# Unsupported target "chat" with type "example" omitted
-
-# Unsupported target "compress" with type "example" omitted
-
-# Unsupported target "connect" with type "example" omitted
-
-# Unsupported target "echo" with type "example" omitted
-
-# Unsupported target "echo-threads" with type "example" omitted
-
-# Unsupported target "echo-udp" with type "example" omitted
-
-# Unsupported target "hello" with type "example" omitted
-
-# Unsupported target "proxy" with type "example" omitted
-
-# Unsupported target "sink" with type "example" omitted
-
-# Unsupported target "tinydb" with type "example" omitted
-
-# Unsupported target "tinyhttp" with type "example" omitted
-
-# Unsupported target "udp-codec" with type "example" omitted
-
-rust_library(
-    name = "tokio_core",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.17",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__scoped_tls__0_1_2//:scoped_tls",
-        "@rules_rust_proto__tokio__0_1_22//:tokio",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_reactor__0_1_12//:tokio_reactor",
-        "@rules_rust_proto__tokio_timer__0_2_13//:tokio_timer",
-    ],
-)
-
-# Unsupported target "buffered" with type "test" omitted
-
-# Unsupported target "chain" with type "test" omitted
-
-# Unsupported target "echo" with type "test" omitted
-
-# Unsupported target "interval" with type "test" omitted
-
-# Unsupported target "limit" with type "test" omitted
-
-# Unsupported target "line-frames" with type "test" omitted
-
-# Unsupported target "pipe-hup" with type "test" omitted
-
-# Unsupported target "spawn" with type "test" omitted
-
-# Unsupported target "stream-buffered" with type "test" omitted
-
-# Unsupported target "tcp" with type "test" omitted
-
-# Unsupported target "timeout" with type "test" omitted
-
-# Unsupported target "udp" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-current-thread-0.1.7.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-current-thread-0.1.7.bazel
deleted file mode 100644
index 2a34fe3..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-current-thread-0.1.7.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_current_thread",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.7",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-    ],
-)
-
-# Unsupported target "current_thread" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-executor-0.1.10.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-executor-0.1.10.bazel
deleted file mode 100644
index 1e34e30..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-executor-0.1.10.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_executor",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-    ],
-)
-
-# Unsupported target "executor" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-fs-0.1.7.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-fs-0.1.7.bazel
deleted file mode 100644
index 1ade220..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-fs-0.1.7.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "std-echo" with type "example" omitted
-
-rust_library(
-    name = "tokio_fs",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.7",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_threadpool__0_1_18//:tokio_threadpool",
-    ],
-)
-
-# Unsupported target "dir" with type "test" omitted
-
-# Unsupported target "file" with type "test" omitted
-
-# Unsupported target "link" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-io-0.1.13.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-io-0.1.13.bazel
deleted file mode 100644
index 725cef6..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-io-0.1.13.bazel
+++ /dev/null
@@ -1,60 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_io",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.13",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__log__0_4_6//:log",
-    ],
-)
-
-# Unsupported target "async_read" with type "test" omitted
-
-# Unsupported target "length_delimited" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-reactor-0.1.12.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-reactor-0.1.12.bazel
deleted file mode 100644
index 79c60af..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-reactor-0.1.12.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "basic" with type "bench" omitted
-
-rust_library(
-    name = "tokio_reactor",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.12",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__num_cpus__1_13_0//:num_cpus",
-        "@rules_rust_proto__parking_lot__0_9_0//:parking_lot",
-        "@rules_rust_proto__slab__0_4_2//:slab",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_sync__0_1_8//:tokio_sync",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-sync-0.1.8.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-sync-0.1.8.bazel
deleted file mode 100644
index ceddbdd..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-sync-0.1.8.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "mpsc" with type "bench" omitted
-
-# Unsupported target "oneshot" with type "bench" omitted
-
-rust_library(
-    name = "tokio_sync",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.8",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__fnv__1_0_6//:fnv",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-    ],
-)
-
-# Unsupported target "atomic_task" with type "test" omitted
-
-# Unsupported target "errors" with type "test" omitted
-
-# Unsupported target "fuzz_atomic_task" with type "test" omitted
-
-# Unsupported target "fuzz_list" with type "test" omitted
-
-# Unsupported target "fuzz_mpsc" with type "test" omitted
-
-# Unsupported target "fuzz_oneshot" with type "test" omitted
-
-# Unsupported target "fuzz_semaphore" with type "test" omitted
-
-# Unsupported target "lock" with type "test" omitted
-
-# Unsupported target "mpsc" with type "test" omitted
-
-# Unsupported target "oneshot" with type "test" omitted
-
-# Unsupported target "semaphore" with type "test" omitted
-
-# Unsupported target "watch" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tcp-0.1.4.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tcp-0.1.4.bazel
deleted file mode 100644
index 1092a65..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tcp-0.1.4.bazel
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_tcp",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_reactor__0_1_12//:tokio_reactor",
-    ],
-)
-
-# Unsupported target "chain" with type "test" omitted
-
-# Unsupported target "echo" with type "test" omitted
-
-# Unsupported target "limit" with type "test" omitted
-
-# Unsupported target "stream-buffered" with type "test" omitted
-
-# Unsupported target "tcp" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-threadpool-0.1.18.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-threadpool-0.1.18.bazel
deleted file mode 100644
index 00dc624..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-threadpool-0.1.18.bazel
+++ /dev/null
@@ -1,78 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "basic" with type "bench" omitted
-
-# Unsupported target "blocking" with type "bench" omitted
-
-# Unsupported target "depth" with type "bench" omitted
-
-# Unsupported target "depth" with type "example" omitted
-
-# Unsupported target "hello" with type "example" omitted
-
-rust_library(
-    name = "tokio_threadpool",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__crossbeam_deque__0_7_3//:crossbeam_deque",
-        "@rules_rust_proto__crossbeam_queue__0_2_1//:crossbeam_queue",
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__num_cpus__1_13_0//:num_cpus",
-        "@rules_rust_proto__slab__0_4_2//:slab",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-    ],
-)
-
-# Unsupported target "blocking" with type "test" omitted
-
-# Unsupported target "hammer" with type "test" omitted
-
-# Unsupported target "threadpool" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.1.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.1.2.bazel
deleted file mode 100644
index 8b27857..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.1.2.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_timer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__slab__0_3_0//:slab",
-    ],
-)
-
-# Unsupported target "support" with type "test" omitted
-
-# Unsupported target "test_timer" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.2.13.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.2.13.bazel
deleted file mode 100644
index acabcae..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-timer-0.2.13.bazel
+++ /dev/null
@@ -1,73 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_timer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.13",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__crossbeam_utils__0_7_2//:crossbeam_utils",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__slab__0_4_2//:slab",
-        "@rules_rust_proto__tokio_executor__0_1_10//:tokio_executor",
-    ],
-)
-
-# Unsupported target "clock" with type "test" omitted
-
-# Unsupported target "deadline" with type "test" omitted
-
-# Unsupported target "delay" with type "test" omitted
-
-# Unsupported target "hammer" with type "test" omitted
-
-# Unsupported target "interval" with type "test" omitted
-
-# Unsupported target "queue" with type "test" omitted
-
-# Unsupported target "throttle" with type "test" omitted
-
-# Unsupported target "timeout" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tls-api-0.1.22.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tls-api-0.1.22.bazel
deleted file mode 100644
index 2332b94..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-tls-api-0.1.22.bazel
+++ /dev/null
@@ -1,60 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_tls_api",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.22",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__tls_api__0_1_22//:tls_api",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-    ],
-)
-
-# Unsupported target "bad" with type "test" omitted
-
-# Unsupported target "smoke" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-udp-0.1.6.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-udp-0.1.6.bazel
deleted file mode 100644
index 1cc5c69..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-udp-0.1.6.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_udp",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.6",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__tokio_codec__0_1_2//:tokio_codec",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_reactor__0_1_12//:tokio_reactor",
-    ],
-)
-
-# Unsupported target "udp" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.1.7.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.1.7.bazel
deleted file mode 100644
index 335ae6e..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.1.7.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_uds",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.7",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-        "@rules_rust_proto__libc__0_2_69//:libc",
-        "@rules_rust_proto__log__0_3_9//:log",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__mio_uds__0_6_7//:mio_uds",
-        "@rules_rust_proto__tokio_core__0_1_17//:tokio_core",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.2.6.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.2.6.bazel
deleted file mode 100644
index 1c45b1c..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.tokio-uds-0.2.6.bazel
+++ /dev/null
@@ -1,67 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tokio_uds",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.6",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__bytes__0_4_12//:bytes",
-        "@rules_rust_proto__futures__0_1_29//:futures",
-        "@rules_rust_proto__iovec__0_1_4//:iovec",
-        "@rules_rust_proto__libc__0_2_69//:libc",
-        "@rules_rust_proto__log__0_4_6//:log",
-        "@rules_rust_proto__mio__0_6_21//:mio",
-        "@rules_rust_proto__mio_uds__0_6_7//:mio_uds",
-        "@rules_rust_proto__tokio_codec__0_1_2//:tokio_codec",
-        "@rules_rust_proto__tokio_io__0_1_13//:tokio_io",
-        "@rules_rust_proto__tokio_reactor__0_1_12//:tokio_reactor",
-    ],
-)
-
-# Unsupported target "datagram" with type "test" omitted
-
-# Unsupported target "stream" with type "test" omitted
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.unix_socket-0.5.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.unix_socket-0.5.0.bazel
deleted file mode 100644
index c80941f..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.unix_socket-0.5.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unix_socket",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.5.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__cfg_if__0_1_10//:cfg_if",
-        "@rules_rust_proto__libc__0_2_69//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.void-1.0.2.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.void-1.0.2.bazel
deleted file mode 100644
index c228271..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.void-1.0.2.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "void",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.2.8.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.2.8.bazel
deleted file mode 100644
index dc11f66..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.2.8.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.3.8.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.3.8.bazel
deleted file mode 100644
index a1bbaa2..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-0.3.8.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "errhandlingapi",
-        "handleapi",
-        "minwindef",
-        "ntstatus",
-        "winbase",
-        "winerror",
-        "winnt",
-        "winsock2",
-        "ws2def",
-        "ws2ipdef",
-        "ws2tcpip",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-build-0.1.1.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.winapi-build-0.1.1.bazel
deleted file mode 100644
index 89fe026..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-build-0.1.1.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-alias(
-    name = "winapi_build",
-    actual = ":build",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-rust_library(
-    name = "build",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index fd204c2..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi_i686_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index b02d82a..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "winapi_x86_64_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.ws2_32-sys-0.2.1.bazel b/third_party/rules_rust/proto/raze/remote/BUILD.ws2_32-sys-0.2.1.bazel
deleted file mode 100644
index 382300d..0000000
--- a/third_party/rules_rust/proto/raze/remote/BUILD.ws2_32-sys-0.2.1.bazel
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//proto/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-alias(
-    name = "ws2_32_sys",
-    actual = ":ws2_32",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-rust_library(
-    name = "ws2_32",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_proto__winapi__0_2_8//:winapi",
-    ],
-)
diff --git a/third_party/rules_rust/proto/repositories.bzl b/third_party/rules_rust/proto/repositories.bzl
index af23033..1591613 100644
--- a/third_party/rules_rust/proto/repositories.bzl
+++ b/third_party/rules_rust/proto/repositories.bzl
@@ -15,7 +15,7 @@
 # buildifier: disable=module-docstring
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
-load("//proto/raze:crates.bzl", "rules_rust_proto_fetch_remote_crates")
+load("//proto/3rdparty/crates:defs.bzl", "crate_repositories")
 
 # buildifier: disable=unnamed-macro
 def rust_proto_repositories(register_default_toolchain = True):
@@ -48,11 +48,11 @@
         ],
         patch_args = ["-p1"],
         patches = [
-            Label("//proto/patches:com_google_protobuf-v3.10.0-bzl_visibility.patch"),
+            Label("//proto/3rdparty/patches:com_google_protobuf-v3.10.0-bzl_visibility.patch"),
         ],
     )
 
-    rules_rust_proto_fetch_remote_crates()
+    crate_repositories()
 
     # Register toolchains
     if register_default_toolchain:
diff --git a/third_party/rules_rust/proto/toolchain.bzl b/third_party/rules_rust/proto/toolchain.bzl
index 5192436..7225d0d 100644
--- a/third_party/rules_rust/proto/toolchain.bzl
+++ b/third_party/rules_rust/proto/toolchain.bzl
@@ -14,8 +14,6 @@
 
 """Toolchain for compiling rust stubs from protobuf and gRPC."""
 
-load("//rust:defs.bzl", "rust_common")
-
 # buildifier: disable=bzl-visibility
 load("//rust/private:utils.bzl", "name_to_crate_name")
 
@@ -131,14 +129,14 @@
 
 # Default dependencies needed to compile protobuf stubs.
 PROTO_COMPILE_DEPS = [
-    Label("//proto/raze:protobuf"),
+    Label("//proto/3rdparty/crates:protobuf"),
 ]
 
 # Default dependencies needed to compile gRPC stubs.
 GRPC_COMPILE_DEPS = PROTO_COMPILE_DEPS + [
-    Label("//proto/raze:grpc"),
-    Label("//proto/raze:tls_api"),
-    Label("//proto/raze:tls_api_stub"),
+    Label("//proto/3rdparty/crates:grpc"),
+    Label("//proto/3rdparty/crates:tls-api"),
+    Label("//proto/3rdparty/crates:tls-api-stub"),
 ]
 
 rust_proto_toolchain = rule(
@@ -146,7 +144,6 @@
     attrs = {
         "edition": attr.string(
             doc = "The edition used by the generated rust source.",
-            default = rust_common.default_edition,
         ),
         "grpc_compile_deps": attr.label_list(
             doc = "The crates the generated grpc libraries depends on.",
diff --git a/third_party/rules_rust/rust/BUILD.bazel b/third_party/rules_rust/rust/BUILD.bazel
index 6fd4ced..f4edbd8 100644
--- a/third_party/rules_rust/rust/BUILD.bazel
+++ b/third_party/rules_rust/rust/BUILD.bazel
@@ -10,7 +10,14 @@
 ])
 
 toolchain_type(
+    name = "toolchain_type",
+)
+
+alias(
     name = "toolchain",
+    actual = "toolchain_type",
+    deprecation = "instead use `@rules_rust//rust:toolchain_type`",
+    tags = ["manual"],
 )
 
 bzl_library(
@@ -22,9 +29,3 @@
         "//rust/settings:bzl_lib",
     ],
 )
-
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//rust:bzl_lib` target instead",
-)
diff --git a/third_party/rules_rust/rust/defs.bzl b/third_party/rules_rust/rust/defs.bzl
index dd1b445..92c8a77 100644
--- a/third_party/rules_rust/rust/defs.bzl
+++ b/third_party/rules_rust/rust/defs.bzl
@@ -21,6 +21,7 @@
 load(
     "//rust/private:clippy.bzl",
     _capture_clippy_output = "capture_clippy_output",
+    _clippy_flags = "clippy_flags",
     _rust_clippy = "rust_clippy",
     _rust_clippy_aspect = "rust_clippy_aspect",
 )
@@ -37,14 +38,17 @@
 )
 load(
     "//rust/private:rust_analyzer.bzl",
-    _rust_analyzer = "rust_analyzer",
     _rust_analyzer_aspect = "rust_analyzer_aspect",
 )
 load(
     "//rust/private:rustc.bzl",
     _error_format = "error_format",
+    _extra_exec_rustc_flag = "extra_exec_rustc_flag",
     _extra_exec_rustc_flags = "extra_exec_rustc_flags",
+    _extra_rustc_flag = "extra_rustc_flag",
     _extra_rustc_flags = "extra_rustc_flags",
+    _is_proc_macro_dep = "is_proc_macro_dep",
+    _is_proc_macro_dep_enabled = "is_proc_macro_dep_enabled",
 )
 load(
     "//rust/private:rustdoc.bzl",
@@ -87,6 +91,9 @@
 rust_doc_test = _rust_doc_test
 # See @rules_rust//rust/private:rustdoc_test.bzl for a complete description.
 
+clippy_flags = _clippy_flags
+# See @rules_rust//rust/private:clippy.bzl for a complete description.
+
 rust_clippy_aspect = _rust_clippy_aspect
 # See @rules_rust//rust/private:clippy.bzl for a complete description.
 
@@ -99,21 +106,30 @@
 error_format = _error_format
 # See @rules_rust//rust/private:rustc.bzl for a complete description.
 
+extra_rustc_flag = _extra_rustc_flag
+# See @rules_rust//rust/private:rustc.bzl for a complete description.
+
 extra_rustc_flags = _extra_rustc_flags
 # See @rules_rust//rust/private:rustc.bzl for a complete description.
 
+extra_exec_rustc_flag = _extra_exec_rustc_flag
+# See @rules_rust//rust/private:rustc.bzl for a complete description.
+
 extra_exec_rustc_flags = _extra_exec_rustc_flags
 # See @rules_rust//rust/private:rustc.bzl for a complete description.
 
+is_proc_macro_dep = _is_proc_macro_dep
+# See @rules_rust//rust/private:rustc.bzl for a complete description.
+
+is_proc_macro_dep_enabled = _is_proc_macro_dep_enabled
+# See @rules_rust//rust/private:rustc.bzl for a complete description.
+
 rust_common = _rust_common
 # See @rules_rust//rust/private:common.bzl for a complete description.
 
 rust_analyzer_aspect = _rust_analyzer_aspect
 # See @rules_rust//rust/private:rust_analyzer.bzl for a complete description.
 
-rust_analyzer = _rust_analyzer
-# See @rules_rust//rust/private:rust_analyzer.bzl for a complete description.
-
 rustfmt_aspect = _rustfmt_aspect
 # See @rules_rust//rust/private:rustfmt.bzl for a complete description.
 
diff --git a/third_party/rules_rust/rust/known_shas.bzl b/third_party/rules_rust/rust/known_shas.bzl
index a4b5762..d5a4a94 100644
--- a/third_party/rules_rust/rust/known_shas.bzl
+++ b/third_party/rules_rust/rust/known_shas.bzl
@@ -4,2467 +4,5866 @@
 """
 
 FILE_KEY_TO_SHA = {
-    "2018-10-30/cargo-beta-aarch64-unknown-linux-gnu": "9d91fb3ee868421fbf8f4ed62cb7ee843dc6a1e70241331a9441e3ff09f3296d",
-    "2018-10-30/cargo-beta-x86_64-apple-darwin": "920d7218ded8ebd69628f7a7a1043117bec1ed6574ea8babbda66ddb7d0ea5f8",
-    "2018-10-30/cargo-beta-x86_64-pc-windows-msvc": "4f76c6264d36f1b0e9e23548d069386ff1b60a85a412596fc122484a4ed942fc",
-    "2018-10-30/cargo-beta-x86_64-unknown-freebsd": "be7ac5c344ca6038a7bcfbeb20c5847ce910ec39cf9a63b8b3e07cb6105dabb2",
-    "2018-10-30/cargo-beta-x86_64-unknown-linux-gnu": "097711a227d157c12a322dbe57f75eb28c7934869ce8aecc48d9946706234994",
-    "2018-10-30/clippy-beta-x86_64-apple-darwin": "84331ae735c78cd1d335b8b5da3c9232d70123197c62f3d7fe32b3bd7a97d1e6",
-    "2018-10-30/clippy-beta-x86_64-pc-windows-msvc": "a59573b3b71c318a75214876c30de03327c4b0409a2e9fa0127ef0ac4eab555d",
-    "2018-10-30/clippy-beta-x86_64-unknown-freebsd": "1fcc9d117d5721f3f4c6afb109c626fec238376666f448f61ed5aeaaa6c5a1d8",
-    "2018-10-30/clippy-beta-x86_64-unknown-linux-gnu": "eee913773c93ec0443aea1629d936b5a4e114e977318d4ef77b6bedf42cd4129",
-    "2018-10-30/llvm-tools-beta-aarch64-unknown-linux-gnu": "9417a07c501e173fe3848c815b8536cf70c6518c8040d45b19260ca3ab720760",
-    "2018-10-30/llvm-tools-beta-x86_64-apple-darwin": "b86d22bc723936f23186acaa94cd0738ff1c7b703d67712be62d99845a6ccc80",
-    "2018-10-30/llvm-tools-beta-x86_64-pc-windows-msvc": "cf74e15df51033370d4225fd9141f4cfc5c37145070d2296915fbecab9275b03",
-    "2018-10-30/llvm-tools-beta-x86_64-unknown-freebsd": "38ba85ec56c374b606a586221185ac351d04871892055f8936f28958e5e7a5cb",
-    "2018-10-30/llvm-tools-beta-x86_64-unknown-linux-gnu": "8d96f1475fc27f21d80bda80496783aa3181a4b33a138b7a89edcef2ddb6cf58",
-    "2018-10-30/rust-beta-aarch64-unknown-linux-gnu": "e9bc9d4a89299595ef42cde7303b50a7921e20a5ee4d131c4e1770a391611303",
-    "2018-10-30/rust-beta-x86_64-apple-darwin": "51acc0077d6abae5beed0e7b99c39ae9b8a0ff0f66daec227caef653046144e6",
-    "2018-10-30/rust-beta-x86_64-pc-windows-msvc": "07f3e42ba299b3b5341b410c4317161eba4b40bbc9fc449a9c187193fe49250c",
-    "2018-10-30/rust-beta-x86_64-unknown-freebsd": "49f1efe5bf10319446a298096dea73e478a466daca20a5b93d5263925e4ba9be",
-    "2018-10-30/rust-beta-x86_64-unknown-linux-gnu": "07963c2d6d56d077856f17e786414cf965832e7942f4ec72dec2eb51452e74b7",
-    "2018-10-30/rust-std-beta-aarch64-unknown-linux-gnu": "bf0895ccf65a86c1f51dbbebd0980bd07dcdc3919407fc84f5838cbbcb29e309",
-    "2018-10-30/rust-std-beta-aarch64-unknown-linux-musl": "53c07a1bdae00c0ad587349006e4080c50d511c0368f848fc98bf678dd3f6470",
-    "2018-10-30/rust-std-beta-wasm32-unknown-unknown": "5453e05993aaa90c8ac361086dd888a29a48f1b90b2c2184202c4b44b2e5569d",
-    "2018-10-30/rust-std-beta-x86_64-apple-darwin": "96fc1daea8868e176a14706333590b13a41193bd8ed5a711f23a15eceb5c6ce0",
-    "2018-10-30/rust-std-beta-x86_64-pc-windows-msvc": "6af758524d77288cb5c548d26467680d57aeb778063787662b1e00ef3887866a",
-    "2018-10-30/rust-std-beta-x86_64-unknown-freebsd": "5aef62464a5580ab6b38c9e54203db12f90ad42de538b7a5eefc7778b55b6497",
-    "2018-10-30/rust-std-beta-x86_64-unknown-linux-gnu": "34996a688d6a4c3587f873b0a8c86fe1d2fee2a269b6e669b1cb8c6908fb77b8",
-    "2018-10-30/rust-std-beta-x86_64-unknown-linux-musl": "6e9474546838c061288e8464d28a843814bc2ff4c9d06a5fba065c1b03650be4",
-    "2018-10-30/rustc-beta-aarch64-unknown-linux-gnu": "e6bb89261baa494ef98239bde9821b66671de5cd78352a9c100abce3a18ca250",
-    "2018-10-30/rustc-beta-x86_64-apple-darwin": "22153f359b8b98341aa0349233112fff2b9f092988f9d678626207ba29666b5b",
-    "2018-10-30/rustc-beta-x86_64-pc-windows-msvc": "9cd8225f1307aab95b439dbecd70aaa35e03c913ba0897dc7fe3a04755fc15b1",
-    "2018-10-30/rustc-beta-x86_64-unknown-freebsd": "e207562cd5e3a17497e029bcb1cab56d9fa474d788906f13e389a3cb804ea4d6",
-    "2018-10-30/rustc-beta-x86_64-unknown-linux-gnu": "63b69b000cda551f2499ffba6e3f1700acb2b22a47ca9ec9edcc3e578ed086e6",
-    "2018-10-30/rustfmt-beta-aarch64-unknown-linux-gnu": "bd97e8012277d49beececdf4125610c2d0112cd22f8add53f86fd7c6dac5dc0d",
-    "2018-10-30/rustfmt-beta-x86_64-apple-darwin": "2c213f43902104ebefe9eee6fa49aa36e16af972cb7aa1c63d772e5d05f74b59",
-    "2018-10-30/rustfmt-beta-x86_64-pc-windows-msvc": "316331e7aed82251ab3b701845e8b1e707947670498ce4fc364ce1d6813e1340",
-    "2018-10-30/rustfmt-beta-x86_64-unknown-freebsd": "17826e710d5912d23cd981b46b598733cf8833c20dc7d03d150c5e53ad0a38d3",
-    "2018-10-30/rustfmt-beta-x86_64-unknown-linux-gnu": "4af3f9faacd78deef2e8a06e2971ebc7540de07525ac805fcf334818a6ee0e97",
-    "2018-11-01/cargo-beta-aarch64-unknown-linux-gnu": "44802e459a0bc1677b52593d413959982c30786524412e9e1c61d67c8230d4f6",
-    "2018-11-01/cargo-beta-x86_64-apple-darwin": "e5130c79154056a451d95a3b213622d0e7e3dd3625735fa5ae725fa50849facb",
-    "2018-11-01/cargo-beta-x86_64-pc-windows-msvc": "481f845f171e4566c59d9a2df802c678b6102d2d661b731e2a71a50c597cbeca",
-    "2018-11-01/cargo-beta-x86_64-unknown-freebsd": "0b596632c675a277fac894b644ecdb86d6f44036dd089ce8d410fdd04354b8f1",
-    "2018-11-01/cargo-beta-x86_64-unknown-linux-gnu": "8519d3fca6aca45ed94daeecbd8d25c9bd1c75f1acc5078b64b771bce6986b44",
-    "2018-11-01/clippy-beta-x86_64-apple-darwin": "8672df2c6b8a18bbf9b654188de22bc8ce4c8bc407d2b3fe3ef208add4e27cdd",
-    "2018-11-01/clippy-beta-x86_64-pc-windows-msvc": "4cea4a9cbbc0b56efe11078711d244ab87de3397873c437f3f70614ef896ff83",
-    "2018-11-01/clippy-beta-x86_64-unknown-freebsd": "03fabba8670a06faeee0a944ca8e911e717a739c2bae0262c2257db69a7014f5",
-    "2018-11-01/clippy-beta-x86_64-unknown-linux-gnu": "0ad5f06495177901addb72d8eec3926986e10290969493eba0e8b465962985e7",
-    "2018-11-01/llvm-tools-beta-aarch64-unknown-linux-gnu": "7b3f5bb7f45052310efe275ed665b54b55e19b9020b04cec9240318c13c62c0d",
-    "2018-11-01/llvm-tools-beta-x86_64-apple-darwin": "b45ae0fb0b49385b555772a3faa9a5a85aa10f4bd24ba40c55048076d8cda314",
-    "2018-11-01/llvm-tools-beta-x86_64-pc-windows-msvc": "462668f55b85fa1224df30449eb67e8fe0d208caeea39d9339b44ac30867f452",
-    "2018-11-01/llvm-tools-beta-x86_64-unknown-freebsd": "acd86ceedad9f10b2cb3443df032d0b5a9b4eb6c4b30364bd3cb014449607577",
-    "2018-11-01/llvm-tools-beta-x86_64-unknown-linux-gnu": "4b4363c2d03d319e84a7f09fba5b58d188d9fdd62c9486cc4b66e9e63030ab27",
-    "2018-11-01/rust-beta-aarch64-unknown-linux-gnu": "f802784788c2e751d59d035363fb6be2b0450d650ec523115a51fea05fc8589b",
-    "2018-11-01/rust-beta-x86_64-apple-darwin": "0be8d634d17b2f92c86515a38e36f66a9f3d72bad226db58ff8cd09924092f53",
-    "2018-11-01/rust-beta-x86_64-pc-windows-msvc": "d86d633b67e6c0fba28963f5c991738575fee56c755570e505f702eed54150e9",
-    "2018-11-01/rust-beta-x86_64-unknown-freebsd": "869f1d01077a318ff0ac664a498354b079c2fc16cbec294161a56cabe6f3e194",
-    "2018-11-01/rust-beta-x86_64-unknown-linux-gnu": "7da7bd24c2f2dafa9d4baa6e7eba1547f62681fbd1dd89910d386b2260e65ca6",
-    "2018-11-01/rust-std-beta-aarch64-unknown-linux-gnu": "137d39872981d343829a8f3eecf0f33fe2f0d81ed18865004b52359d309a6b95",
-    "2018-11-01/rust-std-beta-aarch64-unknown-linux-musl": "5eb228ae2a53abfdfbfaa471a2afda29cc2b923adb82322a0c20af4592c226e5",
-    "2018-11-01/rust-std-beta-wasm32-unknown-unknown": "4f7fa7f3adafc2ec5de80cddfd3fc3072da43442cd15be9169b261f76a0a684b",
-    "2018-11-01/rust-std-beta-x86_64-apple-darwin": "bee742244d72ea7289d5d2dea519102994dbee97a5c296b2a8c6853e5450a7ab",
-    "2018-11-01/rust-std-beta-x86_64-pc-windows-msvc": "455ecff7f11499cd3822b82ecf0ab8ab34d866c4b5e17b0de84af815a782f226",
-    "2018-11-01/rust-std-beta-x86_64-unknown-freebsd": "eed13a5c36c0731b01b8926f26be5b054c341a0487628fca688e8e99f33b200b",
-    "2018-11-01/rust-std-beta-x86_64-unknown-linux-gnu": "f38a224bccfc89bd0d598764363271985d0b2696123ea10de6399c4cc7dd8adb",
-    "2018-11-01/rust-std-beta-x86_64-unknown-linux-musl": "b4f8c208a50e2640fc3761675bef31c9960e74976a1537c2fd8c9dc8a9d5fdd8",
-    "2018-11-01/rustc-beta-aarch64-unknown-linux-gnu": "acf359a4cecfc827f5ca4255c0492d46223d09d535444f0b303678918944c87c",
-    "2018-11-01/rustc-beta-x86_64-apple-darwin": "64b5a5fc8b3dc348395137df2c422adbf483168c58af5cd9acc8522dd9b4392b",
-    "2018-11-01/rustc-beta-x86_64-pc-windows-msvc": "71cbfd2793f6b55653f5ef4bdf0350dfe6d9b0952d518a3a355044ec7caa03c2",
-    "2018-11-01/rustc-beta-x86_64-unknown-freebsd": "51a5370f1776229bede506e5ab05da7cfeb5bd21a5374561acb4b7138c75d508",
-    "2018-11-01/rustc-beta-x86_64-unknown-linux-gnu": "01609bedca249906ba8e07fb681daffe094cdbf41b91e2221195474271d8e6d7",
-    "2018-11-01/rustfmt-beta-aarch64-unknown-linux-gnu": "0969e37628a3d5e56cfc0636db4d1aac7d0b01ab9df6bdeb3453adc1e2ae786e",
-    "2018-11-01/rustfmt-beta-x86_64-apple-darwin": "bbb45d6beddf8da270ab1ec6ea3b9dc2ffc03f5ba1ef3e99e87d004f652f2581",
-    "2018-11-01/rustfmt-beta-x86_64-pc-windows-msvc": "2d34424353e248173828898107e331acfbaa29a3686bb8121fdc72fbab7a37e8",
-    "2018-11-01/rustfmt-beta-x86_64-unknown-freebsd": "101a0903c5421df363420d73ebbdb52b3cb8b2bb5ecee9e383b271aa22446f95",
-    "2018-11-01/rustfmt-beta-x86_64-unknown-linux-gnu": "12d49bf16a8e5964163d12a58e8caa5bf81fedd106dc37bbd757aa4116f0d7b3",
-    "2018-11-02/cargo-beta-aarch64-unknown-linux-gnu": "808e7129f0f414e05def68ac72bb8f59871a0d21eaa9a6b9a59afa87502858bc",
-    "2018-11-02/cargo-beta-x86_64-apple-darwin": "72fce301579b799b392407c49e162285ba24ca17ad1d96ca701c7d03c83d69d0",
-    "2018-11-02/cargo-beta-x86_64-pc-windows-msvc": "f2a98c4c8928d7d3070c86c02ab93e6d78c85312e1eee2867efabf00ae235692",
-    "2018-11-02/cargo-beta-x86_64-unknown-freebsd": "8069c2b1657b3dc747912775b1569426bccf35fe6c23073408847ef232174419",
-    "2018-11-02/cargo-beta-x86_64-unknown-linux-gnu": "2e9418c06ea6dc3f869ebd12e31da2affe9568871e65f013b3695a92bdfa4c31",
-    "2018-11-02/clippy-beta-x86_64-apple-darwin": "921f5d07e73a5651173187012c476a7999f5cd78f52eafad4e8c15f2bab25b42",
-    "2018-11-02/clippy-beta-x86_64-pc-windows-msvc": "eee0ff30ede35ab957061b579836de5f9b91c36d57e71c22344c76d421abd4dc",
-    "2018-11-02/clippy-beta-x86_64-unknown-freebsd": "440576edb7ac7775d5511780662b8c820da8cfdcf71dfe7a169758547d5f94e4",
-    "2018-11-02/clippy-beta-x86_64-unknown-linux-gnu": "3ce406e0c2bb246c96940e4054b5fa9b049580ae4b61e170da2008ff945af970",
-    "2018-11-02/llvm-tools-beta-aarch64-unknown-linux-gnu": "f8021a8a0d302eb4774d31789932488e0897ec72b0d8c16cb746a2d72b749238",
-    "2018-11-02/llvm-tools-beta-x86_64-apple-darwin": "88693cabad55f568ca0c21276e76eb237215abdc9771f224ab807f8edd3aad08",
-    "2018-11-02/llvm-tools-beta-x86_64-pc-windows-msvc": "4b2f2c707bbd3506c55d48d1ff3cadd290445b227c868d596a535faa798f06cf",
-    "2018-11-02/llvm-tools-beta-x86_64-unknown-freebsd": "c8c48f8805b794ac63cbd60bb28d77c575d754c6c97af006bcf6b466adb5ecab",
-    "2018-11-02/llvm-tools-beta-x86_64-unknown-linux-gnu": "92472b453b0a6dbc38cef53cba6d38b5dbc79e3637743b77239543b33084d121",
-    "2018-11-02/rust-beta-aarch64-unknown-linux-gnu": "6e28b053d8ebcef7a19875089db13931ce89bb045d06b4bf834334df3fa43962",
-    "2018-11-02/rust-beta-x86_64-apple-darwin": "78e9fd57d2070cbe2a073758839d54b5535e14918c11260fb244bade3c1971a3",
-    "2018-11-02/rust-beta-x86_64-pc-windows-msvc": "68c0fcbd1f9887eff41c42b703fb2c34b99b2490f4e366efeee4a6bf0c1044c2",
-    "2018-11-02/rust-beta-x86_64-unknown-freebsd": "8313e8655fca87519c469c5699cf803fb0c1bd159ee335aac199ae76753f359d",
-    "2018-11-02/rust-beta-x86_64-unknown-linux-gnu": "76b2d14dc01a922b448019df7a24221f91c7eaa3e2034fcbd6189d5bac7836e4",
-    "2018-11-02/rust-std-beta-aarch64-unknown-linux-gnu": "0d57f4837af1443208abce604d74dcf6880d0cdf4e74eaf2368016f064dbc7ab",
-    "2018-11-02/rust-std-beta-aarch64-unknown-linux-musl": "0d5e585506b4cde724040d340e8e2d4a3ebe04950ca863adb238c83f9462e696",
-    "2018-11-02/rust-std-beta-wasm32-unknown-unknown": "25c7e8dbf27dd19d3d4f91062d9cb9bc6ad9aed8afacbd47dab92eba3a3d2533",
-    "2018-11-02/rust-std-beta-x86_64-apple-darwin": "fdc26de5db0e66e0f516069690a0c86ca0e4b8b75973a33dee67ce306e4c9115",
-    "2018-11-02/rust-std-beta-x86_64-pc-windows-msvc": "8c7dfe0692e2c0b9de130b64e8ab09946eff2eb419a22bb7a15cd9522995f420",
-    "2018-11-02/rust-std-beta-x86_64-unknown-freebsd": "4661fdd15b5cee0fafd4c9cb085d0614abab0b2b1d62a55540b3d4d2634c4ba7",
-    "2018-11-02/rust-std-beta-x86_64-unknown-linux-gnu": "3e2f68697620e501a9439bb7923f5676c82f7a4b4aaf822a141188c92619fe13",
-    "2018-11-02/rust-std-beta-x86_64-unknown-linux-musl": "88662ac89a6c9df7a5a77db8624777cb9ccf0ecdd9a0ced1ef9bc47e7c9e8eed",
-    "2018-11-02/rustc-beta-aarch64-unknown-linux-gnu": "d703f1cdecd77aba85024db5e94f13e50c74e66af21091107c7cd67a3179da15",
-    "2018-11-02/rustc-beta-x86_64-apple-darwin": "199a0776ad4f1406b8b6f477d12c58858816f07246d52842384e1084d8c9000e",
-    "2018-11-02/rustc-beta-x86_64-pc-windows-msvc": "a4fd3838f4459a151e83d540784953cd80c5a1a68fe3bf965399c1f07f6476bb",
-    "2018-11-02/rustc-beta-x86_64-unknown-freebsd": "f931cb44b892dc3899c9379238d8f51d35c9503db9e93ce5700f3121712c9b62",
-    "2018-11-02/rustc-beta-x86_64-unknown-linux-gnu": "7ebd46c431b8d9e8d22aa141122eaf301d5facdc449e04872019372598b04b19",
-    "2018-11-02/rustfmt-beta-aarch64-unknown-linux-gnu": "c13f8024e37f7b2b6d97586569bdefca53e99514e4b76b200b71932f4a7ce298",
-    "2018-11-02/rustfmt-beta-x86_64-apple-darwin": "0164c2c57b3ee975c571103dbf7074e24c997cc43df23920660f12de688e8c23",
-    "2018-11-02/rustfmt-beta-x86_64-pc-windows-msvc": "c33b4fe885e21f51b08dfa29d04179d0f138e87122f4f4a3898fa002567f2259",
-    "2018-11-02/rustfmt-beta-x86_64-unknown-freebsd": "ad280d28d4e7054063942cd5a60cc35538af5096f29e159ba13419b82be5560c",
-    "2018-11-02/rustfmt-beta-x86_64-unknown-linux-gnu": "60ec376659a4ad5b129307ffef4dfe9b717fcee6f5d929b1e3e423e599258be2",
-    "2018-11-07/cargo-nightly-aarch64-unknown-linux-gnu": "45f1fe31b55aac2de8fa98c5738704481e27c3bf206ca7a65b165b301f473a1e",
-    "2018-11-07/cargo-nightly-x86_64-apple-darwin": "35ad1d24795b3fe97dc06fe3b1a45c2e75cc9e62bdf491d4964863920b311e0d",
-    "2018-11-07/cargo-nightly-x86_64-pc-windows-msvc": "7147bc0363fb84aa2feda337a6bf7e3f16f26aef893218cd0b59c31793c06253",
-    "2018-11-07/cargo-nightly-x86_64-unknown-freebsd": "d537821f8acf2a89d44bc534fbf5efc27785df372005046be927c0d1ae088a23",
-    "2018-11-07/cargo-nightly-x86_64-unknown-linux-gnu": "7968167992937ad8e7284c9ea00040ddd873b759b2595eb67eea68ce81abf627",
-    "2018-11-07/clippy-nightly-x86_64-apple-darwin": "7ee34bc4e2b1121ecb8ad01bbebc54f83bafd72acb8e4f81bb3cd1106fc29cdb",
-    "2018-11-07/clippy-nightly-x86_64-pc-windows-msvc": "a65fd2d2c7e53d3876808b41491d2556a55e399a470d747427f6ece40251ca89",
-    "2018-11-07/clippy-nightly-x86_64-unknown-freebsd": "664296ae2a0226abcb58d01067b3a614fa6c66afb821e36be17faa205ef14f70",
-    "2018-11-07/clippy-nightly-x86_64-unknown-linux-gnu": "62cf4c3f179e14b6b26485d85ebf17ff676b87938c14bb1ce19d93c02197d091",
-    "2018-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu": "c2dd30b73e5e0495d7d4c05cf98f50197c00f542cef7f3ef37e095d0d8686991",
-    "2018-11-07/llvm-tools-nightly-x86_64-apple-darwin": "2cd61d0f54d3753777b019d09a2e88cc9a2fb027e947a14eb1f509e014ff19e9",
-    "2018-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc": "14c6387239ee0bd8d9d9ca0c21c808a542de4133e8477fc2f1fc958eaf6c4428",
-    "2018-11-07/llvm-tools-nightly-x86_64-unknown-freebsd": "52a726f57b80cc7d29c15b93ad35e3a7ab62fcfbd7d89f91021a783be6ffbd18",
-    "2018-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu": "ddd007ee68b7468a12d240d0f08939efa262e8d96ad7f903cbef62b461a61417",
-    "2018-11-07/rust-nightly-aarch64-unknown-linux-gnu": "f4725077e948b6eda7d4cd482a8985037a2f8ddaecc964908a490deb9ac46e21",
-    "2018-11-07/rust-nightly-x86_64-apple-darwin": "b9aaefca51aa2d7e89f5d790e865d00ec4142c79cebee43ba0d575f9f52ee65b",
-    "2018-11-07/rust-nightly-x86_64-pc-windows-msvc": "5826f958e4826b0bd0069918185afc6db0802e6d3fe72a9be075f3408b707521",
-    "2018-11-07/rust-nightly-x86_64-unknown-freebsd": "38860320b7e97193493e45d362f34d311d7aa8fface77c93fadfa15e8361df3d",
-    "2018-11-07/rust-nightly-x86_64-unknown-linux-gnu": "c1d7542e90f76d074a7ea925b5ce40ec602c9e3e04822939623a98c4d020ea2e",
-    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-gnu": "e7a4629ab15609fda17a9e16cb0f7538d4077f572ece200891726344e314295b",
-    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-musl": "25b7b0cef1f802182ffd26e62defbc5f6fc79504739d14627bc74ca1db24bdaf",
-    "2018-11-07/rust-std-nightly-wasm32-unknown-unknown": "9d1bcbf50fdcd9912fd98901ec40c7fd5d73ef2262a70322b4ca52381363c34c",
-    "2018-11-07/rust-std-nightly-x86_64-apple-darwin": "0c988a60e72d545b19b5cef616ddd3411a278226abccceca622581871f2b5cce",
-    "2018-11-07/rust-std-nightly-x86_64-pc-windows-msvc": "0d04200b3bc5ad5f939d98f7af083c0576aae11876830492f9964de23dd33acd",
-    "2018-11-07/rust-std-nightly-x86_64-unknown-freebsd": "ca648e7eb243cec32dc5a1b4e2fe6d67c2a00be56326e4d7aec9f2bbeb4dc138",
-    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-gnu": "bd8daba5c2d36e261da6f0ea8b5893e7fe94252eca7478d581c036fc1acb7c36",
-    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-musl": "9d5bb908baa470e4da390f5b32f7db2c15fdc347d379b61522a33128bb486b12",
-    "2018-11-07/rustc-nightly-aarch64-unknown-linux-gnu": "11caf45fef229d85efb36cdbcf955d95fae648c27ca4ffd153bad316eb58793a",
-    "2018-11-07/rustc-nightly-x86_64-apple-darwin": "cddecdb0d595cb8b944bf70b2284f557743f5637536f2181ad0036806cf56217",
-    "2018-11-07/rustc-nightly-x86_64-pc-windows-msvc": "479f58f34616b83c003fa29e68ee84c91ee5521038f255a7cd3b597a2f5082d0",
-    "2018-11-07/rustc-nightly-x86_64-unknown-freebsd": "47f81ec8c4ebbcd4e948033b5db72c1e9bec6f284fdaa5bdf59bcc92b075333f",
-    "2018-11-07/rustc-nightly-x86_64-unknown-linux-gnu": "7f1aa11f8e503e6e9a03b6cd05ab12b46837bb7597167c72112abaf1481e46cd",
-    "2018-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu": "9b64705de20633c73a39d47deacbacdce11181dc5e06fa632ef08b8a3a7136e0",
-    "2018-11-07/rustfmt-nightly-x86_64-apple-darwin": "bb86c58a5a12922ddd2d19a3cffe9cd8d87785e57f72cdc998e94926a68345a2",
-    "2018-11-07/rustfmt-nightly-x86_64-pc-windows-msvc": "4612d2961bc5d0b24863af21fd0764b8ec8d2a843f1a39b97b418bc283b8fa2b",
-    "2018-11-07/rustfmt-nightly-x86_64-unknown-freebsd": "b0677e91bb7c0645844f988e7f7b625768f0a72947536a27fce7f5a9a850c5e0",
-    "2018-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu": "e1dbad0cb0afccdf5e05f97129f9d34bc62ce6475dd8f09fad2d31a8129acf64",
-    "2018-11-08/cargo-nightly-aarch64-unknown-linux-gnu": "df9cf735f2c0efc48356832b0a11ae3f6df0d78879fb93a3b9cfecb15e79010b",
-    "2018-11-08/cargo-nightly-x86_64-apple-darwin": "e0a585f21907bd78820c4fd0ac56625ba10053a9430e9fab014e90e42f4a1fab",
-    "2018-11-08/cargo-nightly-x86_64-pc-windows-msvc": "025741e19216a317d8c2bb27950fbd7c3eef6eae075c606fc4b0622d3a92b89c",
-    "2018-11-08/cargo-nightly-x86_64-unknown-freebsd": "7e9343a3885caa12c1fb7f3007e8c72ce0a11ea6696839e0882ef7e560aed6d8",
-    "2018-11-08/cargo-nightly-x86_64-unknown-linux-gnu": "b421dd73cac889804f9d3758f5ef32157885a043abfb21651182fc9f672b7491",
-    "2018-11-08/clippy-nightly-x86_64-apple-darwin": "a1b8fa097c8814ea239bc78f13df97a39d7361516b68ef340d9e42d0ee2905e3",
-    "2018-11-08/clippy-nightly-x86_64-pc-windows-msvc": "f863e10d8b82428771ac10a3219094f4252239df68f611a4dfa075a836f6be75",
-    "2018-11-08/clippy-nightly-x86_64-unknown-freebsd": "87cc3be056acb88e08d2dffbe7924aea58e39bb7380cda44e23748f790f15e95",
-    "2018-11-08/clippy-nightly-x86_64-unknown-linux-gnu": "b1f0ca2c7f5367dc044a3ca1702618e0e58f777369d470a8173355e2f4507127",
-    "2018-11-08/llvm-tools-nightly-aarch64-unknown-linux-gnu": "fe2283cabacf6b8dbcd8d11eddb11a2badb750091ec5b38926ad48d3577da601",
-    "2018-11-08/llvm-tools-nightly-x86_64-apple-darwin": "b173d662715ec4edacdb8e06570cd471a6f63d05b49c6867f95ec366f8a2e0db",
-    "2018-11-08/llvm-tools-nightly-x86_64-pc-windows-msvc": "558cd81ceb5e08766ade45cffc98a8d1a179d34f671f9b9518627e8358d65984",
-    "2018-11-08/llvm-tools-nightly-x86_64-unknown-freebsd": "7d77f85900b0aa276df746bc023b1211c4221e6183ef62663565b65b8fadd9f8",
-    "2018-11-08/llvm-tools-nightly-x86_64-unknown-linux-gnu": "c634eb65a3839b176563823d576b1f4705cfcb3e91b237f2c4f852ff5ba08d2a",
-    "2018-11-08/rust-nightly-aarch64-unknown-linux-gnu": "20ef5c5f59171df0335846c6c3315c5e3c495775e3c5b1060481d70421153412",
-    "2018-11-08/rust-nightly-x86_64-apple-darwin": "921f19787a155e5240e21fb2bc630e5907b964652b0f7553b64acf819a0a2d43",
-    "2018-11-08/rust-nightly-x86_64-pc-windows-msvc": "46d76bb12cedd53927cb35fb688540010b5152568467508fa92b0745f0e39463",
-    "2018-11-08/rust-nightly-x86_64-unknown-freebsd": "32c28d8e915086406a3493d59d0e3b4c4751f77a3b34d257a3341aa4e5f8ad4f",
-    "2018-11-08/rust-nightly-x86_64-unknown-linux-gnu": "5f33f1c01720e471b8293d304a01f354363418dc7ceebf206529a34f932c3a82",
-    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-gnu": "e83ecf484a848053a8679c8164340f90bd6c5823d9340b4fc5318c6265e544f1",
-    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-musl": "89e192bc7e9fad3eea6e24f967b9405b35c677b1fe3a6b8fb4ab4def4f6378d9",
-    "2018-11-08/rust-std-nightly-wasm32-unknown-unknown": "0e12ecd9a2bbff67b8d82c15200acdd32d1f91fc1761d0b72fbbb5d32ae629f9",
-    "2018-11-08/rust-std-nightly-x86_64-apple-darwin": "9d5e89e71f888247093b5615079da538a56c2758eac270173a4f85a57ef92967",
-    "2018-11-08/rust-std-nightly-x86_64-pc-windows-msvc": "e891a3ee103e65e8e337b3c9c9d1e410c4be97b1318f820b591565b5ae6340ff",
-    "2018-11-08/rust-std-nightly-x86_64-unknown-freebsd": "64aabfec15a2b773c27892e58514161cb05ab370e3291beb1cafc7d270772389",
-    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-gnu": "efb8f6f6aa2c5a3f1c069e05b74fde6a85985837054faf3bc565d839902efedc",
-    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-musl": "d2629d2ae1dae0b80bff33350f1bd469e145bfc4b935ff4bcb79240ff23ab279",
-    "2018-11-08/rustc-nightly-aarch64-unknown-linux-gnu": "494173aa705efeef4df2d88278608bd71b477183d85a670a577051c76c5ee99c",
-    "2018-11-08/rustc-nightly-x86_64-apple-darwin": "316e7727a136a82a20832a69b18f74add335e9b659fa7e0d8c7d12c0d11224b7",
-    "2018-11-08/rustc-nightly-x86_64-pc-windows-msvc": "489cb54446374eccc78eca18aa86b4159d47fdfa7bab0ea9a20cb68fa4d80071",
-    "2018-11-08/rustc-nightly-x86_64-unknown-freebsd": "874b7055e0cb609ce34d38456bda888865c63fcbc7abac5aad147f2a21a7d147",
-    "2018-11-08/rustc-nightly-x86_64-unknown-linux-gnu": "e50e43d71573e069503aa6157d1736d390345006965fa889842835ce80ae36e2",
-    "2018-11-08/rustfmt-nightly-aarch64-unknown-linux-gnu": "4f5f4077d0e1c888fa3366dad638b5e8c7aa032deab83334a170d8e4275d8e47",
-    "2018-11-08/rustfmt-nightly-x86_64-apple-darwin": "b6a0f812726134aea52e2b6ad708c0fb1052f80f1515a66cddeeef07052a67cb",
-    "2018-11-08/rustfmt-nightly-x86_64-pc-windows-msvc": "eb444b276ae5f6ed2c1e6dce994e17ebb94b130747a05c402e0c96b2623a554d",
-    "2018-11-08/rustfmt-nightly-x86_64-unknown-freebsd": "8b31f7677eb0e7bf6ab145a6347e0ff00e57ec3642db3269763d97020cad2ebb",
-    "2018-11-08/rustfmt-nightly-x86_64-unknown-linux-gnu": "bf4c5913c199a5cfeea53432c880a02ba1ec6b38eaa59f012a909a131cf11cf6",
-    "2018-11-09/cargo-nightly-aarch64-unknown-linux-gnu": "e2db9ce2b561d7fdc456431b661be0b68e0a97b932096595fad273a9dfaa8b05",
-    "2018-11-09/cargo-nightly-x86_64-apple-darwin": "696507e163c5ea342a3780da51efd51633dcfcc980b493479928b9a3e0894157",
-    "2018-11-09/cargo-nightly-x86_64-pc-windows-msvc": "0537061725164e1c344b73ec85a1983966537e7f0d4c231233bd6aa6a30428e0",
-    "2018-11-09/cargo-nightly-x86_64-unknown-freebsd": "07935c23f2f71e30092672010975ed16d34a9f50a9ab4deb86c9846d79a4729a",
-    "2018-11-09/cargo-nightly-x86_64-unknown-linux-gnu": "0f5448e37227d79689967658252a43d48c596ee875fff5d7a530b20cfd408bdc",
-    "2018-11-09/clippy-nightly-x86_64-apple-darwin": "42ee57c56b42dd837b9aaa4307cb9f57421cb430264048de9b291733438f6f85",
-    "2018-11-09/clippy-nightly-x86_64-pc-windows-msvc": "83b0f6b8423dd3061d5d9956371e6665f13bd857e711226f9684e29b88294593",
-    "2018-11-09/clippy-nightly-x86_64-unknown-freebsd": "0dc28f63ceea25edefb7b96bf5c8bf746b68505307ebd9c38a8aa7b6d3d2059e",
-    "2018-11-09/clippy-nightly-x86_64-unknown-linux-gnu": "f56e10ae1c09b0356514fdb411a9b38597d824e080e7cb050588fd627c4a544a",
-    "2018-11-09/llvm-tools-nightly-aarch64-unknown-linux-gnu": "83188eccc2b7067dcfc960492f91d23ad36ea6460005ac6b91c98d20694e60a6",
-    "2018-11-09/llvm-tools-nightly-x86_64-apple-darwin": "03e2e4ba7ffabe88b118f1207b820cc6c7ab0d79d478c1687ec5bb1c903b4045",
-    "2018-11-09/llvm-tools-nightly-x86_64-pc-windows-msvc": "63a4f2c85f3ef51efb0075944ad0249337cdd7c9593036995f79699393a458d7",
-    "2018-11-09/llvm-tools-nightly-x86_64-unknown-freebsd": "f9ddf5f1e02b800aaa0add32365d62e5dcf590cc130af5b209cdf8520f9262a1",
-    "2018-11-09/llvm-tools-nightly-x86_64-unknown-linux-gnu": "8b3e2e2bf77224e181a9b1987bd2ae940a0462f8b0af84b59de484f8fe96ffb8",
-    "2018-11-09/rust-nightly-aarch64-unknown-linux-gnu": "4d0f22349061a40a834ae6a40640c0f4e8a19f068a215af0fb0b9a7250942d3f",
-    "2018-11-09/rust-nightly-x86_64-apple-darwin": "934b83bbfcbca605875103293cf691a56429661e929e1c29fec2d3c5c1d65143",
-    "2018-11-09/rust-nightly-x86_64-pc-windows-msvc": "6659d7b9001a3613ca6b2bb64e5f6bd67cae51bf02e81b8b96dfe2299a180a21",
-    "2018-11-09/rust-nightly-x86_64-unknown-freebsd": "b50b1cf51e8bd138d55dc77f681904e1b431e7c956951ec603a3d94ff81a0783",
-    "2018-11-09/rust-nightly-x86_64-unknown-linux-gnu": "163e0666f2f7179caa9c5baa8b0280c618dc163007a73f5da0a0c917bd2b8902",
-    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-gnu": "cb12c26ec032ede34f925ea7c57118c8694dee439f0e258f8655b83e08512a43",
-    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-musl": "5e0d20f6f2b01bb661724cb5478fddd37c560f2848af9961da44d0ae75029b1c",
-    "2018-11-09/rust-std-nightly-wasm32-unknown-unknown": "a0084c768151b5cb7554085b77fdbbc014a1ba246335623a36b58e7f6bb95fb0",
-    "2018-11-09/rust-std-nightly-x86_64-apple-darwin": "dbc9ffa483484380e41b6514465523f6ef106be5708374b714458d14f76149c4",
-    "2018-11-09/rust-std-nightly-x86_64-pc-windows-msvc": "40e4194f3abd9c1eb97c3783009571f96d83e80018662c4ff6fd60e992b50ee4",
-    "2018-11-09/rust-std-nightly-x86_64-unknown-freebsd": "ab8a32d8efb0ab4686526c6cf1380161e87a89015464f5d5f5438c99723675c7",
-    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-gnu": "1418ba09f97c6ba91e2df5ba0b11cf1c53498710bc6a147fe8f4be455a96c4d8",
-    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-musl": "3262404dc8b0f509b3d47413340d825f99940f954ad4928fc0b39e2032c58230",
-    "2018-11-09/rustc-nightly-aarch64-unknown-linux-gnu": "167fec713804d8af1fa4f543e79ca5cee259f1b966b8e04c99efba75901f4c8e",
-    "2018-11-09/rustc-nightly-x86_64-apple-darwin": "55ca5ad85b0afd61a419e374f8e6320b4f4fe30f8092005cdec9e63103812ea7",
-    "2018-11-09/rustc-nightly-x86_64-pc-windows-msvc": "dd19c5a4b209a9f46dd2f99eb7ec0898bd00accf1c6e8a97222c580bcf62e32a",
-    "2018-11-09/rustc-nightly-x86_64-unknown-freebsd": "bd6bb0228aeab01f425cb2ad55b2e0409b43e79450c2830183a6878cc2d2bdc4",
-    "2018-11-09/rustc-nightly-x86_64-unknown-linux-gnu": "2c475f886123353c9388322da6e13a67b6ae902d8c249f8e95fde67429f7bf37",
-    "2018-11-09/rustfmt-nightly-aarch64-unknown-linux-gnu": "159353d0fc3b7d6aea127df348d7e824da79f995bf286df0bf03ed0615b7e875",
-    "2018-11-09/rustfmt-nightly-x86_64-apple-darwin": "940a39cc86d1cbb02535065d40993cc52acb223487c9efd4ce396950b6a72ed6",
-    "2018-11-09/rustfmt-nightly-x86_64-pc-windows-msvc": "896305dd7fb4975ccdf54c569faf05ce0ff9a13fb0b226904fb6594ed5e5c03a",
-    "2018-11-09/rustfmt-nightly-x86_64-unknown-freebsd": "7c313ee99e0bd3ac8ec13b576b07e6e64b0eed22505ddef1710bf2c7b1236378",
-    "2018-11-09/rustfmt-nightly-x86_64-unknown-linux-gnu": "4d1dbb88662353ea4bc353ec4d73600d72af0fc51f54dc3f0b8ee0b0aef05a15",
-    "2020-02-16/cargo-nightly-aarch64-unknown-linux-gnu": "2b9e7a1be3d4599e22e3070703e76643c12a60b16109f1bcba114d9453d41e48",
-    "2020-02-16/cargo-nightly-x86_64-apple-darwin": "c23632fbdc4a64b53bdc6a0c439a5b8a496e4450805b1ed421258822a4124175",
-    "2020-02-16/cargo-nightly-x86_64-pc-windows-msvc": "f81d3f8baecbe6b461836e667fc6035df50d645a84c58ba1d294a53a654323be",
-    "2020-02-16/cargo-nightly-x86_64-unknown-freebsd": "a2933a0e3092320705a0fa4a9dccf32e6a6566bd7c1440554a2285a98279ed50",
-    "2020-02-16/cargo-nightly-x86_64-unknown-linux-gnu": "658813da4742c713a7486e65d258c45492847c0a3508f041da187d03a50be8fd",
-    "2020-02-16/cargo-nightly-x86_64-unknown-linux-musl": "b197fce52a420f4d91c25794c4ffbc20d10a14918a299d1f8e8c93acb415c42c",
-    "2020-02-16/clippy-nightly-aarch64-unknown-linux-gnu": "47a8f75f95c105fa77fb2807224041801db639441608512be218c39acedf0001",
-    "2020-02-16/clippy-nightly-x86_64-apple-darwin": "d388e393a0cad72bdff876a99b2e5fe9f6c0d2c606a6184630aeda1ef4a06f76",
-    "2020-02-16/clippy-nightly-x86_64-pc-windows-msvc": "783fd1a17cf99c8193a3b884c80768175e7216b3e7c9a38a9fe4348e3bf66bd2",
-    "2020-02-16/clippy-nightly-x86_64-unknown-freebsd": "ff5e128ebd9fe15ae3cc4953f937f92338e332054c1deb3d42b967c2e2a345be",
-    "2020-02-16/clippy-nightly-x86_64-unknown-linux-gnu": "3e52e6fb619b84e3cb36cc42be3c21599c1e6b72fb8738a5c8703d401f69afcd",
-    "2020-02-16/clippy-nightly-x86_64-unknown-linux-musl": "1f1d448068a8bd58d8ace58ec201d5c55d492610ba74c4a8e0ed129060b290d6",
-    "2020-02-16/llvm-tools-nightly-aarch64-unknown-linux-gnu": "f0de4de8e364ee8e0aefc07500caca3917d79ceb4fd52a1602b5985b4c40ec71",
-    "2020-02-16/llvm-tools-nightly-x86_64-apple-darwin": "b9ec36e5c51f2dc1051e4b5831a49c096836f95c8bb87c19d6fa12bcacaaa914",
-    "2020-02-16/llvm-tools-nightly-x86_64-pc-windows-msvc": "4a2b966614e6bb7a1fc054ce42707c8a2b082b2f28c76c8954a19a65ea35476c",
-    "2020-02-16/llvm-tools-nightly-x86_64-unknown-freebsd": "235fa158239a4b498846eebff92639a87c708056e1a91215377f0d485e354c08",
-    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-gnu": "f066cf2b315d0b6edc95d1b5b1b5b7a2275928045f4b2e4329144ca9cee85b6b",
-    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-musl": "ad60578632fccc91b8503a1baa7f15629c07ffa0572c43a704cc1316ba138894",
-    "2020-02-16/rust-nightly-aarch64-unknown-linux-gnu": "9edd6c4c0d1b8626c905d91d36330fd9c2671d33f82d5bcd4413bb8696fb628f",
-    "2020-02-16/rust-nightly-x86_64-apple-darwin": "608d8747aa928b128b4da9565327fe791ebc787b96e80f09ef84676f3a0a3efc",
-    "2020-02-16/rust-nightly-x86_64-pc-windows-msvc": "735f5f2762ff94b04e70209e46a57202a13a65a8b12a403b620f0896c4fedaa2",
-    "2020-02-16/rust-nightly-x86_64-unknown-freebsd": "69dfcc2b029da84f68c5d543af8262a4735be574a29035d34e452932fcd66643",
-    "2020-02-16/rust-nightly-x86_64-unknown-linux-gnu": "b4f6ce68cc5fde78dc7ab06db6a6f30abde85ba6e5360ea3f75fb8c80232ad38",
-    "2020-02-16/rust-nightly-x86_64-unknown-linux-musl": "0e6b37f73853ac4cde22e883abf4251fc8af2c83565a949159c6c0c41177e8cd",
-    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-gnu": "ef3c2edd450ef3ef214a5cc412de4527631f9324a28168997233a9ebea6f08c9",
-    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-musl": "e1093f086fe07fb3bfb9e9a4c5298fa6eb505b9775f7667322de019b18296de8",
-    "2020-02-16/rust-std-nightly-wasm32-unknown-unknown": "dcc9ce64c62e2100b35194b6a9ed3d9a7572e1bbf28ca09da687af82ff1dbfc9",
-    "2020-02-16/rust-std-nightly-wasm32-wasi": "6e3c13f44ea6e997b5fb0a3818ee8cb850c9654857a438f6e8df42a6e1decf75",
-    "2020-02-16/rust-std-nightly-x86_64-apple-darwin": "d391be4bdb713356fb34cdc03475a830e6bd4476639c46ef19a8a4c05513bc4a",
-    "2020-02-16/rust-std-nightly-x86_64-pc-windows-msvc": "5881bc3954fe5c7a8080176aac4fae95bc079d020c9c68f9fc7d1064470c4493",
-    "2020-02-16/rust-std-nightly-x86_64-unknown-freebsd": "6575eabdfaed4b0490cdfffcbb5860036dcc36bebdabc58d839c088ff5556a6f",
-    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-gnu": "28a169e9b0f0986a50254caf14be863cf6f1ed3aec8342a7fa756dc1af76f38b",
-    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-musl": "fbcba5f59fc47157208a28786a9cafd4046359fc821c568afe798721f5bb4f68",
-    "2020-02-16/rustc-nightly-aarch64-unknown-linux-gnu": "e9cf265820f69331abc9a7c4da0c26febffd4017cf4e6d0840d4ed22b3dd332b",
-    "2020-02-16/rustc-nightly-x86_64-apple-darwin": "db0338b3e1934147dce0bf6420d9c147caa6aef2db1aca44ca8fef47b7247615",
-    "2020-02-16/rustc-nightly-x86_64-pc-windows-msvc": "d51440d4004e49670c5cf803f96aa222c68f09348bfca46f6e0d4c8728908065",
-    "2020-02-16/rustc-nightly-x86_64-unknown-freebsd": "c76fa125e6d17b16a96b01a875d826f20849b09970b49ed1183601a0e7803f6f",
-    "2020-02-16/rustc-nightly-x86_64-unknown-linux-gnu": "456af585ad4408ab5f0c7500264ebb4a5f6338c0aed642edb81224ec6146b546",
-    "2020-02-16/rustc-nightly-x86_64-unknown-linux-musl": "a98a07ecd9d291e3788d7e2d0dce82adb3777570afdfbe5707d05360d058fdb7",
-    "2020-02-16/rustfmt-nightly-aarch64-unknown-linux-gnu": "76b5fb48db5de274950f86a9b1cb69738311d2302da3e079ec772302aacfd999",
-    "2020-02-16/rustfmt-nightly-x86_64-apple-darwin": "77b467fec83ea6d8f2b4e4e186806d77ae7ecfab1de618f4a7d857aaa7f6823f",
-    "2020-02-16/rustfmt-nightly-x86_64-pc-windows-msvc": "eee4d08ac820d85491a9f13909f178dbdcc54edc5d98d2e433a073c6b1aa611a",
-    "2020-02-16/rustfmt-nightly-x86_64-unknown-freebsd": "a47062919f16888d2baa58a640299a5a9ece3f0d6537dea6e6241ac0d8877e7c",
-    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-gnu": "65513b8ca698f6859af19be665bead97271e7dbac3bc6058256ede1d7340aea5",
-    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-musl": "ac3275329a7f08749f8bbd08a9c183e24ad0a58c02e7cf70e81c41030a886900",
-    "2020-11-10/cargo-nightly-aarch64-apple-darwin": "cb4578ec077cfc56c3b23c59d4bf219aa05f0dbe5b431792d0860ed121e3619f",
-    "2020-11-10/cargo-nightly-aarch64-unknown-linux-gnu": "de75beda2e7c9501c88874e9769101204f1726eb7b26b79c4d8c162f4b2b7eec",
-    "2020-11-10/cargo-nightly-aarch64-unknown-linux-musl": "0292763ac22b539d4d17d7696fa649dccb8ba0f90c86f8ffeaac961add976c39",
-    "2020-11-10/cargo-nightly-x86_64-apple-darwin": "ad4add153d93e7db296560da01fe92c8c975d444e33bab4869ed10cdf2023e48",
-    "2020-11-10/cargo-nightly-x86_64-pc-windows-msvc": "ab5bd83e8fdb079f20c1f3623d334972d831bb5a339c8450f82a1034124ff72f",
-    "2020-11-10/cargo-nightly-x86_64-unknown-freebsd": "72ab8898aea8bf1f030da12ea3b4d1dbc18e5f7c2df28282fe915390f12d7939",
-    "2020-11-10/cargo-nightly-x86_64-unknown-linux-gnu": "82b6b0c0f20d4d23b769d79b6122cb7a074d9f222325b07503eddd73817452b5",
-    "2020-11-10/cargo-nightly-x86_64-unknown-linux-musl": "bae2a597c7c2ad907d49c6420bf85f91ea754cfb771d39d8b734c8d30563352d",
-    "2020-11-10/clippy-nightly-aarch64-apple-darwin": "c874202231fc418dc3fea539440d413c82d354957b25fb355e8afb01b8624d9a",
-    "2020-11-10/clippy-nightly-aarch64-unknown-linux-gnu": "f2730540761a100dcec0c36773411f69e74dc1ca96c67bc0ac61e6567f84a422",
-    "2020-11-10/clippy-nightly-aarch64-unknown-linux-musl": "be671660b1f8d347e69e7ae1e7d86f239b9d865245f97b790cd89738363f79b8",
-    "2020-11-10/clippy-nightly-x86_64-apple-darwin": "5ddbc1e21dbad3af73d8d0618439ec48b0432b392989f86b9e81d952badb4d16",
-    "2020-11-10/clippy-nightly-x86_64-pc-windows-msvc": "03232d753f7b5d5f384352bd4da99aa19d476e9d90fdb4975fed49f0fb4f1ba0",
-    "2020-11-10/clippy-nightly-x86_64-unknown-freebsd": "ba070cc03d05d50c00c106742fbd376ee770c0b81cdbdde549caba1535f290b5",
-    "2020-11-10/clippy-nightly-x86_64-unknown-linux-gnu": "02e23757d51c8fcedcedf02ca336a36bd13b45bdad5abb0931c9028e7228b406",
-    "2020-11-10/clippy-nightly-x86_64-unknown-linux-musl": "862dd065e8933b83c17902aaee3f20a48ff67e034f6b7c7ec05ea49e240d0ad3",
-    "2020-11-10/llvm-tools-nightly-aarch64-apple-darwin": "e2b1803548aeedb1e6b51724c9cbab123626fc88846eae53adf0a1c55d4a364e",
-    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-gnu": "442255a2859c2e3345c8ceea7a28359fb02d42460ecf51d92395c1dd85c9a8af",
-    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-musl": "85de8206f0ea17b51bf1ff3154d9afd6855c54e6b33babea22ec512cf837c283",
-    "2020-11-10/llvm-tools-nightly-x86_64-apple-darwin": "9ae35e98f8f930257bb103ae1cffda42476338838f490a62ba9d93638ce122ec",
-    "2020-11-10/llvm-tools-nightly-x86_64-pc-windows-msvc": "4106227bf29d1dbaa35ddc12f8a2c2f16ef27fe21971f6f7ed0d4356691a4055",
-    "2020-11-10/llvm-tools-nightly-x86_64-unknown-freebsd": "91dbd775c36f8b29bd688a1e75b10ab065928622985aee7e96848952ab6d85d9",
-    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-gnu": "532a0883b16bbaa70bb2e9ba6c769594db35b1aaacbfa9ef06631a91bfe8048a",
-    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-musl": "fc476f62ae3a917a634afaa3fba83ee756799de11b7bb0af38a9d85e75a1a66c",
-    "2020-11-10/rust-nightly-aarch64-apple-darwin": "bcb30524c7f4520bda573d31962ce5b058cd9b6d05db83431b182483071fb429",
-    "2020-11-10/rust-nightly-aarch64-unknown-linux-gnu": "7d6453eaf2640a9979707e6ef92b8dcfed33bd7bf5a7696d8efdab05bed182d0",
-    "2020-11-10/rust-nightly-aarch64-unknown-linux-musl": "b25c99b1b0f8aa36d17f86677b040bd73e2d2128938b0bfdf6cbcb1782783001",
-    "2020-11-10/rust-nightly-x86_64-apple-darwin": "106395f200ef0e6d08baad05d5da786dd17c612d25ba5d7c65a7031d52af9bd5",
-    "2020-11-10/rust-nightly-x86_64-pc-windows-msvc": "6a28970950157102e0ea6799da0235483cad141b2cf112718abcaa19ed81170e",
-    "2020-11-10/rust-nightly-x86_64-unknown-freebsd": "dce8b0971da6c265190d0c14cee3e4d82ad24ca224398ef3002a870f3db31fce",
-    "2020-11-10/rust-nightly-x86_64-unknown-linux-gnu": "29696ffa840261dec1a27018054599a93f49facfa6813f7ad1a875cfb1fc6fd7",
-    "2020-11-10/rust-nightly-x86_64-unknown-linux-musl": "a9f599adc294cbbd73e56efbec0d14306cb2da15f39fe0584969ffca4b00b86a",
-    "2020-11-10/rust-std-nightly-aarch64-apple-darwin": "80e57cd44992e0a9a29bb0233a4c7301369c7f00e9a63f89e944c5fd75931d40",
-    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-gnu": "a4d0fa574f93e530f421651ec38f5374fdc8be20de717c435750bfcf0ae15f36",
-    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-musl": "b1921c71b00cc8c8b665275ba4becaef16e860b88d4fcd2c6cae31cc6f929d14",
-    "2020-11-10/rust-std-nightly-wasm32-unknown-unknown": "636cb560095c23e12d629ea21dc85af954c2fcb2df57f25b40f11826d7547a46",
-    "2020-11-10/rust-std-nightly-wasm32-wasi": "baf705571736331dd5449e1473b590477e2a48ad0adc6a897516fb8f1a5780fd",
-    "2020-11-10/rust-std-nightly-x86_64-apple-darwin": "2b0d1758c20fea48e8afa5c9cc2844e9eb5c77376992f2af1e68261e1b0bd773",
-    "2020-11-10/rust-std-nightly-x86_64-pc-windows-msvc": "9e5f1089de87e9d54417038f7d5d30de5e604bf82f5be557361cd02b55abb018",
-    "2020-11-10/rust-std-nightly-x86_64-unknown-freebsd": "24a506f85e178be0799d12f9354c6129004068552c8f5321a519b033631b815d",
-    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-gnu": "367c14b7fbe98e264b0e4b5a9ddaf3f78ce3ce09bbef4c7be33a3f2abade9ad9",
-    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-musl": "b2e929d3821b104796dbc0521228cef25ce6f55e3494dfc7c3a852b6404c4acc",
-    "2020-11-10/rustc-nightly-aarch64-apple-darwin": "a461f2486013b5cec450c8f79230e83878689b803a38df7304adea27b025ef1b",
-    "2020-11-10/rustc-nightly-aarch64-unknown-linux-gnu": "900170006c4c2d88cadc0d915d410588cb80150817e53aa7fca41a459a5ec500",
-    "2020-11-10/rustc-nightly-aarch64-unknown-linux-musl": "bf8d81b551229263f52ecfdd561ba6698d7030832723e5c3721d5ada5d478e7a",
-    "2020-11-10/rustc-nightly-x86_64-apple-darwin": "7a443dfb068bb7e3854dd6475564da33a57d3f225ce03ad8bc973e8900960b69",
-    "2020-11-10/rustc-nightly-x86_64-pc-windows-msvc": "e7b325e55d372aaf4be400273673711fe78271b655c0b710d62a972b8044b9ef",
-    "2020-11-10/rustc-nightly-x86_64-unknown-freebsd": "3ef55f82aefad5eac4398977d34b1963feb05b1cd654005d385da26624cb2f7e",
-    "2020-11-10/rustc-nightly-x86_64-unknown-linux-gnu": "7498af27587f4ff235b0477199eec4128a65f54d4c05e4ddb9c632685ec526b4",
-    "2020-11-10/rustc-nightly-x86_64-unknown-linux-musl": "ecb5626e23ea84e1b14fe064b6fb1afc145ec280356a6f197ec410c23756f217",
-    "2020-11-10/rustfmt-nightly-aarch64-apple-darwin": "e4e992764d26792ba901fe4c9590cbb7a72a8a71b524f54ae7b1312d2824bca4",
-    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-gnu": "7ec62c4aaa8a89f94e037c39907caaea942c9fb44e5dbadd65be7b9c8650c594",
-    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-musl": "5324c21a1384ba88a2f2552386050b566a3c48673949218b65e26b6ecbe04c6a",
-    "2020-11-10/rustfmt-nightly-x86_64-apple-darwin": "c169fbd9b21ddff9e7558f8674755410d170aea6521cccadd06a14d1091870c3",
-    "2020-11-10/rustfmt-nightly-x86_64-pc-windows-msvc": "d3fa6a30d2be44c636478c0259337c6f449a55bd9f037cbe0600a18da143c2e5",
-    "2020-11-10/rustfmt-nightly-x86_64-unknown-freebsd": "3681fa62a68c50d0de839dfe424e30ae72d8635e15267042191bb10195d265fb",
-    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-gnu": "75e17c1e4bcfa70669aefda8ba34a7e8d6e0f5d842096b98135f3447b37d3538",
-    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-musl": "84bc7707f7ce989c1ed452817153c25fc7324d1795650787fde878ac862ecfda",
-    "2020-12-30/cargo-beta-aarch64-apple-darwin": "6c0f23ddbb4e75155d1dfc24fd9103651eea565626f8b4c292ae09b17ef287f5",
-    "2020-12-30/cargo-beta-aarch64-unknown-linux-gnu": "ae0c5595646ae7a532b5f14720b67a82875b6d4bfdc6c8a2982d7c40e0d9f318",
-    "2020-12-30/cargo-beta-aarch64-unknown-linux-musl": "e6d576a7690ec8f16c93899b3cf5daab1608c6e4bf18fdd8462a0a61180e13a9",
-    "2020-12-30/cargo-beta-x86_64-apple-darwin": "07b59728f4ac5f95ff8fec3813e8ae1afa4d00105e490866373ba99ff25bc142",
-    "2020-12-30/cargo-beta-x86_64-pc-windows-msvc": "cebcf3f6f2a502ac53be02cfc3522c9bb6ec4954ccf93cc12026028102706900",
-    "2020-12-30/cargo-beta-x86_64-unknown-freebsd": "9975b922979a74c48b8461d2c67086565fa84b4f2be8857b5027d9f1db9e7cb1",
-    "2020-12-30/cargo-beta-x86_64-unknown-linux-gnu": "cce34205c11ae5f6c1c2fe08aedf1448d0f7bd8e11d3a7e467c12e46595d5372",
-    "2020-12-30/cargo-beta-x86_64-unknown-linux-musl": "ba71eeb40ca9ccd8d8b356fad1b7d6cb7af4f982a00b5feffede345895104561",
-    "2020-12-30/cargo-nightly-aarch64-apple-darwin": "8ac787c50ad37ab398d504cb915987ca85d87372a224564935aa1203d4cb5477",
-    "2020-12-30/cargo-nightly-aarch64-unknown-linux-gnu": "81195f8efae71dd6f96bea9ba1881bb647d127a130570289d026ea55a43ce6e5",
-    "2020-12-30/cargo-nightly-aarch64-unknown-linux-musl": "220ef2d21821c6c358a1672d4895389e09b78d4ab7270453f48785b9974b1901",
-    "2020-12-30/cargo-nightly-x86_64-apple-darwin": "28cfbe0214e99e311c58ae2fbcd23ccf9d31d97fcae106adf174f8e697416d4f",
-    "2020-12-30/cargo-nightly-x86_64-pc-windows-msvc": "80678407f5b2bc1cd01b36fc06105b1035740b9002f728629f3555965d0a977f",
-    "2020-12-30/cargo-nightly-x86_64-unknown-freebsd": "812501b738c59027b61ef6ac2462f0be76d4a95b9c78a301ef6dd33b225ca5e8",
-    "2020-12-30/cargo-nightly-x86_64-unknown-linux-gnu": "3d16880431ec9a218808806d6b768c7e29cc9ee6298a4dfa796f0fd5bef9cac3",
-    "2020-12-30/cargo-nightly-x86_64-unknown-linux-musl": "c4798bc41dc9a65b23962b0250cff14c648fe6804d0b96df9f59460a0741e916",
-    "2020-12-30/clippy-beta-aarch64-apple-darwin": "b3535c7e1c72d5380518ab2568762f38c9a359310664b63ed14c15b9ff4b4528",
-    "2020-12-30/clippy-beta-aarch64-unknown-linux-gnu": "15330ccfd8462712546e34c07de4f921df74798204d1dcf325e1c2df9f741b00",
-    "2020-12-30/clippy-beta-aarch64-unknown-linux-musl": "61d7532e94d1837dda778e0140f42384696896ed7ff22a1922ace833a1cbf2c0",
-    "2020-12-30/clippy-beta-x86_64-apple-darwin": "70161007d54df7ee2cbd2f6fa115526f9a426c7f4dd9570c97577aafb33ff96b",
-    "2020-12-30/clippy-beta-x86_64-pc-windows-msvc": "9eef81fc0e6dddd105b871dc13834c99deaefc022a06844b191a6ebf3c266b4b",
-    "2020-12-30/clippy-beta-x86_64-unknown-freebsd": "519b646b3e23c38337e1a50275413580e697dea680a8ef40feb0fb1331ca5da2",
-    "2020-12-30/clippy-beta-x86_64-unknown-linux-gnu": "73aab1813c75c7efc14d957cbef40bd951e1b195ea2f025cec1fdd100acd3203",
-    "2020-12-30/clippy-beta-x86_64-unknown-linux-musl": "fd65821d39cf177493abf58063b2a2592403cadf4d319ed72ba99ff06b0503ab",
-    "2020-12-30/clippy-nightly-aarch64-apple-darwin": "15d33adcf937fddd4b27a86b0153d418fd1cfe148e901c11f69a7b62f9025363",
-    "2020-12-30/clippy-nightly-aarch64-unknown-linux-gnu": "09abbf8fa7d941ba4d815476b51ec96a3c138d4193971f1a765c7218da819e78",
-    "2020-12-30/clippy-nightly-aarch64-unknown-linux-musl": "e0e334fc4ffdce118cd2bcafea2cc49aef0bb9cf69e5775cee80c5950bc8f60a",
-    "2020-12-30/clippy-nightly-x86_64-apple-darwin": "1c18a16194a89a18ee727c18d655d613e05c3c115f6acb35ab4d2aa03ed047d1",
-    "2020-12-30/clippy-nightly-x86_64-pc-windows-msvc": "7a417a7e816a357ff09c711fda1c0f1c3b8dab10f81a9423e8e6ea63f1696030",
-    "2020-12-30/clippy-nightly-x86_64-unknown-freebsd": "71d41007415ea347dd347b34468cb307e88578bc095455d7d88e174a8546ae22",
-    "2020-12-30/clippy-nightly-x86_64-unknown-linux-gnu": "6dcc3aca82ff7830b89506386bd212724b265913d553c32c83ac534c500b7cf4",
-    "2020-12-30/clippy-nightly-x86_64-unknown-linux-musl": "ec2108da23dfb5f1799a1f42c2c8d6a5d72a92321b4000935d5ab29fcb9e67e2",
-    "2020-12-30/llvm-tools-beta-aarch64-apple-darwin": "d6e3e50a19aa45863ba5e37f316bf928f6eca96c3fa749b9ba87cddb3608a659",
-    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-gnu": "e1f3d55116386fbecdcaacb879dc19a62a9c9bb0d06581a366a53e84a5bc4d8e",
-    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-musl": "f0e7a5df202982f5ec91dd0d0bed875976906df8b64fe56702f452e7bda20654",
-    "2020-12-30/llvm-tools-beta-x86_64-apple-darwin": "b5a1a1b3d2d316e8d66876736462b6c8b08951e7fbfa3568da19caeb976e9fa9",
-    "2020-12-30/llvm-tools-beta-x86_64-pc-windows-msvc": "a10198ef08e9e58bb1a54ec23368d5df02c87b6618e16ab026afcc5c8f9cef6e",
-    "2020-12-30/llvm-tools-beta-x86_64-unknown-freebsd": "79df94c33935de84d0cd0e985c333c2516551a9fab3c8fb7c5b93cf3b0d0e22e",
-    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-gnu": "6e4d8501fc7c5c69b4a5b532021a0e39e125b6fedc12b1afe4ba22d07e0b995e",
-    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-musl": "19b0382c59426db81004a4386530fa4e8981dfc2feb5bc8224ad1924e092755f",
-    "2020-12-30/llvm-tools-nightly-aarch64-apple-darwin": "8e2f796ace0270fd2fde8bffe4db90fa1b09947032ee705bd99a1628a1138b95",
-    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-gnu": "3f59253b666c05faef7a3b9b1b761ac6ae4f83833996495936629f41fc4c6959",
-    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-musl": "e6a109c5d3c90969f37d7f0fbd43346616ba8322dca9046a0ea7d522230f71a3",
-    "2020-12-30/llvm-tools-nightly-x86_64-apple-darwin": "8aca7ddf73983bf2db4846721787547fed16c2ad4dc5c260f7f05f6b93cea8e7",
-    "2020-12-30/llvm-tools-nightly-x86_64-pc-windows-msvc": "f30202ade378ade7a1a4bf23381ae69525154ce009aa54b9d59d6507000bf301",
-    "2020-12-30/llvm-tools-nightly-x86_64-unknown-freebsd": "7f1837f6c8e26232cad456df8ce9104cbc6eea8a57e3290a8c72286c0e9fe803",
-    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-gnu": "b1ee3b5cafd026432c74ab9eda4f797d1aa55d06a38438f84f29be528887e540",
-    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-musl": "7f97270394c389db0feedc163c134518e1ec2f28910db22ed4fc50a61c2a9d4b",
-    "2020-12-30/rust-beta-aarch64-apple-darwin": "eb202137d6801bf50c3edc06b5bf16cd5215c66d24790a1168d22fb3a504adf9",
-    "2020-12-30/rust-beta-aarch64-unknown-linux-gnu": "c1d80d58cd0eb74f3db650285c808d18fb0a195fe7ad6461c38de098ff94fc77",
-    "2020-12-30/rust-beta-aarch64-unknown-linux-musl": "a7e852fa55fe8183d749196f72606c1541fb85de7bbd58a73df45454d5cb6e0c",
-    "2020-12-30/rust-beta-x86_64-apple-darwin": "ed1b3b8f5fe4e73ddef62a54ec41dada5fb2cd2519f5c5add06be6ea57c38d49",
-    "2020-12-30/rust-beta-x86_64-pc-windows-msvc": "0192de1b6cb415683e231caf3817127230828e6256150cf0a0c8f393cec50650",
-    "2020-12-30/rust-beta-x86_64-unknown-freebsd": "23515e664a0a87bd217bbcdec8785f52485ad8f74c7ff84b6949c0a16f09be1b",
-    "2020-12-30/rust-beta-x86_64-unknown-linux-gnu": "5ebe5cdf55eb79dad2c34fc770c5a35a6be2ef2a72865db291932ca193467b6d",
-    "2020-12-30/rust-beta-x86_64-unknown-linux-musl": "f33120cbe25113f956c035b3c2ca532eaf810ab6d85c6df69fff0eb69e1547f5",
-    "2020-12-30/rust-nightly-aarch64-apple-darwin": "4cc5ef6dc2e7524da659e416b68b353f61576aeefccc33c0f2564699d5d0cf91",
-    "2020-12-30/rust-nightly-aarch64-unknown-linux-gnu": "1539f5181c1993abb7a43b14dd1294d88453e48f8670c4574e0b5e98e6df28fe",
-    "2020-12-30/rust-nightly-aarch64-unknown-linux-musl": "7ef640112eb50bd77c7203d5fe56bcf3b2fba130e4acd5e707056686431a93a8",
-    "2020-12-30/rust-nightly-x86_64-apple-darwin": "2b5b885694d0d1a9bdd0473d9e2df1f2c6eac88986e3135e6573e1d71e7824dc",
-    "2020-12-30/rust-nightly-x86_64-pc-windows-msvc": "2c9086371cee98ce95cf10098cd655b2e33dd70e8e250759a1e8b0e8c42d659e",
-    "2020-12-30/rust-nightly-x86_64-unknown-freebsd": "79e5492d9a5f9f04ec5080be1fe305a3d7adde330f5c3fb9d7a3bae52720a027",
-    "2020-12-30/rust-nightly-x86_64-unknown-linux-gnu": "1a6b541f2d0ccda148a60d749e974cc545d9765b71d8dec59418b493f05209a2",
-    "2020-12-30/rust-nightly-x86_64-unknown-linux-musl": "fe9c7f0c0898b1f54d0a3492450580d2abb7682de74a9964e60eeabb7761a3b1",
-    "2020-12-30/rust-std-beta-aarch64-apple-darwin": "0065919e445e3eaa8d70561b949697b8e3af9beea62989c9ffc60856d46a9da3",
-    "2020-12-30/rust-std-beta-aarch64-unknown-linux-gnu": "426bd1cc7a0e94af5decd643d08c54fe9aab29e638cd79aca21ccb05ec00eaf8",
-    "2020-12-30/rust-std-beta-aarch64-unknown-linux-musl": "d9f779f46c182b37b185113f92e8a8a17ebf3b5ef4e11e137980fdf7139ab506",
-    "2020-12-30/rust-std-beta-wasm32-unknown-unknown": "3cf97eba1da6d14160e82de4c0302883fb2eb9c65151dd2a148c57cba430f5ec",
-    "2020-12-30/rust-std-beta-wasm32-wasi": "e86f3f58cc04bf4c4f9d94ac11e7244510a35f89795298658de2153a7fa60f86",
-    "2020-12-30/rust-std-beta-x86_64-apple-darwin": "12f5a181b6102f75e85b71259283d852777940cf82d1681fb19005b589076a83",
-    "2020-12-30/rust-std-beta-x86_64-pc-windows-msvc": "a02da2dbd7f3d14e4a2083a497aa7aa884b99e6ea941059102278dd2325c5b61",
-    "2020-12-30/rust-std-beta-x86_64-unknown-freebsd": "379f353e27b8218ed6bb54f1ef16314624705e9b28f5cd6047bc25259aeb0bf6",
-    "2020-12-30/rust-std-beta-x86_64-unknown-linux-gnu": "6929f00e1cb93b16bd2e3d76029b297f099818183ac2d7ff23eb532d4c31ebb6",
-    "2020-12-30/rust-std-beta-x86_64-unknown-linux-musl": "789ccd43b76e3f7af1675d24780281191be48991a2b2a217acd306b534bce4b9",
-    "2020-12-30/rust-std-nightly-aarch64-apple-darwin": "a01bcc6eb93b1883bc57739959d6f9e13fbb80e1867310272cdb1a1de496cf73",
-    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-gnu": "3997bd9e5057851b9e49ebcba5886ca98bf736c062c122e677fcf40aa7ac5416",
-    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-musl": "628f5ef4fd2e8b8d7e429a431127cb65321a69fbb69ed07b27df6ac4c8850784",
-    "2020-12-30/rust-std-nightly-wasm32-unknown-unknown": "b1669be863b7f419254382e9e3820e9ef0d69c60fa45f91d0625140229725484",
-    "2020-12-30/rust-std-nightly-wasm32-wasi": "8f2b0a30cdf50d748e57d23d94d54a4e175e864296c8048c8454bb6198b16fb0",
-    "2020-12-30/rust-std-nightly-x86_64-apple-darwin": "17912a6a5aa56daeb0aed5fca8698bacc54950351d9f91989a524588e37e41ca",
-    "2020-12-30/rust-std-nightly-x86_64-pc-windows-msvc": "4d2585cb12606f217150509971850330cc1b7f3e1a9c18ce03fd3b981021fa1f",
-    "2020-12-30/rust-std-nightly-x86_64-unknown-freebsd": "ac517f0ccc4b30f3a296a25a8b17f75f877052cd56ae5c5a043d88c0f5de972b",
-    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-gnu": "5b1bd5fa31b9190c66b3446629c155d4896cffc8fb1f9f603a2e949162b7f791",
-    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-musl": "3802d2c7271cdd3fc35921b0d9f999b9b34ac9d888b62085b976453a8b113700",
-    "2020-12-30/rustc-beta-aarch64-apple-darwin": "20107f4541be8822d428c402e010333f2f00aaf086d03b4e35ce8d1bd5c33d5a",
-    "2020-12-30/rustc-beta-aarch64-unknown-linux-gnu": "29e2808cadf8da481a0ace30bf107372dd108b0475706cbe2b9cdd4ff27e2315",
-    "2020-12-30/rustc-beta-aarch64-unknown-linux-musl": "035bd303601f588ebc23293e9c64050f7053eca1fb2f3266971bff71c4cc3a1e",
-    "2020-12-30/rustc-beta-x86_64-apple-darwin": "d65df5791d79e13037672d22055ec24583195554cdf7c3c2992cbcafa497e98f",
-    "2020-12-30/rustc-beta-x86_64-pc-windows-msvc": "7f934dd412207c0d776fb4e8ec4c5f4426e92b2a1854416a8ce7bbc2dc7f5908",
-    "2020-12-30/rustc-beta-x86_64-unknown-freebsd": "19818ab53bbd94c6d1723a52809bf1c3a271e258664ea2b3b7d00161965e058c",
-    "2020-12-30/rustc-beta-x86_64-unknown-linux-gnu": "4f5ac3311c913b79dca1a02cf42fd7326c63d53ee252447b61f113c043a82b5f",
-    "2020-12-30/rustc-beta-x86_64-unknown-linux-musl": "d688cfe617d18c132a051afe42ac0c759638b1d2b0003fe7970becd1cf30c8be",
-    "2020-12-30/rustc-nightly-aarch64-apple-darwin": "4610961ab77e1bb54bda95474b1c1f25f1fc5c1c103bc4f54758e5b2a5454d8b",
-    "2020-12-30/rustc-nightly-aarch64-unknown-linux-gnu": "c9997c01769a6371200e20639fcae99e6dec3d9062f65b2928429e04d4cb7930",
-    "2020-12-30/rustc-nightly-aarch64-unknown-linux-musl": "28a24668966faf46f0a79034446e54e2b86e4968e1a3a9381dbf5d9e916d8d9d",
-    "2020-12-30/rustc-nightly-x86_64-apple-darwin": "cf2f06d6c8d784a469561f6323b8b923fb6ad3a7c55c7ac90d5619b9d443ae9f",
-    "2020-12-30/rustc-nightly-x86_64-pc-windows-msvc": "8df3729f3b09cb39fc4b0ecfd90551625941d508f7e776ae4e16fcf02b0af4f3",
-    "2020-12-30/rustc-nightly-x86_64-unknown-freebsd": "f3818645265c3a08cb9fa04d1c2d42be72116974c9c34515feb7d5788e86ac41",
-    "2020-12-30/rustc-nightly-x86_64-unknown-linux-gnu": "79fc8d51bb6d298d292045eb77e1b2d0f7f97886604599a3e9dfc0c6956e49d7",
-    "2020-12-30/rustc-nightly-x86_64-unknown-linux-musl": "2627e995ff9d7e72ec46d9161d3b8f78d264671c507f10337f9ec714171dba5a",
-    "2020-12-30/rustfmt-beta-aarch64-apple-darwin": "75c957da65d459a02f29affd8fac867e14eb8eec98531fd2216ebcb54a5b6407",
-    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-gnu": "b34fd3a8e80969df9ba71ef5b80f143b4e8f325a91d98b00db1ea86879074b22",
-    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-musl": "10353a1a4c052509277625702e6f36a3561772760671728b406cd0d5c1f46e1a",
-    "2020-12-30/rustfmt-beta-x86_64-apple-darwin": "bfe5ef2349a226fe54d87658f55dad90b99ee6e36de4f5d1e381b1ca453e1919",
-    "2020-12-30/rustfmt-beta-x86_64-pc-windows-msvc": "ebac84095df62d8ed6b41454c07f043477479a1770cf156a5c9f351bebcbe6a4",
-    "2020-12-30/rustfmt-beta-x86_64-unknown-freebsd": "bfe8a34403fb19d88eb2b4528b3836a645239d239bf56cc9b916aefebd0199a1",
-    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-gnu": "78ac7e3178068c6828765c295698cb79375266cec95b097c4603f8582bd24379",
-    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-musl": "6d8f4685cc8bcee32c7e5e3b7524444d90c88486f81905e109fbe5cc47f99fc1",
-    "2020-12-30/rustfmt-nightly-aarch64-apple-darwin": "0c3cfa89787cc9fcdee39acc0b5c5cf3ef084d85fb0e2716926813852fb96a3f",
-    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-gnu": "5fb27d5f31411c242a8046de087b3dbd73e5829d7e07493858034139681c30c7",
-    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-musl": "19f6b831df8996666d9277396650909b06396fca3b37eeffbe0c763472cb076c",
-    "2020-12-30/rustfmt-nightly-x86_64-apple-darwin": "c7da578f3b70dbfa0ae1f06370c7c9f22a49127fed8a99b69dc9ac6e42491bb0",
-    "2020-12-30/rustfmt-nightly-x86_64-pc-windows-msvc": "ebae20dd198a36b657aa0486e6b557aba60c9b4fbff25c108246de312fd2963f",
-    "2020-12-30/rustfmt-nightly-x86_64-unknown-freebsd": "2e0f2e4adcc234d29859aa38088a02be2b2bb0a7e43863bca6d436a6712b8b3b",
-    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-gnu": "0fb77ae8a33fb83ea496654a52e55ab5245206322f09c1d396e0c5833a16b856",
-    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-musl": "a93e4b51ca3e87661edb62d8ceedf20446e7cb2fa700ab9f8cf765db6e5f9407",
-    "2021-06-16/cargo-nightly-aarch64-apple-darwin": "eaf4540191cbb0627b2f6bb4cb9fe94351bb7601d07cd2795b3f1386d32dca76",
-    "2021-06-16/cargo-nightly-aarch64-unknown-linux-gnu": "a46dd7f7d4532df2944056efab6b0f510224497be0993699ee59188b03b462a4",
-    "2021-06-16/cargo-nightly-aarch64-unknown-linux-musl": "11213aac3d92a05799892e94bcf632ea35418eb600bcf7ea71f9c8216c2cdb3b",
-    "2021-06-16/cargo-nightly-x86_64-apple-darwin": "09b55140b655ade515b4890c966e2f8b23e68d96a2deb557c23d520315dc72cb",
-    "2021-06-16/cargo-nightly-x86_64-pc-windows-msvc": "6180250887125396cb2dfae079bbe9a4e71e8432034f7d20428193cbbe4ccb4e",
-    "2021-06-16/cargo-nightly-x86_64-unknown-freebsd": "8d54457bb1d21dfe85889fa29c3fa8dc40d0a9a54b47ac853aaa2136efec8fca",
-    "2021-06-16/cargo-nightly-x86_64-unknown-linux-gnu": "4566ecb0c1b3131f44a14b1851702e6a6bdd06f80fbf0d5d768770a97b10cb3f",
-    "2021-06-16/cargo-nightly-x86_64-unknown-linux-musl": "9b491cb6472197db1f435e30c7b133f4da12e602d77e8ab82859c3181b214b90",
-    "2021-06-16/clippy-nightly-aarch64-apple-darwin": "4241a05e0a53c9385f83956241131c7c7ee4b75b5ce403f992dbd3512c8996e7",
-    "2021-06-16/clippy-nightly-aarch64-unknown-linux-gnu": "c942124cf5d48716e0cc85c8c328e6261b8903b4d86254233367de74036258a2",
-    "2021-06-16/clippy-nightly-aarch64-unknown-linux-musl": "87a5ccb283f5cc5a35271d0de17491e37c1694ab6b3015291a37c1b18cac3f49",
-    "2021-06-16/clippy-nightly-x86_64-apple-darwin": "fe4b7a3f596a118682d9b8fb58ddb1f9b222e679dfd8ad5072050aacc30280d0",
-    "2021-06-16/clippy-nightly-x86_64-pc-windows-msvc": "1605953eb558f6feccd13e13dba581c4336129f9714464148c0958b22cb12521",
-    "2021-06-16/clippy-nightly-x86_64-unknown-freebsd": "2248da8e036e410c124bc24564bb99679f05beff2ab1a6f866cdd111f43ca65e",
-    "2021-06-16/clippy-nightly-x86_64-unknown-linux-gnu": "3308e33e1ccbac22d03a279bb5112d5e089b482b096456e1cee550df651e558b",
-    "2021-06-16/clippy-nightly-x86_64-unknown-linux-musl": "928916f1e52107d92e40732bc8dc3162be1a445974249d5cc1be8c4be5f83dc1",
-    "2021-06-16/llvm-tools-nightly-aarch64-apple-darwin": "9ec6f8a300c7a5d49eecbce1f6a705edccb3b2197691334df4f7cb280e10c701",
-    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-gnu": "66ce674917f40309033e8bb4316577679baad14929468c5f023d81b4225a6551",
-    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-musl": "a8655b9e3726920a705081fee1add02c26fcbd4b3bdbca52642ad74b16be24ba",
-    "2021-06-16/llvm-tools-nightly-x86_64-apple-darwin": "e1aa13d71478684f83af6b3211b88cc2b370ac84a9f140a78af483c0aa235761",
-    "2021-06-16/llvm-tools-nightly-x86_64-pc-windows-msvc": "3cdd8e14fa4b31ba16aa6b330165babcca86082397c73262e060b19e4b84d871",
-    "2021-06-16/llvm-tools-nightly-x86_64-unknown-freebsd": "0bfe1a25041d7c74485691106b7ec72ba6c6178bc0fad780a57d8df1c21acd71",
-    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-gnu": "7c42d2707ae20d8d8cd4a441c60bbb180ee7bd326fecb884220859dff1b26bc3",
-    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-musl": "47728492d7d58cc125db0fe4bb8141e230404fab52fcf898178545de44b341fb",
-    "2021-06-16/rust-nightly-aarch64-apple-darwin": "9883ee9b5b5d4833ea6ad001b0205fecf536db3fc9b19931229922d3af8abf59",
-    "2021-06-16/rust-nightly-aarch64-unknown-linux-gnu": "6540dd65839da5af9106652c361b696b9ac1fe4a14f4ac5801d8d6186b6b031e",
-    "2021-06-16/rust-nightly-aarch64-unknown-linux-musl": "134134199171087947159c446e2c73ef2c5efee20b55cfbe20004c80479b5b29",
-    "2021-06-16/rust-nightly-x86_64-apple-darwin": "5cc5e38ee2ff4c8acc0e57a3bc6e19bbc679ca4f6d4737c137882af4184435d9",
-    "2021-06-16/rust-nightly-x86_64-pc-windows-msvc": "0de02a0fbf7621da7902cdc10a07781a8cebafc71d103ff7e2e3e6fe10c43d8c",
-    "2021-06-16/rust-nightly-x86_64-unknown-freebsd": "8a6245719a44080281713cad744bffd2a7e8ad4578028ffbe1c0999e782c8d66",
-    "2021-06-16/rust-nightly-x86_64-unknown-linux-gnu": "c3af6083060b123102a073028e0109e1585df6ee95003b70d8763f2aa470b3e4",
-    "2021-06-16/rust-nightly-x86_64-unknown-linux-musl": "19f50a5db4699a9dcb67a19cb6b1f559d3e39ce81446d42bad43fa02890cfdde",
-    "2021-06-16/rust-std-nightly-aarch64-apple-darwin": "978397a6ceba7117b89ce5a9822a2dc39b566084950c56954e0163e19afa3bb5",
-    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-gnu": "d6369fa8ba1d649d08b38681234d6aec0f3871e71650ebcfcc59ea7c1bce2ee4",
-    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-musl": "9fb786450e61f6e978efd2bcc238f2cc593b9057e8448feea032b435bf51d8b4",
-    "2021-06-16/rust-std-nightly-wasm32-unknown-unknown": "d53156cf7f97293ea0d2b3b08537b1b2c3b52cc91c5a8bf28e14f69a2bae73be",
-    "2021-06-16/rust-std-nightly-wasm32-wasi": "88dd233aa844d0fb9287576f35d628c617b54da7da04338a14f7abd5aa738a75",
-    "2021-06-16/rust-std-nightly-x86_64-apple-darwin": "60ecd0061a48198e2d890fb736c3059104ac4e88932f7f6b7e1cb59cde7de110",
-    "2021-06-16/rust-std-nightly-x86_64-pc-windows-msvc": "a9b5cd681e66a826fabe48f38630994710f43e3fbcf73c65c59b222a23fd1f4e",
-    "2021-06-16/rust-std-nightly-x86_64-unknown-freebsd": "e5758800722baeaaa0f1b61818564e8a21444dfcbe9602b142d0454218e68d82",
-    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-gnu": "d863737b021c1ae1f1e0bafebf61088232a0c76d5665ce86a6fac8ca95c7bb22",
-    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-musl": "7be512172a022f7011be352e90eb4106344af13e7a4d6b831961fd66f2f83581",
-    "2021-06-16/rustc-nightly-aarch64-apple-darwin": "e3dd00de0ec202c385c3c943dbec7157846314e04108c9496935ea4e273edda8",
-    "2021-06-16/rustc-nightly-aarch64-unknown-linux-gnu": "88b9470cc39c51f1869bcaea2738a71c32baa4f76099dec77d4ce343b486bf0d",
-    "2021-06-16/rustc-nightly-aarch64-unknown-linux-musl": "430e9c095cdba5341e3eb1d9bde03b90fd8dfc54a38c951a8e209b5013fc9e26",
-    "2021-06-16/rustc-nightly-x86_64-apple-darwin": "438e0615f993ddbf518848705c01fbae26f36139e7b48d9df5d1403586966f9d",
-    "2021-06-16/rustc-nightly-x86_64-pc-windows-msvc": "f54e69bf237c882c4d0ee730573e3ebef5eddc4a03730406cf082b43eb4cd008",
-    "2021-06-16/rustc-nightly-x86_64-unknown-freebsd": "6fda58af80d7c597d178b2137adecaf4e94c289f7f55464de0138ce76575987f",
-    "2021-06-16/rustc-nightly-x86_64-unknown-linux-gnu": "44a77db517c05e7b136c8f683e7a9c076fb7c5f15c2d2076a559398a4eeb33ae",
-    "2021-06-16/rustc-nightly-x86_64-unknown-linux-musl": "6eefe98ce50f897fbba0bee21efbc27c76adb108189872a384683bccb4b0aea9",
-    "2021-06-16/rustfmt-nightly-aarch64-apple-darwin": "ba8c2c5a171cb4361667584229fee13b1cfb5a901f00747f13c3b2af4fe72dd9",
-    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-gnu": "7e11932879ec3164e3042b1544259f93591cb36093f1f0e42324c480da8a58c9",
-    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-musl": "519e3efc3026780dc0ea3a3020b441a22ce7c497f0f9252aa6a748f2567f1e66",
-    "2021-06-16/rustfmt-nightly-x86_64-apple-darwin": "6e005433e4b5a46347b6ed28371fb97694087c4599447a04a7fe684fa22126a6",
-    "2021-06-16/rustfmt-nightly-x86_64-pc-windows-msvc": "a7606c5ddfca15e066bc844372e81912b256595b8bdbdd3ebea5622cf33bc6c0",
-    "2021-06-16/rustfmt-nightly-x86_64-unknown-freebsd": "239953675a43453195e7f6d7a106a3b65baf57230df0bb0ab19fb6839cf99d32",
-    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-gnu": "3edba45a2797a3361e575e7aca34284c5ed8154f8849e3da49b59e45317dc65d",
-    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-musl": "bdeca48139be92c824180e29b790cdb58a4d1e3c15b4c65e9ec93aaae46853aa",
-    "2021-09-08/cargo-nightly-aarch64-apple-darwin": "712aae52f55402ac17ca017dd337ca1aa13f063ecc666fc8c16448f42aa4519d",
-    "2021-09-08/cargo-nightly-aarch64-unknown-linux-gnu": "814ee506cce957c7371bff4961fcb97cc6ee7fc2da4189175be61a4990130824",
-    "2021-09-08/cargo-nightly-aarch64-unknown-linux-musl": "65edd1914dc1f7118f70a722cd7f555bd7e9afc8a1ebb447036ef8948d842742",
-    "2021-09-08/cargo-nightly-x86_64-apple-darwin": "2c539e3a02521842316202cabd37ac580e5d95ee48531435e49628d34217a8cb",
-    "2021-09-08/cargo-nightly-x86_64-pc-windows-msvc": "64c3ab2850c4039c58288cbc402243914eee40d35218665e6a02c8b45efe7704",
-    "2021-09-08/cargo-nightly-x86_64-unknown-freebsd": "c119dd05ee04dc1a0bb414f30036cce9dfb0456eb974bc991acc51122528dd7a",
-    "2021-09-08/cargo-nightly-x86_64-unknown-linux-gnu": "0382a83f1a93228e8fc2c68e396032f61bb431a73aecee75d461b2008c68a33f",
-    "2021-09-08/cargo-nightly-x86_64-unknown-linux-musl": "bfb2a9ea032c591f1c9c36cd2590427c684ebc95b573d919d477b6bd57d5bd37",
-    "2021-09-08/clippy-nightly-aarch64-apple-darwin": "7dade8377af304261199dadf7126afe0e5e50173a89e805567f9d833be59c37c",
-    "2021-09-08/clippy-nightly-aarch64-unknown-linux-gnu": "e36dce42b32982a550a0a575fe827e16e2ba6a53fc850a99f55d8319031625a5",
-    "2021-09-08/clippy-nightly-aarch64-unknown-linux-musl": "abce5645da1c5eeaa193d986f76531e5a3031210e3d94b66d32deba6f15943f6",
-    "2021-09-08/clippy-nightly-x86_64-apple-darwin": "5064e135a17afa8540b6073fda18f686c5bc6903e800ce2f508cf33f74b5b701",
-    "2021-09-08/clippy-nightly-x86_64-pc-windows-msvc": "b7a6dda0b9da65fd964c01ddf16a7b5a309673ad50095bd2c6efe4f62371a075",
-    "2021-09-08/clippy-nightly-x86_64-unknown-freebsd": "8846077e6bd3f96b87b0f341566d51108e4835f23c639e3d95fdb58d31d12033",
-    "2021-09-08/clippy-nightly-x86_64-unknown-linux-gnu": "577ba7ef53a84c296ef1244200af68523708e2ec0884f7e2f7978dae320cb661",
-    "2021-09-08/clippy-nightly-x86_64-unknown-linux-musl": "28365e89efffcd0cbbb7da8d922ebe5c07b2f991fef2c1d845f9f7cdbb014d45",
-    "2021-09-08/llvm-tools-nightly-aarch64-apple-darwin": "dbffc97784c96ba75d6da460d965bd705c7bee737f1d73a0bccf815cc046260a",
-    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-gnu": "bc789aa0b012259baa8b5540aee96f1074d9ad6368a5031b556093da61fcd8d7",
-    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-musl": "ed3019654dec2aa14233b9fe1a6c934d913acfd798725591ff02d97e10504be6",
-    "2021-09-08/llvm-tools-nightly-x86_64-apple-darwin": "b419d08a367fe4366202106161fa1ccc4dfead9639e582b36c71c3405dc58e8f",
-    "2021-09-08/llvm-tools-nightly-x86_64-pc-windows-msvc": "213cfa58059ba87e650acb240f6b1f9ed6948687fe12a236b16d0abe3e293fbe",
-    "2021-09-08/llvm-tools-nightly-x86_64-unknown-freebsd": "cef580a6e8efcea89bbf40de422e04c36546462ef9e90727da7e339bc9acb83c",
-    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-gnu": "4a5ff52134c2dab1746c9d3d84bac92b5ea4fbbb4067c83ae20524eaf060e6db",
-    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-musl": "f20f89d4f5c49e57c950770b9b83581534b9f64187f718b8392ff58559b72de0",
-    "2021-09-08/rust-nightly-aarch64-apple-darwin": "67f875cbaeb23dd0aabcedd0c80809cbe9d0799f6316a0b37353d16921f3319e",
-    "2021-09-08/rust-nightly-aarch64-unknown-linux-gnu": "e27d7a5cdb7076674d885ce034ae243fa77f7d1210c83d52c8f8e4c4be86d204",
-    "2021-09-08/rust-nightly-aarch64-unknown-linux-musl": "c4b9090ec6793d96443ba51b0e531d99e7dfe715e2a506e28aa8e070c4811050",
-    "2021-09-08/rust-nightly-x86_64-apple-darwin": "50e5552ae8c20b056b122d2bbc45030f10772498b3bf88b6c539c9bab9e4555c",
-    "2021-09-08/rust-nightly-x86_64-pc-windows-msvc": "2ba241a6982360ffabbc383f91a642dc42c59770253041d8634255543a84d5d3",
-    "2021-09-08/rust-nightly-x86_64-unknown-freebsd": "da6ceabe8dbbd1f92e0dc77a4a98ff1745bb21ea714d9f4eac090626d5a480d0",
-    "2021-09-08/rust-nightly-x86_64-unknown-linux-gnu": "ea4960a18a13815736fcfa33886fa9de8f07ee758339050ce676ef81e9cc0f0d",
-    "2021-09-08/rust-nightly-x86_64-unknown-linux-musl": "acdbb72ee7e579940df739755ac478e3a386431aa606a9ab08ad1c870a24794b",
-    "2021-09-08/rust-std-nightly-aarch64-apple-darwin": "8a08b1862d2e69d249d67fb5669983ae961bd07b9bfc80585ef84269380a317f",
-    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-gnu": "0f2fafb6f4c4693380b3e8eaf4a08729b511cdb1f89c4976c2944b4f87e48b66",
-    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-musl": "4b2c1b78637bb0ddb7f5e2ae16119f84e00f16e874955c34dd3684e67344ac99",
-    "2021-09-08/rust-std-nightly-wasm32-unknown-unknown": "ef19646fb38abfde637fbd619c4cc4b52826fce09074f427d3cdd7d5bbf89167",
-    "2021-09-08/rust-std-nightly-wasm32-wasi": "df7cf483b11358850a2f0f9d6816b8ebcf3813ff4c0cc75cc99171200b2f866a",
-    "2021-09-08/rust-std-nightly-x86_64-apple-darwin": "4d13a115d70efc84daa181bf7927b4531c5e40cfc1df8a99c04c9ebb4010b829",
-    "2021-09-08/rust-std-nightly-x86_64-pc-windows-msvc": "0c93f9734b776bf7c2e150fedc2811db108e732a4f3328aedb038969b435c071",
-    "2021-09-08/rust-std-nightly-x86_64-unknown-freebsd": "64ff9746ede66362f44aa5de62541a85a196e639a2cfb5d60be038579ddcd367",
-    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-gnu": "b6d1ff428b1c0591ea7375f6ae3421630d4b6da7e8cb6bad071284b5d563abe8",
-    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-musl": "1cb7c1f28e4fa5096aaea77e56006a1cee69b77c5fcb1fae993a961942ea16d0",
-    "2021-09-08/rustc-nightly-aarch64-apple-darwin": "4de0dde4a4499074c9c4ca3a9617c89376ccbc21429ce2af94147570844f5436",
-    "2021-09-08/rustc-nightly-aarch64-unknown-linux-gnu": "a34ca09afb230c0852b1765f4477ff1135f66cb4c41fe88ca79901c3adf30aca",
-    "2021-09-08/rustc-nightly-aarch64-unknown-linux-musl": "9594f62bd1e209725302318f372ea2c28cbd83ec2b29c60e5db933f60674b447",
-    "2021-09-08/rustc-nightly-x86_64-apple-darwin": "1a7eccf24dd1baecbe07c2999c917e54e7f213496a2ed542fc8ba5afbb43d1f2",
-    "2021-09-08/rustc-nightly-x86_64-pc-windows-msvc": "15667c4fe1d810b3b1979c19d1def41dc5484f7444517c4277aec2154404face",
-    "2021-09-08/rustc-nightly-x86_64-unknown-freebsd": "13b46879f9eb1a5c467458ab1eb3a65d295d9834f3fec42f0ad4a273d9fde926",
-    "2021-09-08/rustc-nightly-x86_64-unknown-linux-gnu": "73891cf0b7eb252b6b8486ddaad91f7ce4b18950befe7853bc3d20d38e5ae069",
-    "2021-09-08/rustc-nightly-x86_64-unknown-linux-musl": "ba94c257e93dab13beaf0a78168de64295ee0178fe76a8be10e18c5fb5d7c5fb",
-    "2021-09-08/rustfmt-nightly-aarch64-apple-darwin": "691922fb32f3da37532bb9be974ad1717af521ec2b71bca4bbb5e57f3c4cc3fa",
-    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-gnu": "98b2eaf259a1bfdc70e40a52e891920dec7fc6132ad8d2420f91655c793ea340",
-    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-musl": "a4df0726fba466a5180471d3e63735c2b5ee9794e9f42026b1e8ae404dd43ab6",
-    "2021-09-08/rustfmt-nightly-x86_64-apple-darwin": "20de8ad3aa7507dd9657c4a4b959c38cc7f732a87bb757183033f78a96288e45",
-    "2021-09-08/rustfmt-nightly-x86_64-pc-windows-msvc": "0cc0f10763b73c5e4c8bdcd15a563d7e9d705b192ed6e8edc50dd6a71b874761",
-    "2021-09-08/rustfmt-nightly-x86_64-unknown-freebsd": "e1c28472a81312560ca36719f0b61b7212a07d63e85d745f97cd8e3b9ea8f191",
-    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-gnu": "a7d579672b94978e8427584f7e9d2b6534f320719252db46fc6ee85082d646ff",
-    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-musl": "fba0e7bc1401b830223b5207b63808e28403f48d1591c7d47c1681519c1883f7",
-    "2021-10-21/cargo-nightly-aarch64-apple-darwin": "6eba28dffca35b3b8809c0f56e93931ecf75b539d3ca0f048607047b2f3a9588",
-    "2021-10-21/cargo-nightly-aarch64-unknown-linux-gnu": "c91ab0b98bdb80b9136a06e8d6fff33641fad1c9a005559c976db57a5939bb90",
-    "2021-10-21/cargo-nightly-aarch64-unknown-linux-musl": "f0705d665f0721e64673ea8f282980e968fa1186793b7d6530415e0bd05e1711",
-    "2021-10-21/cargo-nightly-x86_64-apple-darwin": "84d04dd97de2e288d7f449006fd81a930ab1d9fddc20299c9aa8f9bcf1b5cbcd",
-    "2021-10-21/cargo-nightly-x86_64-pc-windows-msvc": "2bdd1823caaf95e2bbf8942c35daeb9aed2bf69534bfdb18f2aa8d1e32a0741e",
-    "2021-10-21/cargo-nightly-x86_64-unknown-freebsd": "e578efd5bb719ef96435e2e24969f968ddc00ec1515c86a7fbd01a650976e028",
-    "2021-10-21/cargo-nightly-x86_64-unknown-linux-gnu": "7fc7f3649de6d8aea2304f286d2d1e5ef279b38d88d8fcbb8b81b1a355201273",
-    "2021-10-21/cargo-nightly-x86_64-unknown-linux-musl": "b022b8341aae8c7d698d44a9f69439569385fb6a3c6e5783cf68853513023c10",
-    "2021-10-21/clippy-nightly-aarch64-apple-darwin": "ee11bef6780c3c326ba39c4fb2de53c7b82f3461ad50131811919067bdbc6d21",
-    "2021-10-21/clippy-nightly-aarch64-unknown-linux-gnu": "3e5b3866242c1c3405ab102c205d07bb633fe1884a0b1ef72e1deada91143fa4",
-    "2021-10-21/clippy-nightly-aarch64-unknown-linux-musl": "8666c8dfd127d69531f723210e23675fd372bf72c2c4ea3f853f00e6784c17bc",
-    "2021-10-21/clippy-nightly-x86_64-apple-darwin": "0bfd130526f021f8ee9c003895af276c9978f9da7a03e50d0efe59a73bcda1e2",
-    "2021-10-21/clippy-nightly-x86_64-pc-windows-msvc": "713491e5f7d1a6bb8bfe5433706515fd639b359d5a589ff3ed98a23c187a875f",
-    "2021-10-21/clippy-nightly-x86_64-unknown-freebsd": "6db6b98be1093fdf97a11cec2a87f30c27a10c6e7e96652f7b758f2d7428832b",
-    "2021-10-21/clippy-nightly-x86_64-unknown-linux-gnu": "8deb9bc3831bb90cd49b9ec8763c5a98349b5b47b6622634e64d8d58a2bb33c0",
-    "2021-10-21/clippy-nightly-x86_64-unknown-linux-musl": "effdaf877422d4700dc2ebba543c4186a5e281336c8f415c20482e75abc7f602",
-    "2021-10-21/llvm-tools-nightly-aarch64-apple-darwin": "d6a2bb9d9c097fd3ff15477a95edb77aa6efdae12c5964398e232339b15a955e",
-    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-gnu": "8c9d5b9fe646fb39448addf7ee370cbba2c2a229189d38443b17f369dac2f405",
-    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-musl": "1dfa08db634e1276d48aa26e5dbc50bf2fde3f2f8ae52dbe5f8ec8fc80bacb76",
-    "2021-10-21/llvm-tools-nightly-x86_64-apple-darwin": "b2331bc949012a35da7c3caccf87dc41f176ffec3c2101f5f2dcc9f83d733483",
-    "2021-10-21/llvm-tools-nightly-x86_64-pc-windows-msvc": "d6aa710e9cb1a8c5913acf2addd40a261f68063e9983441d4396f4443657e467",
-    "2021-10-21/llvm-tools-nightly-x86_64-unknown-freebsd": "85a642dbccf6f8637a5a1ec63e92d61040a9c59319ac1f9e713f5b891b26793b",
-    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-gnu": "fa9532d8bd4cfd19626c700601cb73011b00cdd4325c5f5417004a3124d277e1",
-    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-musl": "ae10630bd5117da9f5fa5eea27b5624ad864d4d47a291a1f77ca5508c9691762",
-    "2021-10-21/rust-nightly-aarch64-apple-darwin": "5716c620dc210d2575b95f43e7dfe5100f2a8c21651fde66217a506bab96d640",
-    "2021-10-21/rust-nightly-aarch64-unknown-linux-gnu": "b375f0cc8e83dea3c8a32c843492930460736c8bdb6ca3db93e7fa563f312b20",
-    "2021-10-21/rust-nightly-aarch64-unknown-linux-musl": "ddc46ab912d69fe56cd68a74123a08404ce5f0f74551d4433e8632b45114b0dd",
-    "2021-10-21/rust-nightly-x86_64-apple-darwin": "75b66db55f4b0df4592651fc573e4251fa45b3b48b2fdff5a86186f138ff081b",
-    "2021-10-21/rust-nightly-x86_64-pc-windows-msvc": "b15a584bfb4a55719a91b33239664a8eeb55e7f7580e53d947c78bf95b8a034e",
-    "2021-10-21/rust-nightly-x86_64-unknown-freebsd": "74676a2604ca5032307b0dc7865d1833ffde41440d649fd8e083b39e291dbb24",
-    "2021-10-21/rust-nightly-x86_64-unknown-linux-gnu": "778d604ebb1407b59f3d331d986b2d5ead609b2cfe5db6f0ba098375eaee021f",
-    "2021-10-21/rust-nightly-x86_64-unknown-linux-musl": "e7b285da594860356b12d61a5cd6da54e3bffef52b1b5a4f8ffeb1fa86736343",
-    "2021-10-21/rust-std-nightly-aarch64-apple-darwin": "28e2aac0c80e4e62874fe4a97fbeea9dc4482e74964eb1f4e8a83d7531be1a58",
-    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-gnu": "c810f89068c71626ba3326b26cc24d017a76f060eadcd84ad0152b66031bd9f6",
-    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-musl": "212d4f2928e14280bd2ed7a5f35e1a731521da58823f186a685db53711d5db8b",
-    "2021-10-21/rust-std-nightly-wasm32-unknown-unknown": "3db3ab740447206c71e303a9098a0eac2fa14117e4d6e437308239e0d469cb3b",
-    "2021-10-21/rust-std-nightly-wasm32-wasi": "be3ccf5a00e7698b152df33d31406a533ef3fae545d4912e6c3c85b40afd4e25",
-    "2021-10-21/rust-std-nightly-x86_64-apple-darwin": "73a686b2577994bf641a6422338a0cddf4250058df74ccc7540bc6026c53bb3b",
-    "2021-10-21/rust-std-nightly-x86_64-pc-windows-msvc": "1d7f65a9b63a1756d5915c8305930eac747dce5da8583af00f9cff8b803a33ad",
-    "2021-10-21/rust-std-nightly-x86_64-unknown-freebsd": "2903783f094fb121a9171d999aa0d73a255fb5617e4cdad5d8470183758bbb23",
-    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-gnu": "ea390777b60ccd6861e7d163cdf0c19be0b19944039f1b52283120b598f56258",
-    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-musl": "182d763bc6e727f98673ab6ed9d707841e2ea8dd4571bab4f289afb5006b396a",
-    "2021-10-21/rustc-nightly-aarch64-apple-darwin": "1b6a6bf8652751f5123cb7741466cec2164302f3306da92241b2b64103398236",
-    "2021-10-21/rustc-nightly-aarch64-unknown-linux-gnu": "60510d5d77b2d55e3b676bc0e478455452133f3f5dc3c173ba3d251c6b780ec3",
-    "2021-10-21/rustc-nightly-aarch64-unknown-linux-musl": "eef17c07cd783c2a3556785245280b3e0a56290ae4620ce324dffd88caff9785",
-    "2021-10-21/rustc-nightly-x86_64-apple-darwin": "9218bbf8d37c9c6a015abade1129a3b5d37453f144b2999b2f6b569044982ac7",
-    "2021-10-21/rustc-nightly-x86_64-pc-windows-msvc": "62e82a4283298165a0a7d656494d9f6da83cf44e098c337cfd7032acf96d0ebb",
-    "2021-10-21/rustc-nightly-x86_64-unknown-freebsd": "af6c9b69129a4a81fd79481f16f9feb1d4f726859b8d888cffc6fa8231a67c10",
-    "2021-10-21/rustc-nightly-x86_64-unknown-linux-gnu": "0bf65939240f9acbdb08cc4d22b9fb14357d29ee36f4bfc11d4ecc87f07b01db",
-    "2021-10-21/rustc-nightly-x86_64-unknown-linux-musl": "1a9bb9f7cbb5465de5976e75a730dc88a4081ded1f9fb54af1fa514a15b88732",
-    "2021-10-21/rustfmt-nightly-aarch64-apple-darwin": "51d764ca7e1c60fed329b1cbbd2a6a56e5b41f7b728a170745f8a4b4bad10b52",
-    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-gnu": "2ff4e25789d019047ff451faaf44a67cd155b4c0ec6834487da6cea950bdc2db",
-    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-musl": "ad433ebb84627c18d4c8b13623f52c46b23f628ef9a3b12e712381c504324960",
-    "2021-10-21/rustfmt-nightly-x86_64-apple-darwin": "589c1412db27f90407147ce3acad3afdb1769d77c1f31156ad6101c317f28490",
-    "2021-10-21/rustfmt-nightly-x86_64-pc-windows-msvc": "49b0163001fd7dd7395f89b408c9909c5b33c4f3147902ec2f77e567bb9d6b9a",
-    "2021-10-21/rustfmt-nightly-x86_64-unknown-freebsd": "d76aca59bb56c6f2e01ab5da9461e058814ba2fed6ebc3abb6bf55ee44a241cf",
-    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-gnu": "d53c942dc0628ec0214f0eff51ebdd8c70f2bff1293909c908e063c9153144eb",
-    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-musl": "21b3db961750e8a6ff83d2773e0feb86292fd92fbcda9f3362976b04b9069254",
-    "2021-11-07/cargo-nightly-aarch64-apple-darwin": "1947ba0d6b97e097bad279bbbf891d7a65d3b1611280dd88e82fcdb9f832cb3f",
-    "2021-11-07/cargo-nightly-aarch64-unknown-linux-gnu": "fe70a3e01abd01738c51479a7bc834392005cce661969088dac220f1b5fce31e",
-    "2021-11-07/cargo-nightly-aarch64-unknown-linux-musl": "987df6c4597a26c1a9bc0f195312cc96dcf2fe1f3651e91bea72a34f6dbe4d82",
-    "2021-11-07/cargo-nightly-x86_64-apple-darwin": "968790a3027da539c57caf194b8feafc9b01d3482566d58f2e012e8d00c28265",
-    "2021-11-07/cargo-nightly-x86_64-pc-windows-msvc": "e56ce94434929c1a4eb2bdfdcfb19e4194ff177c1d5934403deadd3db4304f91",
-    "2021-11-07/cargo-nightly-x86_64-unknown-freebsd": "51b2935810f845a9c85c51344488fe403ce13d49196135318373888726752339",
-    "2021-11-07/cargo-nightly-x86_64-unknown-linux-gnu": "66f027e3245c2fb444a272c9429c6b6334da8afe1ed87ac5ecc68f357cd37c82",
-    "2021-11-07/cargo-nightly-x86_64-unknown-linux-musl": "f6b4e44c2abc28281da5e03c0a957b8b54e22de34f6cab94894efbace7343c02",
-    "2021-11-07/clippy-nightly-aarch64-apple-darwin": "f16cae78cd8cadb8389817489283a572021a5f944e80c5c328ee32a83fb869c7",
-    "2021-11-07/clippy-nightly-aarch64-unknown-linux-gnu": "b0cf7f65fb5a903e62551e49b9341690b4f800552b34a4709ab8630a5cbdb71b",
-    "2021-11-07/clippy-nightly-aarch64-unknown-linux-musl": "b320ed68f8af98cd4c857ab7e3b2e3bed38f580ed6b72cc0f71e90e8dbbfb72d",
-    "2021-11-07/clippy-nightly-x86_64-apple-darwin": "40f91067724c983bf6061a5db4ba90bd620718f564648287ec52b348d76d012c",
-    "2021-11-07/clippy-nightly-x86_64-pc-windows-msvc": "1279ba3f78951e5f2180f3f07fcdbf4eb561ba5cddf84afdf53ebdd4b8ca2e24",
-    "2021-11-07/clippy-nightly-x86_64-unknown-freebsd": "3aeedabc9dcf54048f59a8ba9e695495ea3f570b88df98ef03c8d1247fddeaf8",
-    "2021-11-07/clippy-nightly-x86_64-unknown-linux-gnu": "567b3a83390c893077b540cd07f4798d8d287e30025f437ff4e21609b1a773c1",
-    "2021-11-07/clippy-nightly-x86_64-unknown-linux-musl": "a97bddc05146f2c55016af4cc53cd06786a01eb111dfe139bc421eff1c54c645",
-    "2021-11-07/llvm-tools-nightly-aarch64-apple-darwin": "f3c5c93432ac2c7397ba5bf598f36a9e05ccec1ba8646e7127dde13741e91e78",
-    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu": "efc96c6a6d7cb0cbe254f1486c5b9678078aca950bdadfc36d8218fd0cd739fb",
-    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-musl": "f760aeb71cab8abc582eed5766433a7851be2da80d20b75dbcae5df0d3c3be91",
-    "2021-11-07/llvm-tools-nightly-x86_64-apple-darwin": "3b95d04628e75c2ab43298db610e519fe4c00057757bce67461264e2479d265e",
-    "2021-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc": "26a88a8d0e0b2fd9336b85e8a8cc7aa0aef72efca48c0acabf40a5f9f9b9902e",
-    "2021-11-07/llvm-tools-nightly-x86_64-unknown-freebsd": "064b8fef9689bb51cc6358e3239920117aa518e9d375be48d3d7e17ce4b7d2df",
-    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu": "a72f3f2034921baa4e8d2af412532df45d39d163ee6af77c1ed5da3be32efccd",
-    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-musl": "da704644570b177093eb13486b3f34a6aa7c8b93fa565395eb15ad29bc75fb15",
-    "2021-11-07/rust-nightly-aarch64-apple-darwin": "ec27e6e751bf24916e53e3d601bf4e406e624f4ed894aeddef6b418622b41316",
-    "2021-11-07/rust-nightly-aarch64-unknown-linux-gnu": "cdafea25f36d618d754ddba007ffa0cc0e52df60c160187f68f7d41a91efaa12",
-    "2021-11-07/rust-nightly-aarch64-unknown-linux-musl": "b204d0979da8fa81a5be832868df4ccf9031e9582d2a9720bd17be5af845c055",
-    "2021-11-07/rust-nightly-x86_64-apple-darwin": "fca7b8c128fc2c0b8834d06f6ebf78e4d2030be83a87a08f2f9f5247d2be8470",
-    "2021-11-07/rust-nightly-x86_64-pc-windows-msvc": "bf441a201b48d61a5908952367f830fea0642993d518972fd3acff62b6c1e321",
-    "2021-11-07/rust-nightly-x86_64-unknown-freebsd": "bd0791a44cd3c8f2274b42b9206016ac948cac97b642f0303c0f19e0fffe6089",
-    "2021-11-07/rust-nightly-x86_64-unknown-linux-gnu": "ece5f02e4c1cbaf6801fab787d834166aee7676f7c3b2272ff9810d6d541af27",
-    "2021-11-07/rust-nightly-x86_64-unknown-linux-musl": "926a2b44e0c2f093e62e696b6e53e3b5a9d7882e8c426cfdb364a3e2a2541ebf",
-    "2021-11-07/rust-std-nightly-aarch64-apple-darwin": "478dd2f878e791185e565f9a6a2ae0e7a35c472cce873e50bd6b9cf56b364a38",
-    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-gnu": "31e933401b920a16b797f8ebd3f7cdac43647db5b266f8e812a847f34f167b66",
-    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-musl": "b27f126391825d7db36ccfb688ac3c1d3ded91b9b26446dd1da7ece05347f96d",
-    "2021-11-07/rust-std-nightly-wasm32-unknown-unknown": "da22f32ed22a44d1cf478b52e062494ae063cc3ccd06b12964d6000cbae54186",
-    "2021-11-07/rust-std-nightly-wasm32-wasi": "02fa9f517dea1f31eaa6366c3de5bea2a6c3c09f16758e7a70518727d77191d2",
-    "2021-11-07/rust-std-nightly-x86_64-apple-darwin": "983aa9ada64afb54453b39e572f5d622b2f390dcbeef1002aac1a5d11a50b3a8",
-    "2021-11-07/rust-std-nightly-x86_64-pc-windows-msvc": "408884156e55fe210880e7ee7612a5bbbb2300e4dc4d1ee0cd3726a1225343ca",
-    "2021-11-07/rust-std-nightly-x86_64-unknown-freebsd": "c42b5c495e216764f56e538f0cd54fb6cdf193cd3348a7f37b157f27f440ea43",
-    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-gnu": "218743da51034586ed84ad43f95d95a38805403f0e31faaf247eedba883fa8b5",
-    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-musl": "f5733b29a9c1102355cde885cebf5da42b738632e7dc5919e246c34551126c50",
-    "2021-11-07/rustc-nightly-aarch64-apple-darwin": "ccfd72ed6a189c490d22ea91e53ba7d217db123b6c4015de94ac88973a4f031c",
-    "2021-11-07/rustc-nightly-aarch64-unknown-linux-gnu": "3f5a445397f8a7dece4195b7c181398b6d7c06480bc59ce92058c97f68172353",
-    "2021-11-07/rustc-nightly-aarch64-unknown-linux-musl": "5588596a3ef4bd938802349faf64159fb661f04717fef2d08acfc50d35de4673",
-    "2021-11-07/rustc-nightly-x86_64-apple-darwin": "c3df9cac3419633ae1e9b6a41183a413a3a722a72124394d441d5c914aa9f91d",
-    "2021-11-07/rustc-nightly-x86_64-pc-windows-msvc": "e218ed52bcd57b25a0eeb8a9be4fe954ea226f785940409cc6fc378ad8f25876",
-    "2021-11-07/rustc-nightly-x86_64-unknown-freebsd": "c5f2cc78f5f59179e0fb3770e58eacc44eddcb0c3b2c143b8681776b4caead88",
-    "2021-11-07/rustc-nightly-x86_64-unknown-linux-gnu": "e7e6dbc8291d283a890c994ec9507dfce25aa93a47b2cc213f845b3bedcd2002",
-    "2021-11-07/rustc-nightly-x86_64-unknown-linux-musl": "95fcbd60d484725002c1d20134160201417cc6715ba4e320fa30f95afd95b4e0",
-    "2021-11-07/rustfmt-nightly-aarch64-apple-darwin": "3493f540161825feb81d022bfb6f84f2040f5ad014640e9bfd1a4b93902113c4",
-    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu": "58291d3b3045b3c2f156d7547db3d5c117840663a6d10425580fe2936c1f7f9e",
-    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-musl": "85178f75658b69291bedfae0d7c27505f7b0aa0fe53de3922d2f3f671d601e13",
-    "2021-11-07/rustfmt-nightly-x86_64-apple-darwin": "71bcbd9b0e8417e8cbcece46701a3e023eaa596377bfa66507fad0ad383cfd46",
-    "2021-11-07/rustfmt-nightly-x86_64-pc-windows-msvc": "c082bc7eb8d04e4d7025e23b443b14aecc5d504e3de21c1c110c3e04d05d71f0",
-    "2021-11-07/rustfmt-nightly-x86_64-unknown-freebsd": "21815c052a39c5c5d361bbb473a2c36125eb657598359f6b343e352c278c0543",
-    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu": "102e7e2300fd6dba8aaee468b887ea7fdc43f39f012db2815040586959f6aa36",
-    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-musl": "8ac20334b400e0a6e4b487e3536f7236f9238a45d63f490baeda7c47fac72504",
-    "2021-12-01/cargo-nightly-aarch64-apple-darwin": "424a002ad3d9b2974aebf3eea8400081e3aa66b1b4aea0e8b12534b0d6857bde",
-    "2021-12-01/cargo-nightly-aarch64-unknown-linux-gnu": "56ef3a6f98e063b7297f5a92ac9aa20fd8d1a235a4879a10c3b8a0ebe2e57245",
-    "2021-12-01/cargo-nightly-aarch64-unknown-linux-musl": "71d08d9ac3da4c628e91b0e9e0b34ad55d2f4904953003ea96d2b016837c5f1f",
-    "2021-12-01/cargo-nightly-x86_64-apple-darwin": "4d12c1d9034cf759c15d30d768a3010504621f5ccfc22026bf6591afc16bc780",
-    "2021-12-01/cargo-nightly-x86_64-pc-windows-msvc": "06b258fd6c10aa97bcfdfaa9e6d728b7024f1ca9bb4b69978ee433710e1235b6",
-    "2021-12-01/cargo-nightly-x86_64-unknown-freebsd": "924f3f0b15d8109261c4a28050e64eaed0d5f2dba9865920d7a3f94f613d2517",
-    "2021-12-01/cargo-nightly-x86_64-unknown-linux-gnu": "0757e9d7faa9b601b35294a44b6224087f6df384e157f8a80a8bd7f609532987",
-    "2021-12-01/cargo-nightly-x86_64-unknown-linux-musl": "bf5bcfbe47ccc49d830623a57b723a3c7436637c36d84b53f597d85ee1132cba",
-    "2021-12-01/clippy-nightly-aarch64-apple-darwin": "bcfd9191c6cc2b779ddb5c5bc5ceaf3fb8efa700123c175a0944662809357efa",
-    "2021-12-01/clippy-nightly-aarch64-unknown-linux-gnu": "4903c94d97700b9ad70689fbaaaa939a2f37d4736cf87bcf900ae5e909a6917a",
-    "2021-12-01/clippy-nightly-aarch64-unknown-linux-musl": "7453115f2b361db826c5a6def06bf9531876cdca77f9b3a8339c0446d0e88c8a",
-    "2021-12-01/clippy-nightly-x86_64-apple-darwin": "b9f69c5e50fda9d22d029f51e181971f9d7acdd81607fcbbec8da87ee2678acc",
-    "2021-12-01/clippy-nightly-x86_64-pc-windows-msvc": "fe56e5385392eb7109d2450eeea78a744a830f0df4bc08cef62ed70530c6f7ff",
-    "2021-12-01/clippy-nightly-x86_64-unknown-freebsd": "2fa59d32937de93d322a0c3458c6f732950bae75f7487ce10516b2a2299dba3a",
-    "2021-12-01/clippy-nightly-x86_64-unknown-linux-gnu": "238167df07be8b65f325d7409d3822c42832db3afa289fd303619acfa62ebd4d",
-    "2021-12-01/clippy-nightly-x86_64-unknown-linux-musl": "12cc9629b9fcb7760d38b38ddb19f6ab173994fa19bae9ea0ef10e560b36e9d6",
-    "2021-12-01/llvm-tools-nightly-aarch64-apple-darwin": "3889ad569be62d99cd0f1de0ccf404a7176c862ef6e001130438d86067aeb266",
-    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-gnu": "d0e4f1e40c769376728fe5bbe1f3e254959c33513a18dea1e111cd2e2d2fe8c0",
-    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-musl": "2960b9000f0c32deb12096e99ae26af4f85d2313c0227a95fae89637a10850b7",
-    "2021-12-01/llvm-tools-nightly-x86_64-apple-darwin": "1ac4f401421e7bc34a5c17aa5f8a0802f5e1bdb9341d4969ff058ae387e95eb4",
-    "2021-12-01/llvm-tools-nightly-x86_64-pc-windows-msvc": "f7bc73ef6cc909ad1a20a9c91386ebb67d0dd3b300698ed50a3fe314921f636c",
-    "2021-12-01/llvm-tools-nightly-x86_64-unknown-freebsd": "9755dd8b446a7fe327b28e699b43c64a8088e87b7f501869d8bc77c7bd17e80a",
-    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-gnu": "845265609040d3a620e731a8d1f0f59f231ab6699ffd6132411437aa9b3c3060",
-    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-musl": "68660d1226628edcbe80baeacc075d8d4f9c6ea87bb22fc55b6727e6807e5d6d",
-    "2021-12-01/rust-nightly-aarch64-apple-darwin": "c304a7a154b8bf44ff7a338996f1dd249678871bf1d24977e8763912197f89aa",
-    "2021-12-01/rust-nightly-aarch64-unknown-linux-gnu": "b0b3dbde13f8cea3086896efe8402b87cf281260ceb4bf8d3f1bfd1216a309d9",
-    "2021-12-01/rust-nightly-aarch64-unknown-linux-musl": "3e210d5da0384b90e90933683ac19ab1d2439c6b920db8c24e15faba484c86e9",
-    "2021-12-01/rust-nightly-x86_64-apple-darwin": "720d6058352322f1d59683236f0d5092d90ed64ed3f41cee80aa55d3d5a8c7ca",
-    "2021-12-01/rust-nightly-x86_64-pc-windows-msvc": "e4e42a29016982376a9e178cc83874480bd300e5fc6262ed3a1034ec0b80349f",
-    "2021-12-01/rust-nightly-x86_64-unknown-freebsd": "a85e08ec1a52a6bd496400de638bb2e57c7f1192c740e03a776a11e1e892620e",
-    "2021-12-01/rust-nightly-x86_64-unknown-linux-gnu": "ffcb8b45a95221f8d77bb93faf3fd0e2a7f18e6759e631a45295883f996a4d40",
-    "2021-12-01/rust-nightly-x86_64-unknown-linux-musl": "4d98286d2ca36cd348de7a78c8a127b6fec181e1b00fd045be0ad4fa2b466e83",
-    "2021-12-01/rust-std-nightly-aarch64-apple-darwin": "907bd677f494c0858803bcb3c00c1da60b9ec0ff25c71960a896dbf89a7a61a5",
-    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-gnu": "3ae916ceef3364a49c3eb3e936af95aec043cad8cb293fa3f7703846728cd398",
-    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-musl": "71421760124795171964945203719f7dec1924beacdb73b9658d01c8cab37b5c",
-    "2021-12-01/rust-std-nightly-wasm32-unknown-unknown": "e24999e365a8701b8466d2081ec61589b1c4a9333256779b60594688999d2334",
-    "2021-12-01/rust-std-nightly-wasm32-wasi": "5b31eb7ef9c580ebb751f4c41851ef3184261e2fc6c3481567cbb36a816681f1",
-    "2021-12-01/rust-std-nightly-x86_64-apple-darwin": "fc84ac87b089a198731e82a203d38a3a07b72e3f7399b0b47c1d0ec2be576e0d",
-    "2021-12-01/rust-std-nightly-x86_64-pc-windows-msvc": "9b6e945d5a42162b5f3ec792015084e4f349a338605478630b874e9388662300",
-    "2021-12-01/rust-std-nightly-x86_64-unknown-freebsd": "7a03e9faefc1f36d6b6c240371c7db539593cfbed47ca6dc141e3a0c2fc71bd5",
-    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-gnu": "003b3e83e798d635206ca06c919696f2eea7277d9721c8623272fa33059ec2ab",
-    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-musl": "f6c14b5df1fa6341a1b5f4dfd53c2795e2f7c43fc522aac57d055143ebe5e06c",
-    "2021-12-01/rustc-nightly-aarch64-apple-darwin": "ec3af041e4a8aa4bba5d8565502f983f358d9884cce61911e70bb2b12a63f9a5",
-    "2021-12-01/rustc-nightly-aarch64-unknown-linux-gnu": "0f863eb5a00810f140bd6a10ea74e9a2011e852958ac8f8ca50940325864afb4",
-    "2021-12-01/rustc-nightly-aarch64-unknown-linux-musl": "e0432ff13bdc00a36fa1fa20b736a385d6803795855214438d256f0678edbc94",
-    "2021-12-01/rustc-nightly-x86_64-apple-darwin": "6c1557e71cf3aeeb244855c32a7ec9b0297dc66ba57cf17af4e16fd1388f08a7",
-    "2021-12-01/rustc-nightly-x86_64-pc-windows-msvc": "41aebe787fb1a5699f0dd224e9e47270133fa4c971faa97cba2ac609c24828f6",
-    "2021-12-01/rustc-nightly-x86_64-unknown-freebsd": "33a34b95e7b541b51e5ca6f0c0096757c9afef0a0f71e0f7320352882937d240",
-    "2021-12-01/rustc-nightly-x86_64-unknown-linux-gnu": "3b83f5195aa3a73fc9b17acdffd67ff6198f26c075d8b1e6c82a8bd717c3a031",
-    "2021-12-01/rustc-nightly-x86_64-unknown-linux-musl": "a82281cca27567897b58b85a3dad0888b6ce13d7987fbff3397501469bca579e",
-    "2021-12-01/rustfmt-nightly-aarch64-apple-darwin": "42a7f5965d0af7df73c7629e701708ddd59f9a2a3fb4b8656c78d5b0dde0c0ef",
-    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-gnu": "e8cfd49797ac43557ee2eae7543d95c1f9ef5b2d651ae026152b0ee38748bc9e",
-    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-musl": "c4b392988b1e6330a9275248118a348ff029d83d37ad948c568de280c8fb016c",
-    "2021-12-01/rustfmt-nightly-x86_64-apple-darwin": "6993786d7fc1223be21f0b11cfedc7cdbc0cc951f52445e982445e38dc4a5f0d",
-    "2021-12-01/rustfmt-nightly-x86_64-pc-windows-msvc": "d96a8c2622b511179a6c1b4a00e9aeb015d9ce33de40788358a6ef7e4b50215e",
-    "2021-12-01/rustfmt-nightly-x86_64-unknown-freebsd": "5ac0969e1c2e3009f739ea5cb12b87808045f43a0635ee8ddec0b2b04be00814",
-    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-gnu": "51f23dd0f8e14cab67f8bbd3a4aa142988ca0ab1155ddd2f37a22576dda6089b",
-    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-musl": "a58f271f8859c79b33f8b30a33cf91879a85f740c3f8ec99c75f21933b220b8c",
-    "2022-01-12/cargo-nightly-aarch64-apple-darwin": "28b2465970234b721799d0d7893ba3bd82db60dbfe9fce3ee280ba31e0cc05d3",
-    "2022-01-12/cargo-nightly-aarch64-unknown-linux-gnu": "a48f67a2e9b3158579abe99218029f7add37927dd96b7ee297b19d898264c82c",
-    "2022-01-12/cargo-nightly-aarch64-unknown-linux-musl": "20ecedf9cd58870c315bb215529b70d5d7efcc3091cbcd933097dbe3de643395",
-    "2022-01-12/cargo-nightly-x86_64-apple-darwin": "2960a0f4ea742d6c1af1293f21d6b88e5d1d87fa5cf12950a44caf6f3efc31cc",
-    "2022-01-12/cargo-nightly-x86_64-pc-windows-msvc": "58b3c44263e2cfdddc6c71604c0a20f730363ac29e7d2f86570a7910f753ce6a",
-    "2022-01-12/cargo-nightly-x86_64-unknown-freebsd": "fc83fb1358e6fe796879077ac8b79168694a6ddd2d8a0b90ef8bcdb6fdaa6aa0",
-    "2022-01-12/cargo-nightly-x86_64-unknown-linux-gnu": "2dc110d1caca2829ccaaf51cf4e553a1f5954364b7087c881efce52d18580817",
-    "2022-01-12/cargo-nightly-x86_64-unknown-linux-musl": "36b1c88f08eb35048937ee29a681405852198cbfb17fb29117f27ed185d2aaa1",
-    "2022-01-12/clippy-nightly-aarch64-apple-darwin": "22518551453026be28657094dc4d364369357bdc59c1ac8c785bc67d59f24acc",
-    "2022-01-12/clippy-nightly-aarch64-unknown-linux-gnu": "f89ca2df2eacdc7466feb2d502f81d3640bf1295d590011385366e331bc862a1",
-    "2022-01-12/clippy-nightly-aarch64-unknown-linux-musl": "e310f7b854e365c63e9a9449802b428cd9f21af336fa763c311cf8a541977f8a",
-    "2022-01-12/clippy-nightly-x86_64-apple-darwin": "2daeed49f7e7e85b2187177fd1d18e14400a0d38a5a717620d4af92deb17b4d2",
-    "2022-01-12/clippy-nightly-x86_64-pc-windows-msvc": "86e92e3f785272c354c548cf5220dd355798b786e0e8630cadf7fff3b4aac3e3",
-    "2022-01-12/clippy-nightly-x86_64-unknown-freebsd": "7bc87fd4a2ea153342a6144849a7786398713255c0ffc94f17a62a1a5ea36387",
-    "2022-01-12/clippy-nightly-x86_64-unknown-linux-gnu": "1d244ea2f27d4fc7447d4126b965620e6f6cca916db15a8f1f5df0f8bcb6e4f3",
-    "2022-01-12/clippy-nightly-x86_64-unknown-linux-musl": "b6e157718df8219bfe0c2cc67182d451b644aa7f8e0a3060f7676c4a53af0df9",
-    "2022-01-12/llvm-tools-nightly-aarch64-apple-darwin": "4dea9eb7156cce2856f06ce58b76039edf5452dc2dcfe1dbf2ca3e4a2a4513ef",
-    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-gnu": "c8a61bf792a6fe1a2e10ccdb1684059626cbf077b6d82883549e0a824ec00fb4",
-    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-musl": "e49c63a89360598a1ccaa4b4d452d6fe4f4974b70c1774125b7d0864984af4d2",
-    "2022-01-12/llvm-tools-nightly-x86_64-apple-darwin": "efee2f08143fbff836e6517ea7457468da07380dcdf8a3a19cb9eb7b3b36da7a",
-    "2022-01-12/llvm-tools-nightly-x86_64-pc-windows-msvc": "d9748a16a855057201581ee1a3f6105ddd00511bd3129ca1175139f686b0a1da",
-    "2022-01-12/llvm-tools-nightly-x86_64-unknown-freebsd": "73dd634e5b9361c52fa1ad9b3ee1126b5ee5f988165eee6e47f7c80bb1d02f79",
-    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-gnu": "dbea5a53828f590af592386d880ada84c55a072d5c2cf2148a0aec16c86afa45",
-    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-musl": "f4fbe5809cfc6271297de76f78bdbe0591fad5daa747a78fe43019d088048f61",
-    "2022-01-12/rust-nightly-aarch64-apple-darwin": "2976b38351b6133dd20f940210a9d7a36da7a63b4991f3dd7a977629a4e30a19",
-    "2022-01-12/rust-nightly-aarch64-unknown-linux-gnu": "67f91c94ed84cdeeb5c3d09eea11a01056befe6f8f199974c779e4a7c5580f52",
-    "2022-01-12/rust-nightly-aarch64-unknown-linux-musl": "d976d6d7d102c6dad026680cabc4ed44e21405f6afa28879ec24a78ccf9232da",
-    "2022-01-12/rust-nightly-x86_64-apple-darwin": "49bed5d3078cfdd9c95184909f80da529edf83c4b256ef2191dada8a22ba2d03",
-    "2022-01-12/rust-nightly-x86_64-pc-windows-msvc": "b0ee56ad0245dee798bd4f268fde3bcee58b081c0ed16e212773f273e04e7b40",
-    "2022-01-12/rust-nightly-x86_64-unknown-freebsd": "7ba2e7f96735a9021de7f6817be33c8f9c269ef8666cc8267682b3dd3044e5f1",
-    "2022-01-12/rust-nightly-x86_64-unknown-linux-gnu": "414208e1f535d760faa1b8074e20b32f1b045f42efda741677bb718a80980b60",
-    "2022-01-12/rust-nightly-x86_64-unknown-linux-musl": "d9b2a94d67e6484a17b6f128cdc2ecc081068a7730b93cc480b9886dfbdaf523",
-    "2022-01-12/rust-std-nightly-aarch64-apple-darwin": "eead24d761bfa6ef0c926d59ed2cfeb51dc68fa4c13d59672289a6cc5795d990",
-    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-gnu": "80ef127c8e0f8b2a9d4d6dd6c59e3b27c07ba7234e3fa2d8155227bdcaf18349",
-    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-musl": "9716a07e0255737c1a5882cc8d053906bf82fc2cad0e86184d7dc12780811136",
-    "2022-01-12/rust-std-nightly-wasm32-unknown-unknown": "52f08158233d16c2b6b26b009f438ffbf2d60c4acbee4c8dba0718d363112637",
-    "2022-01-12/rust-std-nightly-wasm32-wasi": "318294f44e7dfe947445d03fe048465fce57a8acd4d39c45b04d64f8c5681950",
-    "2022-01-12/rust-std-nightly-x86_64-apple-darwin": "32a2f359a66e9257afb3166c3f3d03b46cccf15d081ff1962b6b6dc7589d16fa",
-    "2022-01-12/rust-std-nightly-x86_64-pc-windows-msvc": "fed0b46a7278a327827169f0dfc829ec3d11ca64c86b59b73e9a5164c6d4f865",
-    "2022-01-12/rust-std-nightly-x86_64-unknown-freebsd": "ad8c17b3a32d325a546bf22a6a5744e6dd448cdbb103c8687c9a7de622317474",
-    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-gnu": "a0574b2ae49a860d69f66d8060ef42e764be73ccffe3ecbc1dbd5bbdbe9c06d4",
-    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-musl": "ca442e0a9ca4c94ced9de08ece921be187ecc1b540518be76a7029fd7142eeb6",
-    "2022-01-12/rustc-nightly-aarch64-apple-darwin": "dc5fa145966daf5ec010e0b83f3b115866683ac418667e39663ea13a8e490d7c",
-    "2022-01-12/rustc-nightly-aarch64-unknown-linux-gnu": "d6183b88df1f868862bd3cf138f25179ba2fdab7f16e2d14577ddd56731ea18f",
-    "2022-01-12/rustc-nightly-aarch64-unknown-linux-musl": "1915a5b04ed3cde9f2566ca7f5205e37b706fc5cacc9ac64b7e6d818d882f39e",
-    "2022-01-12/rustc-nightly-x86_64-apple-darwin": "c51b1b7830d302fd352d4e105282da0c2aa01d98a7d8c0b0018db24539f2fb0c",
-    "2022-01-12/rustc-nightly-x86_64-pc-windows-msvc": "69edaeee958c53a2ae99813994f60b27198538e288217bc30862668975e01144",
-    "2022-01-12/rustc-nightly-x86_64-unknown-freebsd": "cca63c6998d9762616c74518dd870fe67432fe0442003211ba58f0f1e3953e46",
-    "2022-01-12/rustc-nightly-x86_64-unknown-linux-gnu": "4cc6346b16182c580c1fdee2ed35061d57140422d6e13f04b0f21db4ad9a9105",
-    "2022-01-12/rustc-nightly-x86_64-unknown-linux-musl": "1716aae4bf44c58ffa91121661e78fe112cfa5655dd2e98675e2dced7a4818cc",
-    "2022-01-12/rustfmt-nightly-aarch64-apple-darwin": "458b707f541a604cf4463a99e7c9f6dabb5222c815b7278735a8147ed6a6d8cd",
-    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-gnu": "edb9f32b1d8228362a17ffc83d47479bd247000d50f9cb4c0fbf4570557139c2",
-    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-musl": "34299938e1f5d06f048b992f5bc57f17b5d07d7417dceafdd67d64f893c609ab",
-    "2022-01-12/rustfmt-nightly-x86_64-apple-darwin": "eb6716d438d6923cb8b6cc1220fbfc30cca77548c19d1ec4656c4041dc680b73",
-    "2022-01-12/rustfmt-nightly-x86_64-pc-windows-msvc": "a29f9343d63ba3982eb3c783777430a864eee8bee0191c3899f7abcddfb0de0a",
-    "2022-01-12/rustfmt-nightly-x86_64-unknown-freebsd": "b53e01c1d038ce6ee92bbedd0d4c5ae9942521a36d937ec9cf43caaa73278eb8",
-    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-gnu": "edf5018504be0d79d77615a0c7e029a378446e2fd1a5360d86d97196519b510b",
-    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-musl": "237bef02a341db60e3af388feb7d7351d13da9728cc8fa10bda5631f812b2a58",
-    "2022-01-19/cargo-nightly-aarch64-apple-darwin": "e0bbae6fe4ea276773d426fb171fdca151c8877406476ef9200fbdc296d2f2ab",
-    "2022-01-19/cargo-nightly-aarch64-unknown-linux-gnu": "1fc5a3fe7ae76b2a332c95357f1b01c75341d022d66b918e8b2d9500fdbac74d",
-    "2022-01-19/cargo-nightly-aarch64-unknown-linux-musl": "06f0c843e0694a9fbd6f52d4257cea7a9ce7b0cfc519134cac03f85ac103839b",
-    "2022-01-19/cargo-nightly-x86_64-apple-darwin": "55e64aad2d07a7d1aecf3fe417039f20ef5b794e7597be0d5d0ab3098b439b39",
-    "2022-01-19/cargo-nightly-x86_64-pc-windows-msvc": "c8f22a3ce1edb3632148b0117198947f80f1173b5e034468d039db9734d727ca",
-    "2022-01-19/cargo-nightly-x86_64-unknown-freebsd": "f088c70c08c55564c11a10698881a7317d44e934fc4054e65f45c4e721c8c663",
-    "2022-01-19/cargo-nightly-x86_64-unknown-linux-gnu": "9dba5c80dc04089d3fffbd2bb066721a2ea3a4ef5772620d64083dec6fd7ba9e",
-    "2022-01-19/cargo-nightly-x86_64-unknown-linux-musl": "0019a2625020210edf0df9f77a805ee404d59c00bea1013020dfd9d1f63a428b",
-    "2022-01-19/clippy-nightly-aarch64-apple-darwin": "3e552735b0f7edad6333514da898a374f089045918916fc86ebd6d1b2f146813",
-    "2022-01-19/clippy-nightly-aarch64-unknown-linux-gnu": "261eaaf4cbe038fe99f437f41a6479f1c85178b68b86ba322363c3a988a41df5",
-    "2022-01-19/clippy-nightly-aarch64-unknown-linux-musl": "98ab9cbc764859416b199498cdaa29f3e0530b9fee37a00194575102d1d18614",
-    "2022-01-19/clippy-nightly-x86_64-apple-darwin": "57bbd4e12dfe619bb38ca51e0457c7a0458ead39a5f8b8009e82c3ff782ef534",
-    "2022-01-19/clippy-nightly-x86_64-pc-windows-msvc": "f9415462ee2982c546bf4cdebf513292dfe380366604b0da3533ffcb7b062f58",
-    "2022-01-19/clippy-nightly-x86_64-unknown-freebsd": "6732077fb8ae4cbf038c7d56ad2d73e08dc7fe214618c1b8048d5886a0e38782",
-    "2022-01-19/clippy-nightly-x86_64-unknown-linux-gnu": "8a84d8d4120ab3a9a1843fb4b343531ce2f66e472f2bd9b4adb6e825c336130b",
-    "2022-01-19/clippy-nightly-x86_64-unknown-linux-musl": "1472e5cd4b2950bd22a2e6feaafd01f7a2a8b726f12d6152b262474fa2cb57c3",
-    "2022-01-19/llvm-tools-nightly-aarch64-apple-darwin": "669057387a1515c3c4529786f60b9a25ac5c4eda911422fb023b73fa8a380a36",
-    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-gnu": "7afb1e98626316cc1de6b62edb319b5f006da5c24601bb657c5cf567555b5730",
-    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-musl": "e9bf498717ca2e8c7620957a5f7846b53dc09a7c720e8ec31e67c8da25fa59b0",
-    "2022-01-19/llvm-tools-nightly-x86_64-apple-darwin": "de72f572574a1238dbec6ee6b5c48e31b6770826cbcb6ecc61c568587c82ab66",
-    "2022-01-19/llvm-tools-nightly-x86_64-pc-windows-msvc": "97f9c947d726b72ab318705b539e11012a73a08dcb79e00c73d680d9a5166882",
-    "2022-01-19/llvm-tools-nightly-x86_64-unknown-freebsd": "2e42c56a825fa9bd640fbb3bafecb02cfe68877e09d1c0ddfdff794e4571a2a7",
-    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-gnu": "bfd89e74330fc0f9d61b75852c96d644fe5ffd90636e8668f10480e27cb8593c",
-    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-musl": "5dbbbbee7bc11793c320608b5c88398206b8803593e8906ac03b5651bb7b7a6c",
-    "2022-01-19/rust-nightly-aarch64-apple-darwin": "9a0a4323eba39da2c0ae9dd99eae994c90019b11e1020378781fb41521799b92",
-    "2022-01-19/rust-nightly-aarch64-unknown-linux-gnu": "c71d05f5ec4d1d118bab9b3155086328093b5b620b39de3e541294dbb64d4ace",
-    "2022-01-19/rust-nightly-aarch64-unknown-linux-musl": "9aca1ed8d3283403931991b4c46d5f57a0839bac3ac5283692ef67938d291470",
-    "2022-01-19/rust-nightly-x86_64-apple-darwin": "1102c26afe2de2c73079c30b038ac203e1b2d647383338f91782196b05a11116",
-    "2022-01-19/rust-nightly-x86_64-pc-windows-msvc": "bb63d762cac5570f98c4109c7d4cd86d5912b46d0779f44a27fd515e1b723961",
-    "2022-01-19/rust-nightly-x86_64-unknown-freebsd": "726dedec423c51031d5d481aa90f04cc68ed52f45cc33320a6932e02adaa8256",
-    "2022-01-19/rust-nightly-x86_64-unknown-linux-gnu": "db2ec42968696da58de511cb088ea0f879cc64551a8944e5673f73df0e252b7c",
-    "2022-01-19/rust-nightly-x86_64-unknown-linux-musl": "49e42ceb3358ee50863db105c680bbe35aae62b0c27d21db4124b29e82203137",
-    "2022-01-19/rust-std-nightly-aarch64-apple-darwin": "2640f188bda156f0c530c558e02b06dd1b362c7c0115ef8d9e585d451fd92c55",
-    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-gnu": "500e3edb2fe3776ddbb85cbbfd3cea154f969d9b7b76df208dd39953a96d04db",
-    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-musl": "1f93e986d03402e01d70bb443540049d641aa3bdc7376691ae4347addaf17642",
-    "2022-01-19/rust-std-nightly-wasm32-unknown-unknown": "419ecbb51cecc803299d3868b34e78cf08c589b9ce89edc58e9eb99a12140682",
-    "2022-01-19/rust-std-nightly-wasm32-wasi": "4a267c1c645e8269bdaf29b6edebe88bc2149217e9eaf0f9f87877c67540e9db",
-    "2022-01-19/rust-std-nightly-x86_64-apple-darwin": "b875843a7a5ec1b7f9a45672e44495b17972c0268a20d706610ee9c6ee12e408",
-    "2022-01-19/rust-std-nightly-x86_64-pc-windows-msvc": "316b1efb302c7f58f59aaa822fe07e809beafc4ab157d0dc53b92786292f7a4a",
-    "2022-01-19/rust-std-nightly-x86_64-unknown-freebsd": "632eba5d1ed2eed44fc61a1a69014e756426cad86accd2c372d44e07c764d1b8",
-    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-gnu": "f1a26b04468f05a0239ff7d9bf4991ff6150650dfaf4d0a68b51d2146a1fe7e5",
-    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-musl": "33f9b31abca43c27afe34800fcfa87fb66a059b4ed9a2ff6ba9767e0609ec2af",
-    "2022-01-19/rustc-nightly-aarch64-apple-darwin": "d1036828856da3195883e4c56b6596a08d3ed75ea5875cc26642e5b3b8caccd1",
-    "2022-01-19/rustc-nightly-aarch64-unknown-linux-gnu": "3f7edd43d97a6c63ad43db071989ed4114dff29c77b5b7ed7e1ea65339e170d0",
-    "2022-01-19/rustc-nightly-aarch64-unknown-linux-musl": "9d5d70aa8942786a61e4f7026abad946f5d965a99f44fcde54d5fde286461f52",
-    "2022-01-19/rustc-nightly-x86_64-apple-darwin": "0bb3422db5ebdbb36bd487ab6ec0b0bc89c960bf5b8bb1fadb9a7f3b827d0672",
-    "2022-01-19/rustc-nightly-x86_64-pc-windows-msvc": "2f15ce047f6c8ca20d4585ade8f66b7f296de7083da5636e5a09f04b02228435",
-    "2022-01-19/rustc-nightly-x86_64-unknown-freebsd": "1c8e731ee63cde0f5d6375590b234c5facf4070584494c24ae6d3c012e81b74e",
-    "2022-01-19/rustc-nightly-x86_64-unknown-linux-gnu": "8f96fbd32d86e0943a5d15c967c1e4d9832bd8682eeae1f333e9bcb77433acc8",
-    "2022-01-19/rustc-nightly-x86_64-unknown-linux-musl": "9ca8f7801aeea115aef2648313ed05f5755cb4fab2ca93e391dcc0b09f79528c",
-    "2022-01-19/rustfmt-nightly-aarch64-apple-darwin": "e1cd639473e54569e0282d68bd2270fa1f2e9713c8cdc95e1432097fabe3ab3d",
-    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-gnu": "f6e70a862dcdf24b035061602b1081163083ed022bf15366337fdf5af5b999b8",
-    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-musl": "eb028b9c1fda5730ad387312eb6fca48da94cb654edaa0a6a445092b1bd28af2",
-    "2022-01-19/rustfmt-nightly-x86_64-apple-darwin": "e205536ecdb2e15243a2436a41fc398b6a558be98d1ae8b281e9dd3748f3931f",
-    "2022-01-19/rustfmt-nightly-x86_64-pc-windows-msvc": "571d43d9091f87debf76102801a9d65842314532af34f08fec9de1b8346e532e",
-    "2022-01-19/rustfmt-nightly-x86_64-unknown-freebsd": "194f0c425d9188ceb69233069b162b25bb829c8fc155979433457d63b32df61d",
-    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-gnu": "3cab5f9cc9fb0681ce5c284b5ac98e92cbf73c2c9eb993d7d7d9faaf3363f01c",
-    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-musl": "41233d3f0fad709cc751def5342849564446cbc3a00045b39cb6a8c26d7dc436",
-    "2022-02-23/cargo-nightly-aarch64-apple-darwin": "16cc0baabdb131b3739d5db9d98a26db494a470afb15c29fb3f30a8a9701ffa7",
-    "2022-02-23/cargo-nightly-aarch64-unknown-linux-gnu": "c7b2643282f256f01224d93af31e722ff0ff64780fe391fdf1343aabe03b3a30",
-    "2022-02-23/cargo-nightly-aarch64-unknown-linux-musl": "3a4cda34180864cdf9505316e985460018756717878f8529c9141a982683c7aa",
-    "2022-02-23/cargo-nightly-x86_64-apple-darwin": "4952a58521c389ebbbf12d5c5f855d7ff63b6cbaa8b39f5d0410638ce18f91b5",
-    "2022-02-23/cargo-nightly-x86_64-pc-windows-msvc": "2909e511824b752f9137c1312076a3b570dcf9df19823c41b188db9859f44830",
-    "2022-02-23/cargo-nightly-x86_64-unknown-freebsd": "c5d47b6b075ff2bb881f1fe07f89e0927beb23cdb169c293e976853833421f96",
-    "2022-02-23/cargo-nightly-x86_64-unknown-linux-gnu": "ef101ce313d0d045ed121e312b12bb41c20bdc07963543ab77c5a5ab9802eb02",
-    "2022-02-23/cargo-nightly-x86_64-unknown-linux-musl": "dbb5a85a3d753473e5595b12c08b217aa8c13b01c64cffef5c702025d2557c38",
-    "2022-02-23/clippy-nightly-aarch64-apple-darwin": "59778a7fbd8a5fe3bade8b95d7ff7ec1419dfa95e2271afa6b32baa1d5c3710f",
-    "2022-02-23/clippy-nightly-aarch64-unknown-linux-gnu": "62d3027e541c8fc87acc076865469af0020b1ebff97ebf45dabf0fa3537ee7be",
-    "2022-02-23/clippy-nightly-aarch64-unknown-linux-musl": "dacaa625832e840e464ce5c0dc5bbefe5e15b1faa9fdf1fd29f4a5a9c6d955c6",
-    "2022-02-23/clippy-nightly-x86_64-apple-darwin": "7f98beae8363a2be260f2adaca025408abb092894138ae5a00cb43f8cffe5fab",
-    "2022-02-23/clippy-nightly-x86_64-pc-windows-msvc": "695c78fd375ca2e67d2b2dc679c242de32e7ec6366ac39c1060de9f4bb34c97e",
-    "2022-02-23/clippy-nightly-x86_64-unknown-freebsd": "674891a88d78046afb4da489ab47bf2994a7aab4c65eea42639611cc992114d0",
-    "2022-02-23/clippy-nightly-x86_64-unknown-linux-gnu": "b510582d9ea92fb059c89deff9a74a9725c8e935daedefef20443ce44e8d40d7",
-    "2022-02-23/clippy-nightly-x86_64-unknown-linux-musl": "f582add076fb61857c380258c0d854b7601381ba3dae7ae5b423978511159ed7",
-    "2022-02-23/llvm-tools-nightly-aarch64-apple-darwin": "b35cc47bd525e6664592f403905866c48bb9cb7b1b409bcf63c2b35d32993a79",
-    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-gnu": "4c02f526bd993a9118ac0ac610b85e5cdfd42bc43d7ecf77d8c3067893c8a54d",
-    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-musl": "b857b033803a4d6020c3425af9d4ea2b0462cc2db67f549e7dd426f81265d48c",
-    "2022-02-23/llvm-tools-nightly-x86_64-apple-darwin": "5e26961b8f803ca6d5be40622a8580164986bf54d8391b1a4524fcffbd1eeb10",
-    "2022-02-23/llvm-tools-nightly-x86_64-pc-windows-msvc": "dd5f7e54725d973423b3cb2ff3a0492da76491911591f6b34231af1dce332a7a",
-    "2022-02-23/llvm-tools-nightly-x86_64-unknown-freebsd": "dfb6f74016e677c28cf6eeb9e8430f5022e0c874619e2f5235728e82416e443c",
-    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-gnu": "2746d97f126edf2045f012591c1262d725cf042c56c32caf7ecdcc0eb1ae001e",
-    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-musl": "d307f34ba5fdfa7f4a4645e76a9bf8447c3baaf404017b0c698e516c3be5b56c",
-    "2022-02-23/rust-nightly-aarch64-apple-darwin": "e00ccb8acffe7450d78c5b2fc13cbc01a5210ad8edcaf27bf4a7961806942ae7",
-    "2022-02-23/rust-nightly-aarch64-unknown-linux-gnu": "f9b5613cb5ba524dfe8ba7325c2b8f8f112173d3e1a9bc5a75de49a604f4c379",
-    "2022-02-23/rust-nightly-aarch64-unknown-linux-musl": "a87bc336ca122847a998bcbfbcd9b1b7232c7cab7219a63948ec73bb2b9563bc",
-    "2022-02-23/rust-nightly-x86_64-apple-darwin": "a585cbad9e35c3a2da5d0037078501a01edaf66d9e52ac2e4394b733dd5ac81b",
-    "2022-02-23/rust-nightly-x86_64-pc-windows-msvc": "2df97bea4add36de47074a5d70d84f3f2cb29f038b6ca82af4e7986ef5bc9acf",
-    "2022-02-23/rust-nightly-x86_64-unknown-freebsd": "fa6b2300d71c7fab41a2c9a6b8a6b210eed8d3fe8263e8e17f2034072dd15c94",
-    "2022-02-23/rust-nightly-x86_64-unknown-linux-gnu": "d0fcb7b0e2b9b09ecca0954af53732c647859c3140b79fb2c1bd61af9846c3d3",
-    "2022-02-23/rust-nightly-x86_64-unknown-linux-musl": "00ed0db2ed84d6ab0347b663963b7ceba40483a9f40316e6f57872dbfc5ef395",
-    "2022-02-23/rust-std-nightly-aarch64-apple-darwin": "66623fbb88fb63ce610dfe1d5b3242620f1bd473386950b33c3383cc064f8743",
-    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-gnu": "c6f82581224c8d968f0e747b07b6651f96ad8736aabe912ca9fadab7a82e7e5d",
-    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-musl": "fda164074a8a6329835d99423a51a921948aaa67a2c6a3982940f73fe62b1a35",
-    "2022-02-23/rust-std-nightly-wasm32-unknown-unknown": "607a92b4e349601d6d7b4575b303324ec8af153fbfa19d6171eccd72388d6f63",
-    "2022-02-23/rust-std-nightly-wasm32-wasi": "4702cab8d82ae958c984686df053897ee53ae98650046016053261c922e848c4",
-    "2022-02-23/rust-std-nightly-x86_64-apple-darwin": "e6f2d3e182060387bba51540a6a8207f22cdf2f28f510143164bc755adf3d717",
-    "2022-02-23/rust-std-nightly-x86_64-pc-windows-msvc": "940c6687afd93a499e634fa31613d635f8f74ca6c16fb677a418f7288c8b80ad",
-    "2022-02-23/rust-std-nightly-x86_64-unknown-freebsd": "b685a785f022c76231c716d1ea305d03e46c7c785e5ce38be895d357e20b044f",
-    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-gnu": "515506678fc829b3d418e124fa44ac29a5c485377d3fc753493e16aeed856f2d",
-    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-musl": "5a9b8bf339631e33b45704a4f071991ba0694c7b00d94d35793a86ebdb5ad354",
-    "2022-02-23/rustc-nightly-aarch64-apple-darwin": "e967e5e396f7a931f53f7a9737591c4bbfdbeec869495b3cfbce8ccb18c54fa0",
-    "2022-02-23/rustc-nightly-aarch64-unknown-linux-gnu": "7a222bd902f3faa17b486027b357f461659a54f7ba81dc1b784a450d6b06f81a",
-    "2022-02-23/rustc-nightly-aarch64-unknown-linux-musl": "c898784e3e4e2fc0492c53148857ec7eff61bdda44b608a3d06e88b7e30372c9",
-    "2022-02-23/rustc-nightly-x86_64-apple-darwin": "4976dd96f04ef65f948deb988fa9ad7adfbfbd4873c0c78657830f18cd565d4b",
-    "2022-02-23/rustc-nightly-x86_64-pc-windows-msvc": "aa55308792edfdb41d1e7121e0343c05847b7e860ece9ff4c9534d64084b09bc",
-    "2022-02-23/rustc-nightly-x86_64-unknown-freebsd": "32b6dce6fabc18617d7b2295e45ff30221a68979b8302bde97c98596047f2a0e",
-    "2022-02-23/rustc-nightly-x86_64-unknown-linux-gnu": "d30ae66c6ad9f0292effe047d7977ecf1f2f6c5be783cfa110c54fdb5bd8396a",
-    "2022-02-23/rustc-nightly-x86_64-unknown-linux-musl": "355e30a7f4416a2db738d950b40d0eb57fc734f59871e1291349509e74f1be09",
-    "2022-02-23/rustfmt-nightly-aarch64-apple-darwin": "8f4bc35d8e2b03db96a5d9faedb5e25155082d96621c26b90734219468904c62",
-    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-gnu": "88691ff2cefa6880cb4bbe2d717b5419cd0440ee0d000ff8a70f9d86d714b866",
-    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-musl": "394ee236b37b687963a0c42e40b3c6863460c302429ad00ca37c7931ea896233",
-    "2022-02-23/rustfmt-nightly-x86_64-apple-darwin": "6e7ba1d83b61ce690c857bc197f3c0a1cf0cb2afd3c4c7f16fdb4079f460ce6f",
-    "2022-02-23/rustfmt-nightly-x86_64-pc-windows-msvc": "e1a81be6159fb9e28cb1f35ac4508a09a0be86edf6ab39db08988a5bbefa9e76",
-    "2022-02-23/rustfmt-nightly-x86_64-unknown-freebsd": "63a0018ed3b7bf94dca3db30be7a1d6940a7559cdd0ca408c366551e2f5e6863",
-    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-gnu": "7ab236ced294c39de4bb563e9ebaed04c906a4ccfd1932138d37d6d03f75cae7",
-    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-musl": "647da2183d93846ac5225b99117846a07a90975bdf1b5075e86601dcf97d1ecf",
-    "cargo-1.48.0-aarch64-unknown-linux-gnu": "71347016f0da96d4250225f7b52701274df958870b1a65482badb87d661035f9",
-    "cargo-1.48.0-aarch64-unknown-linux-musl": "873883a9f6eb2e0cae7dafdc6c4262157298b7bc6ac5c3ed899ed1f55cad7e82",
-    "cargo-1.48.0-x86_64-apple-darwin": "ce00d796cf5a9ac8d88d9df94c408e5d7ccd3541932a829eae833cc8e57efb15",
-    "cargo-1.48.0-x86_64-pc-windows-msvc": "c1287b03522828b527ba95a5bc9de0246efa4365a43d22a212f50a5ca2ea1487",
-    "cargo-1.48.0-x86_64-unknown-freebsd": "55fcdad2ac3a3f8066c323f75fb2b222822023f8b9961317d710f2f43771aa62",
-    "cargo-1.48.0-x86_64-unknown-linux-gnu": "52bf632e337a5e7464cb961766638e30dfa28edb3036428296678d1aaf7d8ede",
-    "cargo-1.48.0-x86_64-unknown-linux-musl": "0dd47d6342b17bc6c0fbf9ec007be0c90274e40e76d8e6a88cac73ecafc1583a",
-    "cargo-1.49.0-aarch64-apple-darwin": "2bd6eb276193b70b871c594ed74641235c8c4dcd77e9b8f193801c281b55478d",
-    "cargo-1.49.0-aarch64-unknown-linux-gnu": "fce2bd0eabf9a9958b02f5ede3c227c992ee7048ab34293cce57bc3d48e63fc0",
-    "cargo-1.49.0-aarch64-unknown-linux-musl": "18b4fa2d7a737754ae2d5ce3a2f8c8881fc4d9b5aae20109d7d3d622cf3ac145",
-    "cargo-1.49.0-x86_64-apple-darwin": "ab1bcd7840c715832dbe4a2c5cd64882908cc0d0e6686dd6aec43d2e4332a003",
-    "cargo-1.49.0-x86_64-pc-windows-msvc": "84b44835a3f275fef70cd86a527d086c537e59fb3209fe8bbef1eeb1da6edbb6",
-    "cargo-1.49.0-x86_64-unknown-freebsd": "320aac1e31eed2db657380bce2d8ff8b65fc8de59f4aadabf8219bcb6b4ce1a1",
-    "cargo-1.49.0-x86_64-unknown-linux-gnu": "900597323df24703a38f58e40ede5c3f70e105ddc296e2b90efe6fe2895278fe",
-    "cargo-1.49.0-x86_64-unknown-linux-musl": "c2a3d3b27ac105acf7bfc25d6e401b9ac369597f57220332377b98b2f8cb550b",
-    "cargo-1.50.0-aarch64-apple-darwin": "19d526ef3518fb0322f809deddbd4208a27d08efa41d2188348f1be8d3bcfe5e",
-    "cargo-1.50.0-aarch64-unknown-linux-gnu": "9b6fbfec7f6d14013387433f3a907b1f474027d7f32f626dc1c5ca83faefe573",
-    "cargo-1.50.0-aarch64-unknown-linux-musl": "7ec67e55fe541cfe32221e9b69349d2de83a24f7967f58eb4dc06e59f321babf",
-    "cargo-1.50.0-x86_64-apple-darwin": "45640bb1cef40f25ecb4bd2a3bb34fdf884c418e625d4f9c9595d2aca84fad78",
-    "cargo-1.50.0-x86_64-pc-windows-msvc": "dbd97ac5645668149d4a32b0b5f6274934d95f8b6d6e6926b7de13ee869aeedb",
-    "cargo-1.50.0-x86_64-unknown-freebsd": "97cbdc9b94123e940f7ed7304aba418a1a10ee1cca5acfe302e841ea39efa190",
-    "cargo-1.50.0-x86_64-unknown-linux-gnu": "3456cfd9be761907a4d3aae475bd79d93662b7aee4541f28df3d1f7c7d71a034",
-    "cargo-1.50.0-x86_64-unknown-linux-musl": "f1f99e1cfacaa69a12c4ee7ffd767bdcf80eb4d4b0e71af545e8e16b2b22d799",
-    "cargo-1.51.0-aarch64-apple-darwin": "3eb0eb6192635c4b844deb97004a7e38a631bb4507b1284c055df8533c00e77a",
-    "cargo-1.51.0-aarch64-unknown-linux-gnu": "eeeee860ec47ebe1c45f497ff99cfee9c869a592db573cd547a67681db695616",
-    "cargo-1.51.0-aarch64-unknown-linux-musl": "297a66f911298c55e7a494286769c045184e7b65fb3dc0a56d5a00d8655c6341",
-    "cargo-1.51.0-x86_64-apple-darwin": "37eb709e5ed8fe02d2c8d89bc0be3dc1d642cff223c25df311ff5a82eab53d4b",
-    "cargo-1.51.0-x86_64-pc-windows-msvc": "ee232ab24aa57f3c57218a5886af673725ecff38ad58e8d75257d4fd0c86b148",
-    "cargo-1.51.0-x86_64-unknown-freebsd": "fb2b8a5fd787944392adec0593f6921131069a5a95c1f53be75f98451d918300",
-    "cargo-1.51.0-x86_64-unknown-linux-gnu": "fe8abe2c2b467ac5f5021ff8020eda70de9e9f8f45b4a2e834afbd3b78323a31",
-    "cargo-1.51.0-x86_64-unknown-linux-musl": "3e3f1ca2aba2d7195bc447f4e446bbf6c8803f42ebaaf7a32e7f92268cf2f6ff",
-    "cargo-1.52.0-aarch64-apple-darwin": "86b3d0515e80515fd93612502049e630aeba3478e45c1d6ca765002b4c2e7fd8",
-    "cargo-1.52.0-aarch64-unknown-linux-gnu": "4a7f07bd9f30ed0409a21fad831afec0b9d0d10b5bca10cf826fdefe04a4f4f9",
-    "cargo-1.52.0-aarch64-unknown-linux-musl": "472cd83b79e173932ff436e77802c217599f73f672e88345bb61105dddf2a2eb",
-    "cargo-1.52.0-x86_64-apple-darwin": "02a4be4aae1c99ca1e325f9dbe4d65eba488fd11338d8620f8df46d010ffbf3a",
-    "cargo-1.52.0-x86_64-pc-windows-msvc": "866fc858fc422fa52afdabfb5feaf6e6aed41c575d6edfd4f343425faaf01023",
-    "cargo-1.52.0-x86_64-unknown-freebsd": "c732090f26a36211de084fba0ffcc8d1b49591d935d3b4ebd515a9570043aeb2",
-    "cargo-1.52.0-x86_64-unknown-linux-gnu": "85151d458672529692470eb85df30a46a4327e53a7e838ec65587f2c1680d559",
-    "cargo-1.52.0-x86_64-unknown-linux-musl": "ecb7b4968ca1b19c09ac3de9ea60420e8435c32e25f7412c19a0ac3f9dcb3363",
-    "cargo-1.52.1-aarch64-apple-darwin": "6787f8746cedd005b7abeabf6e2250ebc5fa767486c5bf23c597298e6965d576",
-    "cargo-1.52.1-aarch64-unknown-linux-gnu": "d2e15beebe22b6f6380d233f48599fc1b9228b064f0915eea02b2376f0bde1e1",
-    "cargo-1.52.1-aarch64-unknown-linux-musl": "dc8f6cf0c02f68b05b470087cd611cc4107060daae64f9d09677e97389c51281",
-    "cargo-1.52.1-x86_64-apple-darwin": "40d8fe950202763f633b6dd927f8e546e0a44b4b959945310c9eeb77f69e72d1",
-    "cargo-1.52.1-x86_64-pc-windows-msvc": "bb25d1ca297ac99a1dde7ce537880c1f5a37e392257b5aba589938b4f1bbf659",
-    "cargo-1.52.1-x86_64-unknown-freebsd": "67f858cf9e46fb7efe825adb854302e187ad194d05ded1e7b8ce165607869947",
-    "cargo-1.52.1-x86_64-unknown-linux-gnu": "f3225c27ce16296400389285358b61e138811c2e0eb1388593817688145ab64d",
-    "cargo-1.52.1-x86_64-unknown-linux-musl": "300c30d1ad47c84a8d806ef492db2478bc7c17793b92513533166bd9d9b51857",
-    "cargo-1.53.0-aarch64-apple-darwin": "5f0aea0cd507ff6e3b1e1ae54a8726172d055a8b6d8b1ba550ce9ebc96a8a891",
-    "cargo-1.53.0-aarch64-unknown-linux-gnu": "7c35c086e294af3ae82df5609c6833a36bd8e6634e8ecca18f863829cfe80ca7",
-    "cargo-1.53.0-aarch64-unknown-linux-musl": "9c0e9137aaf5c13f9d65487ec3216fe39280f387be4133da088355e263ce42da",
-    "cargo-1.53.0-x86_64-apple-darwin": "b42f4a7d054e219d8744af48cfab798473981455a050a320c46b164382726e50",
-    "cargo-1.53.0-x86_64-pc-windows-msvc": "7ab1bfdee65f19cb60671690566b89e3a0f210f04dd53078786f6c708b523223",
-    "cargo-1.53.0-x86_64-unknown-freebsd": "3e2c5681793c86f21133ac7b26aa5af4525b8471ec5df840d41d0e563fb675c8",
-    "cargo-1.53.0-x86_64-unknown-linux-gnu": "e79d9d0b03cb331428ef3cfc4cbe60ded9f90708a7dd1714d974dab9a03ee7b3",
-    "cargo-1.53.0-x86_64-unknown-linux-musl": "d8f632c0b2f8abafb1149446c695a8a7024134fa62faa37ac8922a41dd66c95a",
-    "cargo-1.54.0-aarch64-apple-darwin": "7bac3901d8eb6a4191ffeebe75b29c78bcb270158ec901addb31f588d965d35d",
-    "cargo-1.54.0-aarch64-unknown-linux-gnu": "d54d0bde0014e73a9c6943665bd236e5596c86d58869bc758aa6c24a9ad53061",
-    "cargo-1.54.0-aarch64-unknown-linux-musl": "2dd6ecd46b769efbb397794e5bad4249779be3e91738efd26a7673fa728a5ac0",
-    "cargo-1.54.0-x86_64-apple-darwin": "68564b771c94ed95705ef28ea30bfd917c4b225b476551c998a0b267152cd798",
-    "cargo-1.54.0-x86_64-pc-windows-msvc": "ad8808314e36af5de8e3e8e519c4e73d30b56a8020418aec2fd1f0f3d2d7a8f6",
-    "cargo-1.54.0-x86_64-unknown-freebsd": "3a2612b2073f5d3b45a4c88f359a8f5e2b86b85f7ef68bda518f532339f01227",
-    "cargo-1.54.0-x86_64-unknown-linux-gnu": "8c4f404e6fd3e26a535230d1d47d162d0e4a51a0ff82025ae526b5121bdbf6ad",
-    "cargo-1.54.0-x86_64-unknown-linux-musl": "d6e2d8e2075f433b3a607b95ef170a85fc0b44356905111004d23a9b72776b0a",
-    "cargo-1.55.0-aarch64-apple-darwin": "9e49c057f8020fa4f67e6530aa2929c175e5417d19fc9f3a14c9ffb168c2932d",
-    "cargo-1.55.0-aarch64-unknown-linux-gnu": "48bc8751f548b08643fbdea7756ccda35f0762492e95ea41ca41137290f56513",
-    "cargo-1.55.0-aarch64-unknown-linux-musl": "01ac6a21d74ac66a33e58d2d5766c4c90673be0e8385893da4e178a0ded56299",
-    "cargo-1.55.0-x86_64-apple-darwin": "4e004cb231c8efbd4241b012c6abeefc7d61e2b4357cfe69feb0d4a448d30f05",
-    "cargo-1.55.0-x86_64-pc-windows-msvc": "2bc59373437d25e5cb9d4f573fa187078c5a924a244366787ce04106d3972f6e",
-    "cargo-1.55.0-x86_64-unknown-freebsd": "f574b15dee6c52f25076bb657f3e3129b5828a2617c82f2e1c4101e0bd21a880",
-    "cargo-1.55.0-x86_64-unknown-linux-gnu": "bb18c74aea07fa29c7169ce78756dfd08c07da08c584874e09fa6929c8267ec1",
-    "cargo-1.55.0-x86_64-unknown-linux-musl": "d91efc8e7a71845dcec9ec7db1edb6765cba5ded69d3ab734f549d6875b52e97",
-    "cargo-1.56.0-aarch64-apple-darwin": "ced26df8edddcb7ebdedd2997b9005fc9a849e57b1b82f3aeba9241039f7b958",
-    "cargo-1.56.0-aarch64-unknown-linux-gnu": "3a3b0b74a18247db46badc1e94285fe5e60ad0e9c18fd2dbf15878aa56a5994a",
-    "cargo-1.56.0-aarch64-unknown-linux-musl": "bf24b7df97d93d61f6c1ed8382d99400c4197939502b14904c40ef96bb2abab5",
-    "cargo-1.56.0-x86_64-apple-darwin": "63b6558712050e7f8c57cac0b5b7cb2cafc125d157d9f4bd82f6f47b4648ed0d",
-    "cargo-1.56.0-x86_64-pc-windows-msvc": "319ae8cde721f611ddf673a4aad21b145aec6577ccb75d40ad0856cbab9a2cfe",
-    "cargo-1.56.0-x86_64-unknown-freebsd": "e1e7400a16c7cb1d2ac83e567c8c23f04fb6ccfcb7b6d1978d327da6edc879f6",
-    "cargo-1.56.0-x86_64-unknown-linux-gnu": "e74bd0038893e76393f67a58786ec33ef9251cdb65550b3a2a8117c7355ead71",
-    "cargo-1.56.0-x86_64-unknown-linux-musl": "efadb9f545b6ce49d4a861ae7e75f0ce02a6fedb9e5b30e7810dcb4854ca6799",
-    "cargo-1.56.1-aarch64-apple-darwin": "6ed30275214e956ee10b03db87b0b4297948fd102d39896cece01669555047ef",
-    "cargo-1.56.1-aarch64-unknown-linux-gnu": "9aa557436b0cf2a2f4f0d6c4aed5b95062c0637a4a94c000522402e59db1c93a",
-    "cargo-1.56.1-aarch64-unknown-linux-musl": "313f095df71bdd7cab5934641990cbcf325acdfefdcdf9d7a4a8aa950fc655d6",
-    "cargo-1.56.1-x86_64-apple-darwin": "cd60c32d0bb0ed59508df96bebb83cf6f85accb9908fb5d63ca95c983a190cf3",
-    "cargo-1.56.1-x86_64-pc-windows-msvc": "0606835d9c41137552ee63f339c5df1a2ed6f722c871f9fc5cb92b02c7372373",
-    "cargo-1.56.1-x86_64-unknown-freebsd": "a1656603049a4612cdf44179ac7ccdb3c342f0b152cb114f61a228d321b0f384",
-    "cargo-1.56.1-x86_64-unknown-linux-gnu": "c896c033bb1f430c4e200ae8af0f74d792e4909a458086b9597f076e1dcc2ab2",
-    "cargo-1.56.1-x86_64-unknown-linux-musl": "4ecdd39695d9e09c3f4efffff61d67451cd41f28f09155485ac7dcc8f7a65a26",
-    "cargo-1.57.0-aarch64-apple-darwin": "2171ecf2c18fadd90588252aa294272aeb740f065772076ef36d04b1b4bfcc4e",
-    "cargo-1.57.0-aarch64-unknown-linux-gnu": "8c046fc59feb1d670757b6de30990e346faa4b2ff49cd42f6d5f6a2b92a1ad6c",
-    "cargo-1.57.0-aarch64-unknown-linux-musl": "87f7b1fb2b1a270336fbeac0ed2ea2ceda1fde26467f133e059907b57ad2bdb6",
-    "cargo-1.57.0-x86_64-apple-darwin": "26129f0e3ecd42e730f62d9c693e1a89aedfe6b7c8108cf970b2f1ed51900fb8",
-    "cargo-1.57.0-x86_64-pc-windows-msvc": "23f4562605316f0c9002bb30d0e635f96577db9002052ef2f78b63e747b6b2cd",
-    "cargo-1.57.0-x86_64-unknown-freebsd": "c14839639299fce4e448629950c28de61fcfdd0393f9a751958c5c6d9c6d2ba7",
-    "cargo-1.57.0-x86_64-unknown-linux-gnu": "2b341034e4c30bede47a432751935549a28e40b566a1fd4b59c824ccd0a26ff6",
-    "cargo-1.57.0-x86_64-unknown-linux-musl": "0f14c6bb7c413c3be2db1917eb0109b7563bff0ba02a03d30089004811d87f2f",
-    "cargo-1.58.0-aarch64-apple-darwin": "9144ee0f614c8dcb5f34a774e47a24b676860fa442afda2a3c7f45abfe694e6a",
-    "cargo-1.58.0-aarch64-unknown-linux-gnu": "68e2e7493af55c5792636c2b2b0b497b1e43b12eb2e91da71e92426701884c24",
-    "cargo-1.58.0-aarch64-unknown-linux-musl": "269fd3730644890725b3affbf5ad97c3f1a186fcd22e7fc122b6b9b97388aaae",
-    "cargo-1.58.0-x86_64-apple-darwin": "60203fc7ec453f2a9eb93734c70a72f8ee88e349905edded04155c1646e283a6",
-    "cargo-1.58.0-x86_64-pc-windows-msvc": "ab0bdb95efa4084e19a706c14d826fa112306c25ec6304528dadff5f1017ab83",
-    "cargo-1.58.0-x86_64-unknown-freebsd": "8e280cfb6c7aa92d9c955fcfb80b6d09f067e779a5ca0b5799222f1a70ca4764",
-    "cargo-1.58.0-x86_64-unknown-linux-gnu": "940aa91ad2de39c18749e8d789d88846de2debbcf6207247225b42c6c3bf731a",
-    "cargo-1.58.0-x86_64-unknown-linux-musl": "926430f872e5a30b946bebe45df48ceb0d3dc8de04b35e295f33bb3b7dd394fe",
-    "cargo-1.58.1-aarch64-apple-darwin": "fe4507d345fea40e2157a6d7d69100c234a83b5904747ce976df577e63819134",
-    "cargo-1.58.1-aarch64-unknown-linux-gnu": "b4603fe8207c1ac2b5755a5f8da04c32a8a3d34ec1506df28de5dac9010350f1",
-    "cargo-1.58.1-aarch64-unknown-linux-musl": "1bf9187170e8cdaf52ddd45aa7c93248f4d8a6c730b20251cb182b57d6624bd0",
-    "cargo-1.58.1-x86_64-apple-darwin": "27087440329a7d3b0bd2b73870c76677e52c96390c3a7b76e151f8a86ce442be",
-    "cargo-1.58.1-x86_64-pc-windows-msvc": "4cbe75408c2745c72a27a37f77864745c7ce3e79c2d42708732c95fb3cbc9489",
-    "cargo-1.58.1-x86_64-unknown-freebsd": "f60d967c940400a92d142df1396a2031034374874a7575ad74bec2536e101fc4",
-    "cargo-1.58.1-x86_64-unknown-linux-gnu": "a6ca018e19eb25781b72e0ce9971be66c518adb6cebb0175ad88e6ff333f5118",
-    "cargo-1.58.1-x86_64-unknown-linux-musl": "45cca848155e2ef853de74329ee45948e4f6f28f797679d9070f4ffa767ef209",
-    "cargo-1.59.0-aarch64-apple-darwin": "4bdcb77ea084364b551a5cf969e263beb09afa39627f6dead262c8e2a7aed9c1",
-    "cargo-1.59.0-aarch64-unknown-linux-gnu": "857d0b4afa76773a68ebe616db01d1b97d24b6d02b55e7348c968aa48104793b",
-    "cargo-1.59.0-aarch64-unknown-linux-musl": "89ea1001d79ac7dc2158950c40a73aca6d1177d5e44562e9e5a8656b916e344c",
-    "cargo-1.59.0-x86_64-apple-darwin": "d0202b50b4f3d0e943a5d7e8d14420afeac8cf36e6136e8d5b7ddefb3538d62a",
-    "cargo-1.59.0-x86_64-pc-windows-msvc": "4cf585f1a3b295f6d51873c189c2b9d114861a4b41b44ad5245cbf119272a6f2",
-    "cargo-1.59.0-x86_64-unknown-freebsd": "a6732b18419efb4d246a35555f4ccbf904de261cde02f8e82fdbef67e70ddf80",
-    "cargo-1.59.0-x86_64-unknown-linux-gnu": "703c1c66f1d68549d1ee0b7a96f91935a3583af8ec13cc1722ff7a0f1c69ca70",
-    "cargo-1.59.0-x86_64-unknown-linux-musl": "ee2fa67e67395f9b8e1b52433ca281454c3e4f55db536414edfadfa2d649c8bf",
-    "clippy-1.48.0-aarch64-unknown-linux-gnu": "2cc894bf75d938c0f7b96c7711d93b6d5a0befed5c09232cdd8413a57942ed88",
-    "clippy-1.48.0-aarch64-unknown-linux-musl": "b3d740358470df6f4c1881a40db16c6fce4082bd251b012963147fdadab96879",
-    "clippy-1.48.0-x86_64-apple-darwin": "d70a5d224a90df3fc77d7bd38df931023a3966be755b888bf0888d6bfcbdc424",
-    "clippy-1.48.0-x86_64-pc-windows-msvc": "e52103f31fe8d4e067b28273ba0aed9ae352d88ad1c3b9860ec1e08b81241ebc",
-    "clippy-1.48.0-x86_64-unknown-freebsd": "14459e9629b09c83c38fe2366d996490c1691fb3ae9937f4a8de48219857e14a",
-    "clippy-1.48.0-x86_64-unknown-linux-gnu": "409c2e4a6b50f9a797379e687c2d0bcbda4a268e736fadd2be07f35a2fb9557f",
-    "clippy-1.48.0-x86_64-unknown-linux-musl": "cf6480cc206ef4b615f95de2f048e6bbf17072b39dd76246faf3440fccea3704",
-    "clippy-1.49.0-aarch64-apple-darwin": "d6f2782d600f1a25d1fb9fe828be0cf170fe5afad50184c30e8c32310f26fd8c",
-    "clippy-1.49.0-aarch64-unknown-linux-gnu": "ed805952ab975e9f395fa68544448ff7a6e823c4bf7e04952e4c1dae5a550be3",
-    "clippy-1.49.0-aarch64-unknown-linux-musl": "f4329c16a6f448abe7be50b2206ca7d8a21605d9d8e3f01303fbe737d0c3bf7a",
-    "clippy-1.49.0-x86_64-apple-darwin": "c4a7baeda3a558a65af3afe857aedb5f25e8dd0ba42ea02cdd1056d92e610b35",
-    "clippy-1.49.0-x86_64-pc-windows-msvc": "70eec30a80aebaa1f6f4dfc1a6fa681cdc833aa2281726319a06c9fb1af277fa",
-    "clippy-1.49.0-x86_64-unknown-freebsd": "835bb7c1d4f4d57453f69b35e758347ad02f22949cbce3265282d2059aea4166",
-    "clippy-1.49.0-x86_64-unknown-linux-gnu": "0be34ad7ddde82f54353d5322c6142b43d4dee54ea26b9428a3a34444aa4b9c4",
-    "clippy-1.49.0-x86_64-unknown-linux-musl": "c53a5e73e99ea9f3e14f2c1164f234eac4e60e428ed82502ffbfdd19be728f3f",
-    "clippy-1.50.0-aarch64-apple-darwin": "c0a335e4cc3b0775661c98937c767eb63f5cca4a8a224c164af2415158175025",
-    "clippy-1.50.0-aarch64-unknown-linux-gnu": "bfdd830f04b1dae6ffa71e750b391cdd43def5a9c266366eea8e6b8071509747",
-    "clippy-1.50.0-aarch64-unknown-linux-musl": "1fb4eaf6c2230ff138edb906ac55fbb47b638e412c83580a783749a38096cb98",
-    "clippy-1.50.0-x86_64-apple-darwin": "466be411c4eff28c006179ba5a45af5c37dc9a56395a24ad597fa54a475eb97e",
-    "clippy-1.50.0-x86_64-pc-windows-msvc": "65b3198dc0082d2ca77559047901dd102d100bf7fde513a0a3e81ab78c93d568",
-    "clippy-1.50.0-x86_64-unknown-freebsd": "f065a60cae99287eeed1ad479f159efeef7f79459b8b4369c451d966bc8b0bed",
-    "clippy-1.50.0-x86_64-unknown-linux-gnu": "ef4098fdb39d67366300a63370c513ca97fdce8f4d6ce9e2a5fbff32d3a8ea38",
-    "clippy-1.50.0-x86_64-unknown-linux-musl": "b921d64ab3a130240372c069f72b549ec5c0d566dd302c6b7593453536688ed9",
-    "clippy-1.51.0-aarch64-apple-darwin": "1d4769e522ec3275b6a1b6e63f0d48b6995cf3647df4d97fc1c20bf2969cac6d",
-    "clippy-1.51.0-aarch64-unknown-linux-gnu": "bbf4f53e8c9496524384cf8e3a9e56bd80b19aae12135c058ef113bec40fd30e",
-    "clippy-1.51.0-aarch64-unknown-linux-musl": "ede6e08307a91fb18feec8d4ea9e170dd3f522f79267ca39d258dd554af5eef0",
-    "clippy-1.51.0-x86_64-apple-darwin": "6c1d2c143720058a67da274b1579b4e7e955bd35de6d4714d884b55030ead225",
-    "clippy-1.51.0-x86_64-pc-windows-msvc": "9d7c25c031257ec62b0800e418252e4a53319a513deb9e682b438bef1abc4056",
-    "clippy-1.51.0-x86_64-unknown-freebsd": "db15a34b5d829338f63c436665c7106817b2577d9417615d75e4aa6b27633c3a",
-    "clippy-1.51.0-x86_64-unknown-linux-gnu": "61774912e775de826e4f9173c8f91a915d91319d353ecad46361775a035ed69f",
-    "clippy-1.51.0-x86_64-unknown-linux-musl": "4d3f51f4e1220e740e6d310c5f90652b8463e8897a9e4fe82d9c4b8e3315f9b5",
-    "clippy-1.52.0-aarch64-apple-darwin": "0e8a71e8567553ed625168f46e2253c04ef19f0ae7683b6500b3fc07cb81fefb",
-    "clippy-1.52.0-aarch64-unknown-linux-gnu": "06b0a9e579b93bcf5948f013c1e053f8ad6717b3349068b2dbe774215f4b0dd3",
-    "clippy-1.52.0-aarch64-unknown-linux-musl": "a2075592aeb37ad33ebcd93b228e79dabd8fb62eeee7aae531ac0d9682eb6abc",
-    "clippy-1.52.0-x86_64-apple-darwin": "baef3bd3c93872c67ddede8b657236f5f368a9e30b2ba9725c70881877c6db28",
-    "clippy-1.52.0-x86_64-pc-windows-msvc": "149418af4a93f3c4d8978eccf95a968d2fcef4cdd748b284c782d8efd06d38da",
-    "clippy-1.52.0-x86_64-unknown-freebsd": "db50b6ac0cfb3c8eca34e8059014bd5602dfd160246a51efef568165ff7bd4bc",
-    "clippy-1.52.0-x86_64-unknown-linux-gnu": "00a55613d1a47c12c08f6b101ca791052b07650b624c102acdda4569ba2652a9",
-    "clippy-1.52.0-x86_64-unknown-linux-musl": "95950b2455e706d500a2c2f02904e5d48394b998f5f486fe376a144edcd7f85b",
-    "clippy-1.52.1-aarch64-apple-darwin": "fa19b0115201c9462f36eb8f51db07cf58af02ba2c997f1431719f78bea30904",
-    "clippy-1.52.1-aarch64-unknown-linux-gnu": "91d914a83b5c6d1b551a4acfa96c9cd4365b674438fdd3d2114ee86f11f53849",
-    "clippy-1.52.1-aarch64-unknown-linux-musl": "0910ba13838bf80b5ae86c219078340fc02ba5e0b570c54a510aedf78cc6837d",
-    "clippy-1.52.1-x86_64-apple-darwin": "39264348d1246a9cff623eb511979b71831ff331e16be6bf3371ccefa19a23f5",
-    "clippy-1.52.1-x86_64-pc-windows-msvc": "2470d52eda90cd6f7a02901bb2144c40957b0decf2af8f6cf115265acc64c956",
-    "clippy-1.52.1-x86_64-unknown-freebsd": "d9b4aeb263668e95b3fff8d4125ce28905695c1c8ed3d9d5bf949d47d386d13c",
-    "clippy-1.52.1-x86_64-unknown-linux-gnu": "33d6d2446ec4d381057f404c7081686856a001bd91409d81c96aeeb6c452d289",
-    "clippy-1.52.1-x86_64-unknown-linux-musl": "f37ccdaf359f1ae4aa31324490a9ab2ebfe56e5f11245dfea04930eaa0b5c5c3",
-    "clippy-1.53.0-aarch64-apple-darwin": "311247f7aabd4d846d1220f26a6ea6478219d6549a9abc546ad69092dde2e1a7",
-    "clippy-1.53.0-aarch64-unknown-linux-gnu": "56842a410a38293a09cf4d880a5d237c10eaf8344a080bb1ea0d3e069ce12112",
-    "clippy-1.53.0-aarch64-unknown-linux-musl": "26db11ca69b33b3ac8e3379573f7e3bbc352f7920f98c4434465636c34d386dc",
-    "clippy-1.53.0-x86_64-apple-darwin": "ede5bceff1be27a21b12a3be4034d254925d3d58d39713fa4af9fa561f1ea671",
-    "clippy-1.53.0-x86_64-pc-windows-msvc": "dcff1fcdae5ca816a71c9f080246860e8e1d90022576d28d74d033f940ed8aa5",
-    "clippy-1.53.0-x86_64-unknown-freebsd": "4de1e957c3999a130ef3cb0362a28746ffaf79197cbb1ebabf7be6be115b2f29",
-    "clippy-1.53.0-x86_64-unknown-linux-gnu": "bf065f9c7710a5e7305fb511bd1e21bd248ab216230ec0c71d8bdd2383e0b088",
-    "clippy-1.53.0-x86_64-unknown-linux-musl": "ae84cd0677a5446dd07384d4006f52fc6e2d290728edabb5a169a56ca9bb388b",
-    "clippy-1.54.0-aarch64-apple-darwin": "086e52350792a8b4e3f3f40753948e7d067c38c9c0f22492f2c7d88ba7c94e95",
-    "clippy-1.54.0-aarch64-unknown-linux-gnu": "e25bdd281f3fa9cb194eaefe75cea7f4f0cd70c615ac7077a015764360d45953",
-    "clippy-1.54.0-aarch64-unknown-linux-musl": "8de3e94808e40540402aafed1343ce6cd058c86fa7ac174c6ec591e4a03d6c09",
-    "clippy-1.54.0-x86_64-apple-darwin": "b1548c2d6d524aad02865e98a367dc665cd5b1847a20d29b142cc13adfea43b8",
-    "clippy-1.54.0-x86_64-pc-windows-msvc": "36e03f67f45d83d66187df2380b4acaaa2cfe5924c53c724a83a2780f78212a1",
-    "clippy-1.54.0-x86_64-unknown-freebsd": "92569c0f9faab4501d47ab6958d6535d2039490e763cc65c1700b0c5436106b0",
-    "clippy-1.54.0-x86_64-unknown-linux-gnu": "4896d754064c781611901c459d326dfcc10d9916cad5c1dd6a0898bca7e6428e",
-    "clippy-1.54.0-x86_64-unknown-linux-musl": "8184892daa7b652af96c9634ad15f33e97b022c7aad16e1e95bb95bf3fa96972",
-    "clippy-1.55.0-aarch64-apple-darwin": "470c8c99050a7785c4b261ab95575141bb48f19dc135dec96b8424e175898670",
-    "clippy-1.55.0-aarch64-unknown-linux-gnu": "ace2cface85e199c5d1773a88ca5ba4d1527cf3936bc844113e4defb54fc13b8",
-    "clippy-1.55.0-aarch64-unknown-linux-musl": "f1dead08b21cc8a67a3d27c785e107d2aa5363e60dcfd74c7fb81fd663d288b8",
-    "clippy-1.55.0-x86_64-apple-darwin": "fff5969a2a6795e28e040eda2ab59d29a48ff5aad0f15bea194b61befbffec77",
-    "clippy-1.55.0-x86_64-pc-windows-msvc": "d7dfa77cc50348023d973311bf378181bdf18d5aff7c2fde69cf8031564667da",
-    "clippy-1.55.0-x86_64-unknown-freebsd": "ba035cd7f62468fc75a56f604ac3579adce4f90ba2e6df219299f21668def51f",
-    "clippy-1.55.0-x86_64-unknown-linux-gnu": "108ebbc6b311fc0cafc125f1fd7f35a82935000c60cad49a565958e47f63193f",
-    "clippy-1.55.0-x86_64-unknown-linux-musl": "e248a8b3987c2750439966ed5df385a089147079105d85041a8147b1044b4f3c",
-    "clippy-1.56.0-aarch64-apple-darwin": "70eb9ec3d9ab79c20030bd0df903ff972dea451dd2a4b55c7eaa8837c1782071",
-    "clippy-1.56.0-aarch64-unknown-linux-gnu": "fb62502c82cf35fecc55761fb3f7a816d2d355cb31ad89fa844be4a1368853de",
-    "clippy-1.56.0-aarch64-unknown-linux-musl": "fb1852dbeff93f1518ae3d0f7adfeb95596aa55069ad24dbcda14e59bd9ec9a2",
-    "clippy-1.56.0-x86_64-apple-darwin": "9410b2f7096ecc3f495fc8a36e14bd566fdd3e6fda2923b4732c3055da81fcf7",
-    "clippy-1.56.0-x86_64-pc-windows-msvc": "cdca7f40793889dca4eb19b846c7ca7bc60ffd8f5cc2fa20c6c71b66c26e9449",
-    "clippy-1.56.0-x86_64-unknown-freebsd": "c5751a4a7043c7a29755459193cde2a1468b4a0726fb3b188853afc6d6870510",
-    "clippy-1.56.0-x86_64-unknown-linux-gnu": "52b49ecc5d44d7f83983ad1aaa37ed9d0ac86a72395cef9e31d06f4ba2343c03",
-    "clippy-1.56.0-x86_64-unknown-linux-musl": "32b7b596225dedf38f9228edd1fde9211f6bd1969f924c3de7cc0d5150577487",
-    "clippy-1.56.1-aarch64-apple-darwin": "a3ea45a2c569bbfabe556c6d3c3ca6caa3aa84cd1c4897027a7ae17856ad9c9c",
-    "clippy-1.56.1-aarch64-unknown-linux-gnu": "2b9bea99c887b07b960325f51989600c120278ba658ada17ca9b9f8c75270265",
-    "clippy-1.56.1-aarch64-unknown-linux-musl": "578aeb964a07730e8f92b360e7e96c89728ff35d9d2bd21b1e7436b06960b0a6",
-    "clippy-1.56.1-x86_64-apple-darwin": "00690eb127e30b75992256481e75d4f3dd6afcedd0d00495eee88137cdbfc6a9",
-    "clippy-1.56.1-x86_64-pc-windows-msvc": "932cb41989bb9f72c1a8c37a306a663d311fba26e34f3759e3fe533c963c1571",
-    "clippy-1.56.1-x86_64-unknown-freebsd": "2e25fdf46fb4144115583cc2ee9a43d9d8a5ee8806a00ed676c89ab3f26ff799",
-    "clippy-1.56.1-x86_64-unknown-linux-gnu": "07bfe461a7da0631917a1c2ff0f319af85d1083ada911a089a76e792cf673d16",
-    "clippy-1.56.1-x86_64-unknown-linux-musl": "031f5118516ee442d9489ac32922cfa322b76629ba2dbcbd10047891651e8955",
-    "clippy-1.57.0-aarch64-apple-darwin": "1e29be461daed9196ffeabca4855501de118a503863f54873cb24b18ffb785ce",
-    "clippy-1.57.0-aarch64-unknown-linux-gnu": "c6f082eeb70580e293feb68a0bf415d8e490675a50e66c67384cbbf2c38539e2",
-    "clippy-1.57.0-aarch64-unknown-linux-musl": "f8ec644a01ef3f69db2b90e91640334de4b5b557ff2a085053e937f12d428f14",
-    "clippy-1.57.0-x86_64-apple-darwin": "f232a98a50cc0cb6237a09e59e12bf0ed67051e369d5371519085f91f7bd9411",
-    "clippy-1.57.0-x86_64-pc-windows-msvc": "e24ba652942e85bba965b61045f0515f4c7f3537eeea6ae7023c2110179545d5",
-    "clippy-1.57.0-x86_64-unknown-freebsd": "664d64fa5557717b7ea14fb3dfa8c7a32fc03296ff6ea38243e42dbb371776b7",
-    "clippy-1.57.0-x86_64-unknown-linux-gnu": "650a417e4adb00c29795110fb07d671e8fe79ef54a682a357defe7b402d09838",
-    "clippy-1.57.0-x86_64-unknown-linux-musl": "ba8eb172cc6435e396312509925058af6bc16ddd6da8abca7a89b8dbf4dd32d3",
-    "clippy-1.58.0-aarch64-apple-darwin": "8370af0cb5e274de23adab83eb62ce32bf117dfe4681a731719d2b3d1a9758b9",
-    "clippy-1.58.0-aarch64-unknown-linux-gnu": "d228ee69d7552d66f637d0afed4d43098fe0b87fc4cd15ff670f06aec642e171",
-    "clippy-1.58.0-aarch64-unknown-linux-musl": "5dd6ae5262d0b02f417d37698e9ed72a44880cf389e6ca4c2ad6fdcddbc87e3d",
-    "clippy-1.58.0-x86_64-apple-darwin": "98489c63d307db213c66d18f375c4feca49eaca1a48967d0b13e5395a1564924",
-    "clippy-1.58.0-x86_64-pc-windows-msvc": "52ca3e4cf88a39ed02aa573de29a88868b5bf326c4d148b12b791071d004c79a",
-    "clippy-1.58.0-x86_64-unknown-freebsd": "801695120c015e84980408fce40ce0797c7720c291a7d8b56ca0a642d133d336",
-    "clippy-1.58.0-x86_64-unknown-linux-gnu": "747524e25f22659447bef677083625657caa2138a945d44998eb375b4262f9c7",
-    "clippy-1.58.0-x86_64-unknown-linux-musl": "dd4bb678e1f48e6013b46e350355a4911dbef865d23613cb950cfe3691cae88c",
-    "clippy-1.58.1-aarch64-apple-darwin": "89e881ec4e8e2a54cef8999fc85bfec72fc749f4bf3eb292d0b6b7318652992b",
-    "clippy-1.58.1-aarch64-unknown-linux-gnu": "efc65bf92fc1011dc34805d6b2ae18ecebd85f9593fc4dffd9dd1e59daf6eb6a",
-    "clippy-1.58.1-aarch64-unknown-linux-musl": "d28e4e64aa8b96dea036165481ba0b3df118edad7cead3902b1bfe5becf0dd33",
-    "clippy-1.58.1-x86_64-apple-darwin": "e5a67b36bec6c0ba128f134fd08621a6a72b08db64020592b171ea66a1af300d",
-    "clippy-1.58.1-x86_64-pc-windows-msvc": "ee3186a2fe0dd68cfc4d63771d5cb67fd7c34bffcf8bc60fc7f0e70e0c37e94e",
-    "clippy-1.58.1-x86_64-unknown-freebsd": "e52bdea9a882c610b4510011f36b359df5dd0c6b33e3e6c7c1ea1336b59774e9",
-    "clippy-1.58.1-x86_64-unknown-linux-gnu": "8a750e67626799c6d7c2424f5ba47c9d9d4aa128bc2f7b78f9bedb8e4e8c46a3",
-    "clippy-1.58.1-x86_64-unknown-linux-musl": "74ee750364731d8a1f67a7dda33381e64f07adb8af782a5fd00f1b8b5f09b083",
-    "clippy-1.59.0-aarch64-apple-darwin": "37e2589cb182da7c7878eac4386973ee0539e11de6cea047d500247e57214573",
-    "clippy-1.59.0-aarch64-unknown-linux-gnu": "d4278d73c317d487ea4cdfbaf43ffe048744c0ce887c584eb396016b9cc007af",
-    "clippy-1.59.0-aarch64-unknown-linux-musl": "9f8e96d61a23c83cc59c44bac7b42b997f173974ee8b6cd4a9c3b4a54caa0107",
-    "clippy-1.59.0-x86_64-apple-darwin": "932e843d538f3775d7996ad2f9a4e412f431d413c6585521fc95dba85aca2bad",
-    "clippy-1.59.0-x86_64-pc-windows-msvc": "786751cdc3b1937c19e555255092c888509e81ab6295887da0e92f1de7f5900d",
-    "clippy-1.59.0-x86_64-unknown-freebsd": "d1c2ab40e6be423d4d4e29af85b56dec090cc49afb82684c07b0cb19317d043b",
-    "clippy-1.59.0-x86_64-unknown-linux-gnu": "aad54aae93bd8cad8fa1ae77a0e4f79b8439d471b1478a0fb67294497a782edb",
-    "clippy-1.59.0-x86_64-unknown-linux-musl": "23b57a9b3b30b6724df278860d9700e50e88b5dff5afd8b8ddaf0bf235695762",
-    "llvm-tools-1.36.0-aarch64-unknown-linux-gnu": "942856e49837a1c3b9c7d48b52cf0ac0fcb2bb31bb691fe53bfb934afb561c7f",
-    "llvm-tools-1.36.0-x86_64-apple-darwin": "ed702a4174a27fcf118f301e79835c3da205d3d98adb4acc294b72293a2ec790",
-    "llvm-tools-1.36.0-x86_64-pc-windows-msvc": "cf72242bcf873227c026505f56f3ffdaa2febde828d67ad7fc04c4a2e72d7587",
-    "llvm-tools-1.36.0-x86_64-unknown-freebsd": "37c19db740acbe462d878fe193b59653a5073b23a840c6a2e2924772c0642b56",
-    "llvm-tools-1.36.0-x86_64-unknown-linux-gnu": "beae1690418b4adffac166fbfde525be8f5e2b2ce220ffd19b420edb1efa4477",
-    "llvm-tools-1.36.0-x86_64-unknown-linux-musl": "6f2754a2305792e3160fe3d1710e8609b242fbe753b8b18867acf6f3d326dc95",
-    "llvm-tools-1.37.0-aarch64-unknown-linux-gnu": "fb7cea148816422466aee656d81b08f9cb819cff8c431574f08c281b58547413",
-    "llvm-tools-1.37.0-x86_64-apple-darwin": "b882607b0f181d3942eb00a13cb375d820d000ced456a0cfd626ad79f597f8ac",
-    "llvm-tools-1.37.0-x86_64-pc-windows-msvc": "804a1455879b72f9439e9f2d6469f328847ccb432f69b41ccbad2ecc0e124fb2",
-    "llvm-tools-1.37.0-x86_64-unknown-freebsd": "206bf31dc2851a27b697acd5ad978d2b0d1cfdf26e01b7798388030591fa7899",
-    "llvm-tools-1.37.0-x86_64-unknown-linux-gnu": "da54ade6c7e2776edab1b6f1216477168cadf30fe40e503cca8b4bce20d89bc6",
-    "llvm-tools-1.37.0-x86_64-unknown-linux-musl": "737f6f903340700c7953c46f3143418d90f8bc1f879cd940ce0bcc479109b7d4",
-    "llvm-tools-1.38.0-aarch64-unknown-linux-gnu": "dbbfdc0dd802feb94e8e0f0eb0dad2c2f3e6bf69bb58d371622c94e8c7e82e25",
-    "llvm-tools-1.38.0-x86_64-apple-darwin": "7a4f8502b93e6fc3a4d89ab94230a90c94778d17badcdde25ebb545f4e37a7c0",
-    "llvm-tools-1.38.0-x86_64-pc-windows-msvc": "da005a040ee70728c224eb23d1374420422ac64e2b4ba328ac6d7b5934389061",
-    "llvm-tools-1.38.0-x86_64-unknown-freebsd": "f4da25e84e31a78b6f761b3f597c98391bd6873298c7708dc886b2c72f56f874",
-    "llvm-tools-1.38.0-x86_64-unknown-linux-gnu": "0fff5bc69ebf49fec0372aa73f9b6757b8a6bb506f14f48d153e6f14de2fd19a",
-    "llvm-tools-1.38.0-x86_64-unknown-linux-musl": "5877d995125b6d17f25f23f9eaccb5775dc2bde5f3b7062fff8cad23221e80e8",
-    "llvm-tools-1.39.0-aarch64-unknown-linux-gnu": "9c7eae2e5770d20872f6012b273d2ca5dab09f97f497a0cc82ea5af8e2b08527",
-    "llvm-tools-1.39.0-x86_64-apple-darwin": "52c15480345a18d55a2141a9f440fe874a8686d3d94e4637b2c4884df7c88a43",
-    "llvm-tools-1.39.0-x86_64-pc-windows-msvc": "87b7cf10ebab53bb7fab625d603f80e35111afaeacd915df63c19ad68382f31f",
-    "llvm-tools-1.39.0-x86_64-unknown-freebsd": "f451ffb87b00a277264c5acf5267f8df61300089a9798607b4cdfebc88fabee1",
-    "llvm-tools-1.39.0-x86_64-unknown-linux-gnu": "0a87b543e3841d415887a4543587b783fce678a7097a774a56a2032cee842991",
-    "llvm-tools-1.39.0-x86_64-unknown-linux-musl": "da87e08670b7dad359f3d0b3f132d212713dcb21cf1c5e308acf257632de0075",
-    "llvm-tools-1.40.0-aarch64-unknown-linux-gnu": "caf36148d0f5a885cad05605d80cc2c805ce8456837b6dbb34b47420a4d52475",
-    "llvm-tools-1.40.0-x86_64-apple-darwin": "d4c4abb2a7b2800500ef4e0a46493c5340bb7b0be84d38897573281e93b8577f",
-    "llvm-tools-1.40.0-x86_64-pc-windows-msvc": "0fe4cfa0e4ce99e45c810b8301edcdfa694db75e291b497ce8c52ec5b89e4861",
-    "llvm-tools-1.40.0-x86_64-unknown-freebsd": "aa11c881fa728fa8df233c220fecd6b25cb27cbb673569cbd9a90865ae464d9f",
-    "llvm-tools-1.40.0-x86_64-unknown-linux-gnu": "40c5ad2c53802b8b722ebd5a06b9f51f32644d8a6d6fdc32aacc60a33bed5839",
-    "llvm-tools-1.40.0-x86_64-unknown-linux-musl": "8e98e884442ade699f951bdab603a012c683de5809cae6bcb25bdc81abc3c4db",
-    "llvm-tools-1.41.0-aarch64-unknown-linux-gnu": "279aedca8c3c12a0608de9a51fa38a33b910600e4f980487c1706cec29270c63",
-    "llvm-tools-1.41.0-x86_64-apple-darwin": "621676b4ae3d75662463876315a58bd188ceb4b22ff249ad033e0181fe30df74",
-    "llvm-tools-1.41.0-x86_64-pc-windows-msvc": "6d1b3a2a74497b0a4e9420d87a6fa462dc608a3b41d4dae9f164cf66c290a00d",
-    "llvm-tools-1.41.0-x86_64-unknown-freebsd": "311a056371edbad2194b5714f3e8d17e7a897f27b67bdbe2d827ed437d06d050",
-    "llvm-tools-1.41.0-x86_64-unknown-linux-gnu": "d2cfa10a162cd9b63c5b8eb3db49560532c11823bb15f836abc5e42cca1a1170",
-    "llvm-tools-1.41.0-x86_64-unknown-linux-musl": "dd176d66f6f04d2e1c0deeb11d07d5882937af6c72121cad4bc7e63bba3fa0ff",
-    "llvm-tools-1.42.0-aarch64-unknown-linux-gnu": "7601ef92b42a321fee08f6adce3ca0eb612ca8703fda1db63e30bd4952f7fcc9",
-    "llvm-tools-1.42.0-x86_64-apple-darwin": "c4c0319e8be687b104162ce3654249ed76040229a77d77016e32570fbfbd3439",
-    "llvm-tools-1.42.0-x86_64-pc-windows-msvc": "721b14d159d6df877991db62a0f5fcd11d8d9cd642d8f51311a2d2c99c0f9e43",
-    "llvm-tools-1.42.0-x86_64-unknown-freebsd": "4fc2bb1ab454b21750c78f9ce19d7138e4929a804770202319a3f457b1e5c2f9",
-    "llvm-tools-1.42.0-x86_64-unknown-linux-gnu": "d306ee9009eeab2062b813123628cc440f58c71c0e1d53afe1563f4eb1a5e0e4",
-    "llvm-tools-1.42.0-x86_64-unknown-linux-musl": "7fc21cc7f2a8879b052fed92fedff55df5afd528912c8405ec67640f663d716e",
-    "llvm-tools-1.43.0-aarch64-unknown-linux-gnu": "647dc36be8dc5130a703f6ba151bc79936503d0251481ba40bfacc5bfa251947",
-    "llvm-tools-1.43.0-x86_64-apple-darwin": "890bf12d80b72fc0c58966e1d229cfb24764eabe356762dcaf126afbd63fd47d",
-    "llvm-tools-1.43.0-x86_64-pc-windows-msvc": "e299dea627f89f6b14897d45f39dba3036298b2c94f35ba4dfea276996682977",
-    "llvm-tools-1.43.0-x86_64-unknown-freebsd": "6a64cc4b3dd0b8218b350b4fad36197edf2da33e5ab43c4670737e4d392ba586",
-    "llvm-tools-1.43.0-x86_64-unknown-linux-gnu": "4f62cab67e89d78d886cb03379d71f6722f8c5e5c069b3c243e334381c5948cf",
-    "llvm-tools-1.43.0-x86_64-unknown-linux-musl": "ea90e9540b5618698088171793dc571614d434571d6c81a80259a597d536a265",
-    "llvm-tools-1.44.0-aarch64-unknown-linux-gnu": "e25ee71a187d6c8969b17788fb678c9b358034ad2a2fb7557b755534eaf9cfa6",
-    "llvm-tools-1.44.0-x86_64-apple-darwin": "d684de7783ee15537f78231acacb9079f821c8c8b85b889e54c40b095ae6b0a1",
-    "llvm-tools-1.44.0-x86_64-pc-windows-msvc": "ac84fcc25d5d8d20592d6491576df7a72059fe9317889692badac2fc9028bd8a",
-    "llvm-tools-1.44.0-x86_64-unknown-freebsd": "3f4a17239b9dc9e84d98922ea4725f741249ba597ac1345b09c818b54b7a0765",
-    "llvm-tools-1.44.0-x86_64-unknown-linux-gnu": "1755b589718c652071e354c3629f41a9a90a84a3649078ed697e630ba19b3592",
-    "llvm-tools-1.44.0-x86_64-unknown-linux-musl": "c3abf2adba70a8cce16e4a6962b6868238858e54c9822cec64c5f981e43489b8",
-    "llvm-tools-1.45.0-aarch64-unknown-linux-gnu": "1432bf52b301e16a5a57398a7f59bcee43358913627c7caf7b1568cd8824c5c4",
-    "llvm-tools-1.45.0-x86_64-apple-darwin": "9c4e5488be910b8b5ded830ea4c8844090801d3f35e7d9cb1f272e3e7df90a0d",
-    "llvm-tools-1.45.0-x86_64-pc-windows-msvc": "5a2b5f49e04def6bc6bdb148412bf62ca7fd01d0e8ed61d07fe6716003425350",
-    "llvm-tools-1.45.0-x86_64-unknown-freebsd": "dbeaa09b90aab06a8450afaa9018a859a440be48d98e9437a7d827a138d3ae7a",
-    "llvm-tools-1.45.0-x86_64-unknown-linux-gnu": "54a2ac31ad53d3d346c571fa1d25b730b614a8214b5484c511f21f7dd0bdbd5f",
-    "llvm-tools-1.45.0-x86_64-unknown-linux-musl": "5e610db342edfb61ac702b36eebb4cfa1a4d2c0b89ca400b2ca89055167e07fc",
-    "llvm-tools-1.46.0-aarch64-unknown-linux-gnu": "1d8107ff0682d20c37a0d42f54fa1e2e96e70f7c4694fc71a84f7b32e3793247",
-    "llvm-tools-1.46.0-x86_64-apple-darwin": "1045f55a6e59326e0f5b46616e8c945f0cc04c4519f21aa095f87b3e35420422",
-    "llvm-tools-1.46.0-x86_64-pc-windows-msvc": "037719e7774bae1e3084949123a8a10d4d2c89134849333a53c7dcad00fe412e",
-    "llvm-tools-1.46.0-x86_64-unknown-freebsd": "55d9194cd9ac3f26f95f4f94db899c86b140753ef57aa2996dd8be528eaf8ae0",
-    "llvm-tools-1.46.0-x86_64-unknown-linux-gnu": "2a98e7290148575cdc6230610fca3ce68d1bd7b7dd105124f8a1673859ecc9ad",
-    "llvm-tools-1.46.0-x86_64-unknown-linux-musl": "431339bdd829224c0d3a3c835d65de95e52f042c1e0c3a286718055af4b2b977",
-    "llvm-tools-1.47.0-aarch64-unknown-linux-gnu": "6f9cc27ea4d33ef81be176392d169a2ca2ba6d3e6e8c037917133823cc4979c1",
-    "llvm-tools-1.47.0-x86_64-apple-darwin": "75a8381f7f521ad8afc8480e2bda27d3d3730b9ee154022deb26db3ca6216505",
-    "llvm-tools-1.47.0-x86_64-pc-windows-msvc": "e9a5d9db6f899904f094cc745a1b5cc47f7d7bbcb708217ad68933316e814880",
-    "llvm-tools-1.47.0-x86_64-unknown-freebsd": "47592da88536cf5c44085907c7e5d57bf695d5ac8add76d2c7d1c0518e6e05e6",
-    "llvm-tools-1.47.0-x86_64-unknown-linux-gnu": "a52c3cd18a6895c91a49d0a00f2cb4b12d64dd5b1ef6607fade1fed88fc36dac",
-    "llvm-tools-1.47.0-x86_64-unknown-linux-musl": "08ec337e44c1d83438d84e79dfacf6f123a8ed1af90c8130da784ded74966187",
-    "llvm-tools-1.48.0-aarch64-unknown-linux-gnu": "133e6b94d3c34d91ea9689c9288c66acf169d59877c0c924fc99b1fee283f4f4",
-    "llvm-tools-1.48.0-aarch64-unknown-linux-musl": "5a643eb72e06c4baa68ab38481b0e24ad40468e07dced9dfade04f469cce3b26",
-    "llvm-tools-1.48.0-x86_64-apple-darwin": "de0715d6cb0456da647750605ea1a3e3832278a4fa500d9c13bd148e7b278afe",
-    "llvm-tools-1.48.0-x86_64-pc-windows-msvc": "a0506c1619708e2bdf6bc198db5d130965613ec0609a9fe75556ce5effdf4f78",
-    "llvm-tools-1.48.0-x86_64-unknown-freebsd": "61a56f1436c7e4bfe68be160abb61989a8b4b4fef5e939764d488587484d6da3",
-    "llvm-tools-1.48.0-x86_64-unknown-linux-gnu": "a4932dafdc84a2c2f4f67a9aa207ce306c36a4ed8e682e6d79764d438ebd00b8",
-    "llvm-tools-1.48.0-x86_64-unknown-linux-musl": "904e1a0009819b626bd643cfe7f82d8de7e277e69aa0791de26fb3754d897046",
-    "llvm-tools-1.49.0-aarch64-apple-darwin": "78f666e9608c6b38f704447ef270170154c55dcda033e4fab00c42bebc3319a5",
-    "llvm-tools-1.49.0-aarch64-unknown-linux-gnu": "50228dd0c1ea9f483cac055fd1ff82f202427ef970266e904be01133c40f0c91",
-    "llvm-tools-1.49.0-aarch64-unknown-linux-musl": "0992328492832f96f4ee35661d8706e8e5f630bb92de117398f0b27556bc98cd",
-    "llvm-tools-1.49.0-x86_64-apple-darwin": "39c294fb87e6dc8c29975469a0566d4f8a47e50c1defe9f3dabbf1d598772bea",
-    "llvm-tools-1.49.0-x86_64-pc-windows-msvc": "3e57ff66c2a0091e3373e479fec699d3012e9249b7e0da36500fa0071308114f",
-    "llvm-tools-1.49.0-x86_64-unknown-freebsd": "c2b3c06bf4b2f6010f9927391c8e72f96642a528c486ec98f66c16066298e015",
-    "llvm-tools-1.49.0-x86_64-unknown-linux-gnu": "aecf6c322dc4064dcedf2315d443a69e099fc52e617711306fa1269cb180aa68",
-    "llvm-tools-1.49.0-x86_64-unknown-linux-musl": "c53b602056f48c38624942c1f6b6cc1a5a542cb56249a3a90c67355da531bd40",
-    "llvm-tools-1.50.0-aarch64-apple-darwin": "4a03b09dc15644fd5a10ac8aa1dc3ec32bc832f0c27bce4fa6128f18ac22a90d",
-    "llvm-tools-1.50.0-aarch64-unknown-linux-gnu": "25256ce02516667890abf82fa4d49a86f16dcea448d63c9a03782c0a3bbe05c1",
-    "llvm-tools-1.50.0-aarch64-unknown-linux-musl": "cfe980fe89486c78a5c88701e8ce6a9c7914030c703d2b3ee841b84c1ccdf31d",
-    "llvm-tools-1.50.0-x86_64-apple-darwin": "d8b018570e8ff163c4ab37a36ce16128b39c2ea55efd1be3caf14bdd85d03394",
-    "llvm-tools-1.50.0-x86_64-pc-windows-msvc": "728f7a656f27eb6361847d245d23b56b7109c7ef5f47117044e83aaf49fcc536",
-    "llvm-tools-1.50.0-x86_64-unknown-freebsd": "4300261729751c6a7353cc4a4bb3d6c448fcc24e90a82e3d626af037fb6aae4c",
-    "llvm-tools-1.50.0-x86_64-unknown-linux-gnu": "86871fb83afba38ba818286c20bc863798b64a7a403ecb0454535bf1a09df482",
-    "llvm-tools-1.50.0-x86_64-unknown-linux-musl": "98f2266ffbcf1d94e2d6961341ef6488ef3f49a81ae4c857c4b817cc9528535b",
-    "llvm-tools-1.51.0-aarch64-apple-darwin": "1a12dd5bd2c354a89737640ac105600f59fc038809ad4611b29eb0d225bd783d",
-    "llvm-tools-1.51.0-aarch64-unknown-linux-gnu": "5295ca2bbaa8d37942ed95f801107900d40f326f543edf4c80a1c2adf48fb077",
-    "llvm-tools-1.51.0-aarch64-unknown-linux-musl": "2dfbe582660bac4a674186a475a5a3d118aa2369dc70eb9d8e93cd13a66cb50f",
-    "llvm-tools-1.51.0-x86_64-apple-darwin": "1c52b39cae8fb17e64c311eb9ab66e475b6ae8190b35c6513344271b7e172d3e",
-    "llvm-tools-1.51.0-x86_64-pc-windows-msvc": "cb2dd2a21deb3228ce3e7e2495b95d34b5c985eae39126170d823ff1b585a240",
-    "llvm-tools-1.51.0-x86_64-unknown-freebsd": "a2f698841b8f860bf5a841f5f53dea8fd9df53c19c3b6d15cbe43a327696ffea",
-    "llvm-tools-1.51.0-x86_64-unknown-linux-gnu": "398a587c088ac159322bf47d1736409ab88d3a45eb9e09bfb7bacbbf20627e49",
-    "llvm-tools-1.51.0-x86_64-unknown-linux-musl": "0b7a9e46dd64fdef3ce22bd5a69d4599a17c120ae645fadadd7371b03f2dacd8",
-    "llvm-tools-1.52.0-aarch64-apple-darwin": "f3b3a9dbef7a00fe26a38d143585d3ca79b85c6dc6326c31ea3de178715d2456",
-    "llvm-tools-1.52.0-aarch64-unknown-linux-gnu": "9550b39d38ffdb32231fbc3893a362dc325448aa05b4197845d7fb799ec556e6",
-    "llvm-tools-1.52.0-aarch64-unknown-linux-musl": "7dd8f795ec2d9f2eeb67e98e08341ab46416bf8f307a8395d6c7d289f4f6a641",
-    "llvm-tools-1.52.0-x86_64-apple-darwin": "0160eca2c73cd54b47c226c6f0f6ae4841300bbf8384426bbfb03a814b30cf84",
-    "llvm-tools-1.52.0-x86_64-pc-windows-msvc": "baf0810ece6694ed431010a24d9c81386f150567b48f79fac952e411927d3058",
-    "llvm-tools-1.52.0-x86_64-unknown-freebsd": "cdb385cc036a9f354639050384584e64e6464a8ccfd422db17b3a2df82b88eb8",
-    "llvm-tools-1.52.0-x86_64-unknown-linux-gnu": "bd5056c50b92e48787d164d4d93db332c3f02e2913b3d86edabddfa248c3aeba",
-    "llvm-tools-1.52.0-x86_64-unknown-linux-musl": "2f5905d5b3198311d2b335ad59d6e14bde9e5eae201df5d723b8b07de37740eb",
-    "llvm-tools-1.52.1-aarch64-apple-darwin": "749d77f5877395081ccbdde25183a4934fa9f771191f1994ef67ab6b845b380f",
-    "llvm-tools-1.52.1-aarch64-unknown-linux-gnu": "94fad9186731f9428ec8a73165294810d63583a04798377298d1569ddf373503",
-    "llvm-tools-1.52.1-aarch64-unknown-linux-musl": "afd4fd18b981bda0a351bf5fff8f6cf76be877aa8840e5e5b159aaffa6979f69",
-    "llvm-tools-1.52.1-x86_64-apple-darwin": "ef5e0713fee477262bff9a8cb2212bd775050ea768a5ba50ceb33e13b58ede17",
-    "llvm-tools-1.52.1-x86_64-pc-windows-msvc": "6823c114ae05ebf515401e44d1ca6fb8d108cbaa495ace60c5fdbd7e81f2b32f",
-    "llvm-tools-1.52.1-x86_64-unknown-freebsd": "470789210cd51acab85662ea5d80f3275d0766f98f59399b6aa3741bde86e773",
-    "llvm-tools-1.52.1-x86_64-unknown-linux-gnu": "db70724d4010273644c4e0ef4739299940b47e307f3dbee094050703147b60f8",
-    "llvm-tools-1.52.1-x86_64-unknown-linux-musl": "ad0755ed04d3e17d11e99aab793a5752e6ef0943a92822874277a13f5b91373f",
-    "llvm-tools-1.53.0-aarch64-apple-darwin": "cd700c4ae2c6fe2a568f477a9db7d7c9cd1079456cd777aa04954fbb3bc64e37",
-    "llvm-tools-1.53.0-aarch64-unknown-linux-gnu": "916307648b13cd403e5d89e26dc0057a3d6517033b04199b905af7b216ff191b",
-    "llvm-tools-1.53.0-aarch64-unknown-linux-musl": "f19e5396e69a12c854294c61c2ba647e8d06a67750b4bc741c1ec8b44e27ad76",
-    "llvm-tools-1.53.0-x86_64-apple-darwin": "5a693b933e6755fc42983912c0a9197107b61c5ded051526aa0eed60cbb038cf",
-    "llvm-tools-1.53.0-x86_64-pc-windows-msvc": "8d2800c3460935386c0ea368460d0b4cadb152403d3125b9616a1b4fa856cfc4",
-    "llvm-tools-1.53.0-x86_64-unknown-freebsd": "221f677502c4d648e5578cf75224fb017dc4df486bbb15408100f6dc63fb72e9",
-    "llvm-tools-1.53.0-x86_64-unknown-linux-gnu": "4aa6e3c9ef91efc082a6741013fc7886dc669b1532c0c3b23f922e4307200800",
-    "llvm-tools-1.53.0-x86_64-unknown-linux-musl": "b5054bcd14e5a5361f29fe5efa970ab8340c75feebc3c6b7719ee4cf1cf1027a",
-    "llvm-tools-1.54.0-aarch64-apple-darwin": "61bb98566e77f998f59c2399c5db3b488cd88e4a7bcce74061bbbb6de5c85c62",
-    "llvm-tools-1.54.0-aarch64-unknown-linux-gnu": "95dd016daee815e6511ed09becba913e5aa1fc6b9ef42bc27d1a509f660dec99",
-    "llvm-tools-1.54.0-aarch64-unknown-linux-musl": "8cac2dd2d1ef582c77b37b6810122426369028351a66a355c38ff72efb8f6ec4",
-    "llvm-tools-1.54.0-x86_64-apple-darwin": "a287d049bf7beb3a3cddf62974e0450d21bb09da72ab453222dffc3f5ef72fef",
-    "llvm-tools-1.54.0-x86_64-pc-windows-msvc": "e1437993d0088f93871e2563c570fb62aec6109087227df7da8779ef226abbc3",
-    "llvm-tools-1.54.0-x86_64-unknown-freebsd": "024fcaabada32629381b5d1ec856d595eacf5cf506c43619d2ab454aeac7da4c",
-    "llvm-tools-1.54.0-x86_64-unknown-linux-gnu": "aa4000bccc5e463c9cc3aecb6b400813a0f122b5f14a747710f23b838b4fbcc8",
-    "llvm-tools-1.54.0-x86_64-unknown-linux-musl": "b0e2a74c6e1fb0c9fa888887996cb168c0d119ee4596736a4785b1200b79021b",
-    "llvm-tools-1.55.0-aarch64-apple-darwin": "00a0a90cd743480a192d3f1c905d57b98986d75c88fc738effcbc50c43b0ab85",
-    "llvm-tools-1.55.0-aarch64-unknown-linux-gnu": "259a183333a4f19eded8a2b6fa4382b7f36a9a23605d0f0a7b59a28d794c77d1",
-    "llvm-tools-1.55.0-aarch64-unknown-linux-musl": "a6a6756bb3091d15b772e57189c4279d17e218193b7d795b307effb88d269ef5",
-    "llvm-tools-1.55.0-x86_64-apple-darwin": "fce7354b071f2da56a100f89846e0c5bb3848f2e85e8583102f1d8b409214a95",
-    "llvm-tools-1.55.0-x86_64-pc-windows-msvc": "03307e359512652648b296cecf1e446befbeaf4a3a73db5cec1e6dfbc03f6376",
-    "llvm-tools-1.55.0-x86_64-unknown-freebsd": "f186caf30fadf738275f4daf077815445b4c3496cc7d3e85fbf53b5f8f57eb21",
-    "llvm-tools-1.55.0-x86_64-unknown-linux-gnu": "ebad576075c4dd039444ca7335ff244d6c0c566a7ee1532ac80d36a2de1217a5",
-    "llvm-tools-1.55.0-x86_64-unknown-linux-musl": "28de296a08d173bf5bad236935ccc547c8eb741fb91900cb10499e80e2472ec5",
-    "llvm-tools-1.56.0-aarch64-apple-darwin": "4ad514255a87b0aba52bf995cb999bc7b34d42419b675fd757664d6682a45210",
-    "llvm-tools-1.56.0-aarch64-unknown-linux-gnu": "9518804888281bd1b0c8d8467d7c3e312342649ce3660248728a8d4faa193564",
-    "llvm-tools-1.56.0-aarch64-unknown-linux-musl": "095acf10efb3a4561758da9f9374488ab73c88a2f78b6d1ee97147ac8f039fe9",
-    "llvm-tools-1.56.0-x86_64-apple-darwin": "e40341be6619513f50bf89d445e3b30696853f3553bbe98fa9aa3527cd7c49cd",
-    "llvm-tools-1.56.0-x86_64-pc-windows-msvc": "838bf630fdaa404f9899a92e58c1b5646f4f4b6d54729e4f1c3aade5585a74f7",
-    "llvm-tools-1.56.0-x86_64-unknown-freebsd": "05225a9aeb481757b470ee604a129bfc7707d85dc487fffcc2585f4124e012d9",
-    "llvm-tools-1.56.0-x86_64-unknown-linux-gnu": "ac54b5c1bae0955945cd779291bc443b3e6d52f217ce1078a3505bae1c0e2ff2",
-    "llvm-tools-1.56.0-x86_64-unknown-linux-musl": "9512db06f3090028b0ba26aeea21c3a80e6676177c92cfa1e60d13acd6871f0e",
-    "llvm-tools-1.56.1-aarch64-apple-darwin": "8feb4429f37d2c59a97a657052a8518492ea3e0c43b37af1e44407bb04d5fd8c",
-    "llvm-tools-1.56.1-aarch64-unknown-linux-gnu": "3c831ad4ee247ae29a5acecba1609d70b02777ba8181d40a945d2efedebc8126",
-    "llvm-tools-1.56.1-aarch64-unknown-linux-musl": "bf62fb69c222c41c83cb5e647dbce207519724c92de8e05015e7fe62396ad33e",
-    "llvm-tools-1.56.1-x86_64-apple-darwin": "75dc2fb8105e33e3f86753eb2f97615f62bc3433591c31f63fa7c4c12b643321",
-    "llvm-tools-1.56.1-x86_64-pc-windows-msvc": "34ff6e95ce6397b954691f5ae59068bf33f8ecf71fe8aa8b1ac2db6eaff81720",
-    "llvm-tools-1.56.1-x86_64-unknown-freebsd": "b8d281cdae768bdd87409e69c916612e1fed29334d861fd07b0d44dd8b6d086d",
-    "llvm-tools-1.56.1-x86_64-unknown-linux-gnu": "61e322fc405540fae66790a0317d3fe4bb500da20879ef53c14eb32e93590ee6",
-    "llvm-tools-1.56.1-x86_64-unknown-linux-musl": "880e2eae8998ee390c3cd325b1806adb627c7491a252af99fc87f43380e1f11a",
-    "llvm-tools-1.57.0-aarch64-apple-darwin": "712e59804a2dc7c0f0a91680c3ccd7463bfe75784e508b4a47b7eebff258867f",
-    "llvm-tools-1.57.0-aarch64-unknown-linux-gnu": "340fcbf4555cc56232225284b500679f33601689bde3122cd54af7648c9d0ce1",
-    "llvm-tools-1.57.0-aarch64-unknown-linux-musl": "5de4f546695db024c74ad8c4ffbd03f549ce6476bdad8d40bd8fce59e4c3d4ce",
-    "llvm-tools-1.57.0-x86_64-apple-darwin": "4ee2065bf9ca04894c6ea700f5fe13f222843dc34b1bf92fc94f37c03e47f6b3",
-    "llvm-tools-1.57.0-x86_64-pc-windows-msvc": "dd042fd62e75ff14c1638b9a63072eac42530d29deca2c0277964091f974d3b7",
-    "llvm-tools-1.57.0-x86_64-unknown-freebsd": "0d23df22a31816f5545b5af083dde75a74060889b42ebc8231795bd478f803ce",
-    "llvm-tools-1.57.0-x86_64-unknown-linux-gnu": "bb2f45e0efe77886da2b8b9d3519b6a2929d1654258158d847996867d5b4ab40",
-    "llvm-tools-1.57.0-x86_64-unknown-linux-musl": "7c53a882379938b319c859f41d1f5569b66f1b4f03e745dec2bb3dc8eb11f2b4",
-    "llvm-tools-1.58.0-aarch64-apple-darwin": "55b8ac5d42e3910d7f77f2022a964ec54e4c8082cc6624070d8664c4449b5161",
-    "llvm-tools-1.58.0-aarch64-unknown-linux-gnu": "765d797cc11d746616d71015a52e564220e4e10b8f10efa2fd5fb74ba308ce30",
-    "llvm-tools-1.58.0-aarch64-unknown-linux-musl": "e4b221ea279f698eab0bfebfd2dabca8e2b02c0423c48fb5d0ef281920771b99",
-    "llvm-tools-1.58.0-x86_64-apple-darwin": "7e3f807c85d8b6ff00747d20e88c115bb56a52ac1964593b5ff6bff84bf05647",
-    "llvm-tools-1.58.0-x86_64-pc-windows-msvc": "11aa6d93678766ea8a4625146de43290418f3b9076a69bb183b12613fafc7e5a",
-    "llvm-tools-1.58.0-x86_64-unknown-freebsd": "5950fe6c5a9c27ce0e85d07fd54cfa0ae0687a797e4cc957e91d2deb07451ad1",
-    "llvm-tools-1.58.0-x86_64-unknown-linux-gnu": "26cee659335a999d1c9dd47ac2bd2a8c94c2d42f7cda27b96b419f0c0c785bc7",
-    "llvm-tools-1.58.0-x86_64-unknown-linux-musl": "b20c27a6cfef891f4ac9bfcd06c38dd17f9f4021a7876599092da84c318b8b6b",
-    "llvm-tools-1.58.1-aarch64-apple-darwin": "c43a9166c2cbcc1858afe2de696ee3e6233316603e9f5963bedaaf200a531d29",
-    "llvm-tools-1.58.1-aarch64-unknown-linux-gnu": "bec9207417c9bafa311119565e2a38f36d3aca5f642b8f0e19eb6fa0898fca5c",
-    "llvm-tools-1.58.1-aarch64-unknown-linux-musl": "0faff43fbfc9806355861b906fa0a32dca786843874fcaa7cf911f3899fe9313",
-    "llvm-tools-1.58.1-x86_64-apple-darwin": "0810cbbe2c590ed03128075aaccc77fffb16ceb41bb92490dca2c018117040da",
-    "llvm-tools-1.58.1-x86_64-pc-windows-msvc": "8c5887ebb551ba392cbe915474b4c2494c4b36ece102683240cf4150c5dc1718",
-    "llvm-tools-1.58.1-x86_64-unknown-freebsd": "b33b2ffa80bb8e3f116b15532acafe56bfb799973ccd97fbe35cb5c8eaeeb8bb",
-    "llvm-tools-1.58.1-x86_64-unknown-linux-gnu": "3d003e6b2a38a6364667ce033ba3fe8029320acbb5b34f9bb103001ffcfef044",
-    "llvm-tools-1.58.1-x86_64-unknown-linux-musl": "a3206ec957f0e8728ad79203f700e4a7d64acccf8b83d11209ac5e459eadab2d",
-    "llvm-tools-1.59.0-aarch64-apple-darwin": "474ba73365de82fa00940887d945931dde56efeb28789c036ab62b90c2e528d1",
-    "llvm-tools-1.59.0-aarch64-unknown-linux-gnu": "e3bc96a602e8cb7768f279c020a3830417e767095dc784b1549510de42c37f5b",
-    "llvm-tools-1.59.0-aarch64-unknown-linux-musl": "5b28d1c6a73b99346dc9f29b4fb0b475814d8bcc3fd9661a2b53bedf606f1bc3",
-    "llvm-tools-1.59.0-x86_64-apple-darwin": "988593882b294423fbd88895b88887da8b47bf28946ae78263b0169a2b2b4597",
-    "llvm-tools-1.59.0-x86_64-pc-windows-msvc": "45f393a71799392ff73cfb17ee071b7304b304c8375db6cdd86f3025b4ba56b0",
-    "llvm-tools-1.59.0-x86_64-unknown-freebsd": "dbb0a7ad6c0e7a87e55a8e3fad05c1ed9ee5944e41e841267d0dfbb748060135",
-    "llvm-tools-1.59.0-x86_64-unknown-linux-gnu": "3bea89788f101b7ea1aca5dad94c3d2bd5f5133999ba78cea878ecad00c8c602",
-    "llvm-tools-1.59.0-x86_64-unknown-linux-musl": "db090aa8093efe163f54e1b211846b9061f835ba21e55cca2e37a5af7ad40e80",
-    "rust-1.26.0-aarch64-unknown-linux-gnu": "e12dc84bdb569cdb382268a5fe6ae6a8e2e53810cb890ec3a7133c20ba8451ac",
-    "rust-1.26.0-x86_64-apple-darwin": "38708803c3096b8f101d1919ee2d7e723b0adf1bc1bb986b060973b57d8c7c28",
-    "rust-1.26.0-x86_64-pc-windows-msvc": "20631bf942242d4be82363030839851bf18a2199b74a661bdc334f830e9e1d5a",
-    "rust-1.26.0-x86_64-unknown-freebsd": "a03cbe097670042c90d18654fbc852c9d473261d61c03d0f745bbaee759780ed",
-    "rust-1.26.0-x86_64-unknown-linux-gnu": "13691d7782577fc9f110924b26603ade1990de0b691a3ce2dc324b4a72a64a68",
-    "rust-1.26.1-aarch64-unknown-linux-gnu": "d4a369053c2dfd5f457de6853557dab563944579fa4bb55bc919bacf259bff6d",
-    "rust-1.26.1-x86_64-apple-darwin": "ebf898b9fa7e2aafc53682a41f18af5ca6660ebe82dd78f28cd9799fe4dc189a",
-    "rust-1.26.1-x86_64-pc-windows-msvc": "56c2398de358094606afba419c1e1a9e499cbe6f894315e99cfebda9f765c52f",
-    "rust-1.26.1-x86_64-unknown-freebsd": "910128f60c680e175ae93722272f491c6835f27652f9f3fe415dc0d9c482e204",
-    "rust-1.26.1-x86_64-unknown-linux-gnu": "b7e964bace1286696d511c287b945f3ece476ba77a231f0c31f1867dfa5080e0",
-    "rust-1.26.2-aarch64-unknown-linux-gnu": "3dfad0dc9c795f7ee54c2099c9b7edf06b942adbbf02e9ed9e5d4b5e3f1f3759",
-    "rust-1.26.2-x86_64-apple-darwin": "f193705d4c0572a358670dbacbf0ffadcd04b3989728b442f4680fa1e065fa72",
-    "rust-1.26.2-x86_64-pc-windows-msvc": "c4195cc0541db7cb08d503cc38917f6f40f53826001e86d613a48bd7387ac6a0",
-    "rust-1.26.2-x86_64-unknown-freebsd": "0ad985cf36b3946f086fd3c3c6eb97b0c94b24285147a04da22c00d4d522727a",
-    "rust-1.26.2-x86_64-unknown-linux-gnu": "d2b4fb0c544874a73c463993bde122f031c34897bb1eeb653d2ba2b336db83e6",
-    "rust-1.27.0-aarch64-unknown-linux-gnu": "e74ebc33dc3fc19e501a677a87b619746efdba2901949a0319176352f556673a",
-    "rust-1.27.0-x86_64-apple-darwin": "a1d48190992e01aac1a181bce490c80cb2c1421724b4ff0e2fb7e224a958ce0f",
-    "rust-1.27.0-x86_64-pc-windows-msvc": "795585a4f49dfcfd719dd6678713d0e84979b265ae9265dcb26b45c67b3a883a",
-    "rust-1.27.0-x86_64-unknown-freebsd": "f0754434f76f261ecdfd7ea3645b251b0188e263c0c7a7466aafac1b034d20ec",
-    "rust-1.27.0-x86_64-unknown-linux-gnu": "235ad78e220b10a2d0267aea1e2c0f19ef5eaaff53ad6ff8b12c1d4370dec9a3",
-    "rust-1.27.1-aarch64-unknown-linux-gnu": "d1146b240e6f628224c3a67e3aae2a57e6c25d544115e5ece9ce91861ec92b3a",
-    "rust-1.27.1-x86_64-apple-darwin": "475be237962d6aef1038a2faada26fda1e0eaea5d71d6950229a027a9c2bfe08",
-    "rust-1.27.1-x86_64-pc-windows-msvc": "24fb59a42277487ab1aaf8ac8b7a988843ae851ffe4a3386d9339e99e42d08d0",
-    "rust-1.27.1-x86_64-unknown-freebsd": "739d38036c9f08c13bc7425cc5cccd3dd37860fa6e9dfc7bcd9081c8d3c5ccdd",
-    "rust-1.27.1-x86_64-unknown-linux-gnu": "435778a837af764da2a7a7fb4d386b7b78516c7dfc732d892858e9a8a539989b",
-    "rust-1.27.2-aarch64-unknown-linux-gnu": "cf84da70269c0e50bb3cc3d248bae1ffcd70ee69dc5a4e3513b54fefc6685fb4",
-    "rust-1.27.2-x86_64-apple-darwin": "30c5cc58759caa4efdf2ea7d8438633139c98bee3408beb29ceb26985f3f5f70",
-    "rust-1.27.2-x86_64-pc-windows-msvc": "be1cccbd4cc00d473cb19fee4402d0ffde3b1e3ca3701926d47590878bc88508",
-    "rust-1.27.2-x86_64-unknown-freebsd": "b114c5eebc120b360d4d3c4360421ff181cc47bb311e161d3af6971b6d3e6244",
-    "rust-1.27.2-x86_64-unknown-linux-gnu": "5028a18e913ef3eb53e8d8119d2cc0594442725e055a9361012f8e26f754f2bf",
-    "rust-1.28.0-aarch64-unknown-linux-gnu": "9b6fbcee73070332c811c0ddff399fa31965bec62ef258656c0c90354f6231c1",
-    "rust-1.28.0-x86_64-apple-darwin": "5d7a70ed4701fe9410041c1eea025c95cad97e5b3d8acc46426f9ac4f9f02393",
-    "rust-1.28.0-x86_64-pc-windows-msvc": "5990e79259967a6a176aa5e4c55c6395f0c9262eed61ea858cfb909bac477542",
-    "rust-1.28.0-x86_64-unknown-freebsd": "cac701973239cbec802780855b172a3cc85ce15602e72873fe966d9d7d807e07",
-    "rust-1.28.0-x86_64-unknown-linux-gnu": "2a1390340db1d24a9498036884e6b2748e9b4b057fc5219694e298bdaa37b810",
-    "rust-1.29.0-aarch64-unknown-linux-gnu": "0ed3be0fd9f847afeb4e587fff61f6769ea61b53719d3ea999326284e8975b36",
-    "rust-1.29.0-x86_64-apple-darwin": "28a0473637585742f6d80ccd8afd88b6b400e65d623c33cb892412759444da93",
-    "rust-1.29.0-x86_64-pc-windows-msvc": "64f8c85540520c82d579d7eac5e2a524b42a6083cc46c7e80181512651a66fef",
-    "rust-1.29.0-x86_64-unknown-freebsd": "3500b1683849cbe526bb79f460147aa387b79a4f9a6a4760e276f73ddbffafd5",
-    "rust-1.29.0-x86_64-unknown-linux-gnu": "09f99986c17b1b6b1bfbc9dd8785e0e4693007c5feb67915395d115c1a3aea9d",
-    "rust-1.29.1-aarch64-unknown-linux-gnu": "2685224f67b2ef951e0e8b48829f786cbfed95e19448ba292ac33af719843dbe",
-    "rust-1.29.1-x86_64-apple-darwin": "07b07fbd6fab2390e19550beb8008745a8626cc5e97b72dc659061c1c3b3d008",
-    "rust-1.29.1-x86_64-pc-windows-msvc": "ec15b45be27b4406122518b2949f6186f0d9d422f23a946ab4de43716cc8e492",
-    "rust-1.29.1-x86_64-unknown-freebsd": "4055a9e9990f83f6c0d4f2040b2704edb8dbdaf82933f8598ab4ee31c541bbb9",
-    "rust-1.29.1-x86_64-unknown-linux-gnu": "b36998aea6d58525f25d89f1813b6bfd4cad6ff467e27bd11e761a20dde43745",
-    "rust-1.29.2-aarch64-unknown-linux-gnu": "e11461015ca7106ef8ebf00859842bf4be518ee170226cb8eedaaa666946509f",
-    "rust-1.29.2-x86_64-apple-darwin": "63f54e3013406b39fcb5b84bcf5e8ce85860d0b97a1e156700e467bf5fb5d5f2",
-    "rust-1.29.2-x86_64-pc-windows-msvc": "7813396fb99021e9a8bccb2fc7e71b1b730d5f3aebbb09ffcc2ecb838a1073b4",
-    "rust-1.29.2-x86_64-unknown-freebsd": "2e209d505c730df6e68575424eec03ed924e12114ad60595602cb2513c6a382a",
-    "rust-1.29.2-x86_64-unknown-linux-gnu": "e9809825c546969a9609ff94b2793c9107d7d9bed67d557ed9969e673137e8d8",
-    "rust-1.30.0-aarch64-unknown-linux-gnu": "9690c7c50eba5a8461184ee4138b4c284bad31ccc4aa1f2ddeec58b253e6363e",
-    "rust-1.30.0-x86_64-apple-darwin": "07008d90932712282bc599f1e9a226e97879c758dc1f935e6e2675e45694cc1b",
-    "rust-1.30.0-x86_64-pc-windows-msvc": "960ca17c0c62ee250647c20b617e75912badb67ca8ade08c3224410a7c320ade",
-    "rust-1.30.0-x86_64-unknown-freebsd": "b4e5d00b318d56edb7ba9182af4210fca9d7f44b64bc1380456ff3c17584af52",
-    "rust-1.30.0-x86_64-unknown-linux-gnu": "f620e3125cc505c842150bd873c0603432b6cee984cdae8b226cf92c8aa1a80f",
-    "rust-1.30.1-aarch64-unknown-linux-gnu": "6d87d81561285abd6c1987e07b60b2d723936f037c4b46eedcc12e8566fd3874",
-    "rust-1.30.1-x86_64-apple-darwin": "3ba1704a7defe3d9a6f0c1f68792c084da83bcba85e936d597bac0c019914b94",
-    "rust-1.30.1-x86_64-pc-windows-msvc": "b0110a5ad461532b2cce59bc04346af739b4660e7241f92dde6442a11a5391c2",
-    "rust-1.30.1-x86_64-unknown-freebsd": "480db9003f8e8c4ad12f2868af2c1489a05b18a8dcc62985c52310a7a15201ce",
-    "rust-1.30.1-x86_64-unknown-linux-gnu": "a01a493ed8946fc1c15f63e74fc53299b26ebf705938b4d04a388a746dfdbf9e",
-    "rust-1.31.0-aarch64-unknown-linux-gnu": "4e68c70aba58004d9e86c2b4463e88466affee51242349a038b456cf6f4be5c9",
-    "rust-1.31.0-x86_64-apple-darwin": "5d4035e3cecb7df13e728bcff125b52b43b126e91f8311c66b143f353362606f",
-    "rust-1.31.0-x86_64-pc-windows-msvc": "9288248f1821ab53557cbc5728ade7d221b1670547b0c0ec35099e0b2993dcf4",
-    "rust-1.31.0-x86_64-unknown-freebsd": "936ca1503ab1f18d9a4a1cc27fbc655f2c532ba819e1109bb03f5c52c5fb4fdd",
-    "rust-1.31.0-x86_64-unknown-linux-gnu": "c8a2016109ffdc12a488660edc5f30c1643729efc15abe311ebb187437e506bf",
-    "rust-1.31.1-aarch64-unknown-linux-gnu": "29a7c6eb536fefd0ca459e48dfaea006aa8bff8a87aa82a9b7d483487033632a",
-    "rust-1.31.1-x86_64-apple-darwin": "8398b1b303bdf0e7605d08b87070a514a4f588797c6fb3593718cb9cec233ad6",
-    "rust-1.31.1-x86_64-pc-windows-msvc": "4d2aa25c9d79dca5aba67b7b1df1c1f0ad40fcfb25a4c1d364fd64dd17a63cf3",
-    "rust-1.31.1-x86_64-unknown-freebsd": "5cbb465a0843b31da217c51c4f9ebbb2508aa2ece41e9b98303101e12571de42",
-    "rust-1.31.1-x86_64-unknown-linux-gnu": "a64685535d0c457f49a8712a096a5c21564cd66fd2f7da739487f028192ebe3c",
-    "rust-1.32.0-aarch64-unknown-linux-gnu": "60def40961728212da4b3a9767d5a2ddb748400e150a5f8a6d5aa0e1b8ba1cee",
-    "rust-1.32.0-x86_64-apple-darwin": "f0dfba507192f9b5c330b5984ba71d57d434475f3d62bd44a39201e36fa76304",
-    "rust-1.32.0-x86_64-pc-windows-msvc": "51b0b64cc843d6e443bf19f89b61addb532ea61e02777c7e80a185a9a263776b",
-    "rust-1.32.0-x86_64-unknown-freebsd": "20d062493d01f1816014fe9dbe883bda06f1828a6ddbfb7ee5e4f1df20eb1c3a",
-    "rust-1.32.0-x86_64-unknown-linux-gnu": "e024698320d76b74daf0e6e71be3681a1e7923122e3ebd03673fcac3ecc23810",
-    "rust-1.33.0-aarch64-unknown-linux-gnu": "a308044e4076b62f637313ea803fa0a8f340b0f1b53136856f2c43afcabe5387",
-    "rust-1.33.0-x86_64-apple-darwin": "864e7c074a0b88e38883c87c169513d072300bb52e1d320a067bd34cf14f66bd",
-    "rust-1.33.0-x86_64-pc-windows-msvc": "b477be7a27799397cf90f09ef5efe21b1af02f48ec9bc1be3306ad298aaf8841",
-    "rust-1.33.0-x86_64-unknown-freebsd": "31ab015c1807a7c231ee74b4fb367f3fa43551d6c49cd2f7b63541f1fef0cc72",
-    "rust-1.33.0-x86_64-unknown-linux-gnu": "6623168b9ee9de79deb0d9274c577d741ea92003768660aca184e04fe774393f",
-    "rust-1.34.0-aarch64-unknown-linux-gnu": "370c3a8fb9a69df36d645a95e622fb59ac5b513baecddde706cedaf20defa269",
-    "rust-1.34.0-x86_64-apple-darwin": "e6bea8d865cc7341c17fa3b8f25f7989e6b04f53e9da24878addc524f3a32664",
-    "rust-1.34.0-x86_64-pc-windows-msvc": "471325ceb9492239f7bb399cb88df230791966c0f76f01020aa9d2868bafcfb5",
-    "rust-1.34.0-x86_64-unknown-freebsd": "bc9048312bee935ae1e7417e2f6840ea76fe370752915ca605ec7dc5b606dba9",
-    "rust-1.34.0-x86_64-unknown-linux-gnu": "170647ed41b497dc937a6b2556700210bc4be187b1735029ef9ccf52e2cb5ab8",
-    "rust-1.35.0-aarch64-unknown-linux-gnu": "31e6da56e67838fd2874211ae896a433badf67c13a7b68481f1d5f7dedcc5952",
-    "rust-1.35.0-x86_64-apple-darwin": "ac14b1c7dc330dcb53d8641d74ebf9b32aa8b03b9d650bcb9258030d8b10dbd6",
-    "rust-1.35.0-x86_64-pc-windows-msvc": "4f8935cea6b68c447b5fcb5974e0df3fefc77d15ab4f7d535779f06c3e4adc84",
-    "rust-1.35.0-x86_64-unknown-freebsd": "a6a3c7983a880d8e9bf475735b725c47de68831abc22da980e44a3aca5c5bd89",
-    "rust-1.35.0-x86_64-unknown-linux-gnu": "cf600e2273644d8629ed57559c70ca8db4023fd0156346facca9ab3ad3e8f86c",
-    "rust-1.35.0-x86_64-unknown-linux-musl": "3704219a4d16e4e9df22051877274c7b246d12658b447a85efa0b16037e98093",
-    "rust-1.36.0-aarch64-unknown-linux-gnu": "db78c24d93756f9fe232f081dbc4a46d38f8eec98353a9e78b9b164f9628042d",
-    "rust-1.36.0-x86_64-apple-darwin": "91f151ec7e24f5b0645948d439fc25172ec4012f0584dd16c3fb1acb709aa325",
-    "rust-1.36.0-x86_64-pc-windows-msvc": "c7c9f7f996d195f464b84eaf0b6a068b41d1480e088b12e5134f85a5a144bd30",
-    "rust-1.36.0-x86_64-unknown-freebsd": "eeeb1e9d0d7823c55f00f434789696e7249f465ba5966a5ab479040e3912c0e7",
-    "rust-1.36.0-x86_64-unknown-linux-gnu": "15e592ec52f14a0586dcebc87a957e472c4544e07359314f6354e2b8bd284c55",
-    "rust-1.36.0-x86_64-unknown-linux-musl": "74931a19a4854642cd1593a3bdcf8a832ab5b134a3cfacea9003f9ea387ca88d",
-    "rust-1.37.0-aarch64-unknown-linux-gnu": "263ef98fa3a6b2911b56f89c06615cdebf6ef676eb9b2493ad1539602f79b6ba",
-    "rust-1.37.0-x86_64-apple-darwin": "b2310c97ffb964f253c4088c8d29865f876a49da2a45305493af5b5c7a3ca73d",
-    "rust-1.37.0-x86_64-pc-windows-msvc": "4e42652e7bf7ef13b7fdf8c64d0adf4e18c6a765e482e4c62a4dded36d4d08e1",
-    "rust-1.37.0-x86_64-unknown-freebsd": "58a794fa9da9c14cefda55e7d4d13276517265a05a49f3a048033aee8870388f",
-    "rust-1.37.0-x86_64-unknown-linux-gnu": "cb573229bfd32928177c3835fdeb62d52da64806b844bc1095c6225b0665a1cb",
-    "rust-1.37.0-x86_64-unknown-linux-musl": "d97da4f1c1f89142b6885b006f8686c4035d25e95cfb988f961ce844e5b80dbf",
-    "rust-1.38.0-aarch64-unknown-linux-gnu": "06afd6d525326cea95c3aa658aaa8542eab26f44235565bb16913ac9d12b7bda",
-    "rust-1.38.0-x86_64-apple-darwin": "bd301b78ddcd5d4553962b115e1dca5436dd3755ed323f86f4485769286a8a5a",
-    "rust-1.38.0-x86_64-pc-windows-msvc": "99e2e22084a7c6a114f5353800677e1f7eb4b8cecf1b8841e21ac9579fe8da8c",
-    "rust-1.38.0-x86_64-unknown-freebsd": "a765b1f01a387b15b576b67c77e02609a6d9a6769584742f66f0cac1944c0f7f",
-    "rust-1.38.0-x86_64-unknown-linux-gnu": "adda26b3f0609dbfbdc2019da4a20101879b9db2134fae322a4e863a069ec221",
-    "rust-1.38.0-x86_64-unknown-linux-musl": "14f064fbd34b332866d96db12329ddd6d40525d69d7b8532d3d5387da1217e79",
-    "rust-1.39.0-aarch64-unknown-linux-gnu": "e27dc8112fe577012bd88f30e7c92dffd8c796478ce386c49465c03b6db8209f",
-    "rust-1.39.0-x86_64-apple-darwin": "3736d49c5e9592844e1a5d5452883aeaf8f1e25d671c1bc8f01e81c1766603b5",
-    "rust-1.39.0-x86_64-pc-windows-msvc": "3c96b221af3343c04bf81e621a0b97a2452ae1803ecc2841a162690d8ebfe46f",
-    "rust-1.39.0-x86_64-unknown-freebsd": "9cb25742e727bab0da5feb957ef61f7ffc836b4d5d0e6cabfdf28fb68caf5fdd",
-    "rust-1.39.0-x86_64-unknown-linux-gnu": "b10a73e5ba90034fe51f0f02cb78f297ed3880deb7d3738aa09dc5a4d9704a25",
-    "rust-1.39.0-x86_64-unknown-linux-musl": "f6610742ad223cdd9420707454e4814baf14ab79d73dc033ef190eed28e05cbc",
-    "rust-1.40.0-aarch64-unknown-linux-gnu": "639271f59766d291ebdade6050e7d05d61cb5c822a3ef9a1e2ab185fed68d729",
-    "rust-1.40.0-x86_64-apple-darwin": "749ca5e0b94550369cc998416b8854c13157f5d11d35e9b3276064b6766bcb83",
-    "rust-1.40.0-x86_64-pc-windows-msvc": "64d98af9b9114a3aaea096ba74c43cad75a2502fb682e941b4701f5d2a2b9272",
-    "rust-1.40.0-x86_64-unknown-freebsd": "d1a58e9f743f4a55513f74e41c90ab7b291413ce46336c138762fd9aa6605b32",
-    "rust-1.40.0-x86_64-unknown-linux-gnu": "fc91f8b4bd18314e83a617f2389189fc7959146b7177b773370d62592d4b07d0",
-    "rust-1.40.0-x86_64-unknown-linux-musl": "4fbc6a60c31d89d922cb8c3630a92d7d959a8ec8fa48b51bed9eb67eb0d30b33",
-    "rust-1.41.0-aarch64-unknown-linux-gnu": "79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27",
-    "rust-1.41.0-x86_64-apple-darwin": "b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a",
-    "rust-1.41.0-x86_64-pc-windows-msvc": "4c43a64e83c28bfb788782b01d95034ecc59bf9846006aa1deb6986c139b9f9d",
-    "rust-1.41.0-x86_64-unknown-freebsd": "ae1093a1e476f5c7b1c1f59f986d64b5f82a76b865c9823bcc3d5061bb93ff9f",
-    "rust-1.41.0-x86_64-unknown-linux-gnu": "343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b",
-    "rust-1.41.0-x86_64-unknown-linux-musl": "ff7345dde2f5bc295ed8ae50f0eee54b8dd697e712f86095a3378bb4dcfeea70",
-    "rust-1.42.0-aarch64-unknown-linux-gnu": "fdd39f856a062af265012861949ff6654e2b7103be034d046bec84ebe46e8d2d",
-    "rust-1.42.0-x86_64-apple-darwin": "db1055c46e0d54b99da05e88c71fea21b3897e74a4f5ff9390e934f3f050c0a8",
-    "rust-1.42.0-x86_64-pc-windows-msvc": "4a3131ff6d2b04d120069e0ba494a6418db1c691fc8e4627cf1aaf2ffbaf5ad9",
-    "rust-1.42.0-x86_64-unknown-freebsd": "230bcf17e4383fba85d3c87fe25d17737459fe561a5f4668fe70dcac2da4e17c",
-    "rust-1.42.0-x86_64-unknown-linux-gnu": "7d1e07ad9c8a33d8d039def7c0a131c5917aa3ea0af3d0cc399c6faf7b789052",
-    "rust-1.42.0-x86_64-unknown-linux-musl": "1c6bcdf5dfb51c52e7afd33fddd799a0814cd80b443137a8e9eec5563de6849d",
-    "rust-1.43.0-aarch64-unknown-linux-gnu": "e5fa55f333c10cdae43d147438a80ffb435d6c7b9681cd2e2f0857c024556856",
-    "rust-1.43.0-x86_64-apple-darwin": "504e8efb2cbb36f5a3db7bb36f339a1e5216082c910ad19039c370505cfbde99",
-    "rust-1.43.0-x86_64-pc-windows-msvc": "78dea49969addb3ef7a3a3816482534828a5140c866a828be69ccfeb44972a3b",
-    "rust-1.43.0-x86_64-unknown-freebsd": "2555aa83d1559af19054befdaea3ae560374376f9973aa3dad2c41fcd2eb84d4",
-    "rust-1.43.0-x86_64-unknown-linux-gnu": "069f34fa5cef92551724c83c36360df1ac66fe3942bc1d0e4d341ce79611a029",
-    "rust-1.43.0-x86_64-unknown-linux-musl": "dcb022649bc1998d8e103f42cb0847afc57fcd303bc9fdfde057b2b53436605a",
-    "rust-1.44.0-aarch64-unknown-linux-gnu": "bcc916003cb9c7ff44f5f9af348020b422dbc5bd4fe49bdbda2de6ce0a1bb745",
-    "rust-1.44.0-x86_64-apple-darwin": "f20388b80b2b0a8b122d89058f785a2cf3b14e93bcac53471d60fdb4106ffa35",
-    "rust-1.44.0-x86_64-pc-windows-msvc": "127cf6569c4958e362f06f850eec6cba0ad69474ab15fef2dee740aee45a3169",
-    "rust-1.44.0-x86_64-unknown-freebsd": "e2ad3224790d2283d7ef66d5e1f08cec688f1c29cf53326c9a6c28fb4914b6a1",
-    "rust-1.44.0-x86_64-unknown-linux-gnu": "eaa34271b4ac4d2c281831117d4d335eed0b37fe7a34477d9855a6f1d930a624",
-    "rust-1.44.0-x86_64-unknown-linux-musl": "dabcba42caeba91874cf10640f70fb580bdab136ce56211ac341f10d311f6ebc",
-    "rust-1.45.0-aarch64-unknown-linux-gnu": "b727be0ecdee5fb88775b784758a09ab696293048a80288999b8a6f78b160212",
-    "rust-1.45.0-x86_64-apple-darwin": "8e91f99ffbf5ae86d659d3515315a8e92ef44210102672c1536a9902cc182401",
-    "rust-1.45.0-x86_64-pc-windows-msvc": "7d1118568b83fd1da5312de95ca6f30d4f21dae57073c00a216437e4c02733cc",
-    "rust-1.45.0-x86_64-unknown-freebsd": "3d09db6a127558cfdb4fc44106e7d478bb8f6cc6148d536b90d30610181fc656",
-    "rust-1.45.0-x86_64-unknown-linux-gnu": "c34ed8722759fd60c94dbc9069833da5b3b873dcd19afaa9b34c1ce2c2cfa229",
-    "rust-1.45.0-x86_64-unknown-linux-musl": "ca5c4670f511ff225d097b5602d4a2ce984b4cd02c6aedc3be1279570c6475cb",
-    "rust-1.46.0-aarch64-unknown-linux-gnu": "f0c6d630f3dedb3db69d69ed9f833aa6b472363096f5164f1068c7001ca42aeb",
-    "rust-1.46.0-x86_64-apple-darwin": "82d61582a3772932432a99789c3b3bd4abe6baca339e355048ca9efb9ea5b4db",
-    "rust-1.46.0-x86_64-pc-windows-msvc": "3545eb66ed7c6222ca4eb9e990d4bef63edbac9b580387bf7035501ee35d453f",
-    "rust-1.46.0-x86_64-unknown-freebsd": "30d8b05073b23f0621ed00276208589dcd7669776b752a67c66c9c928ebbe258",
-    "rust-1.46.0-x86_64-unknown-linux-gnu": "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5",
-    "rust-1.46.0-x86_64-unknown-linux-musl": "57aa5ca25bbd3da4eea6fc411b0fe7e1dbc683230a3f58ec84b9f70c5606909b",
-    "rust-1.47.0-aarch64-unknown-linux-gnu": "753c905e89a714ab9bce6fe1397b721f29c0760c32f09d2f328af3d39919c8e6",
-    "rust-1.47.0-x86_64-apple-darwin": "84e5be6c5c78734deba911dcf80316be1e4c7da2c59413124d039ad96620612f",
-    "rust-1.47.0-x86_64-pc-windows-msvc": "c9f93f8c821090e1c96384bef564e9c9d86bd13ef8d1116b3f17e124f07f55cc",
-    "rust-1.47.0-x86_64-unknown-freebsd": "650af0288d099c9debef7258a27caf15dd8aaf033ee1a099b4c5216c95ecfeaa",
-    "rust-1.47.0-x86_64-unknown-linux-gnu": "d0e11e1756a072e8e246b05d54593402813d047d12e44df281fbabda91035d96",
-    "rust-1.47.0-x86_64-unknown-linux-musl": "63be7601a9ecc552e3cb7a7b8f781bc122f756e8c61e4da4b76f995af039e53f",
-    "rust-1.48.0-aarch64-unknown-linux-gnu": "c4769418d8d89f432e4a3a21ad60f99629e4b13bbfc29aef7d9d51c4e8ee8a8a",
-    "rust-1.48.0-aarch64-unknown-linux-musl": "ac4de580a28e45a9773b389b296d13bfeeb08263cb1f8343859577a54940dae9",
-    "rust-1.48.0-x86_64-apple-darwin": "20e727cad10f43e3abcedb2a80979ae26923038e0e8a855e8a783da255054113",
-    "rust-1.48.0-x86_64-pc-windows-msvc": "0fdf41bb9b45e923000205b08329e15124f01b9b32986d73cd36625f3c7d883b",
-    "rust-1.48.0-x86_64-unknown-freebsd": "21e24489ffaabe517e5e87572707784d5b471646164109b248957a2d32e7a8b9",
-    "rust-1.48.0-x86_64-unknown-linux-gnu": "950420a35b2dd9091f1b93a9ccd5abc026ca7112e667f246b1deb79204e2038b",
-    "rust-1.48.0-x86_64-unknown-linux-musl": "4ed9627f57b4e0b9807fc5e7513d9731f4791668b7f875b9e44e65e21072c56f",
-    "rust-1.49.0-aarch64-apple-darwin": "ce7d689e6f73dd9c07b672ba23dabe5159fa8c194dce71b4f3f95baeaf564082",
-    "rust-1.49.0-aarch64-unknown-linux-gnu": "b551bd482041307fa3373a687d6d6a2c4c0931c2e0a68b8b75dc80bc5cf5f002",
-    "rust-1.49.0-aarch64-unknown-linux-musl": "0a43d96a508c720520328112d609916d062f866a5c35f1db8f906284035d6d98",
-    "rust-1.49.0-x86_64-apple-darwin": "fe3e248bc4b0ee0a2595693687ad845c8a8bda824a56c9321520bcca02433716",
-    "rust-1.49.0-x86_64-pc-windows-msvc": "5340831dcf98344de4a6888b50237f82568a97a46d9814f1400720dde0c7b6e5",
-    "rust-1.49.0-x86_64-unknown-freebsd": "dced98577e834f511cae8e58290539ad6b8dd40ae512e90d1371f650961bd930",
-    "rust-1.49.0-x86_64-unknown-linux-gnu": "8b14446df82f3707d69cf58fed92f18e0bff91621c62baf89288ef70e3e92981",
-    "rust-1.49.0-x86_64-unknown-linux-musl": "f92a5a4adcfac4206a223d089a364a8375d1b6f112f3f2efa3f6d53d08a61904",
-    "rust-1.50.0-aarch64-apple-darwin": "1ed91a867e7b86cc4bc84c0838240f1c25acd007100ec9f7a14c4873e4b56561",
-    "rust-1.50.0-aarch64-unknown-linux-gnu": "1db7a4fbddc68cd29eb9bca9fa7d0d2d9e3d59ede7ddaad66222fb4336a6bacf",
-    "rust-1.50.0-aarch64-unknown-linux-musl": "adcc6c76a8967bacb6687b565d3cf739e35fde066b03edb745b05b52fa8b5b36",
-    "rust-1.50.0-x86_64-apple-darwin": "1bf5a7ecf6468ce1bf9fe49c8083b3f648b40c16fbfb7539d106fe28eb0e792e",
-    "rust-1.50.0-x86_64-pc-windows-msvc": "e8857c30b43b7d92371f824303d18e90e67e1053497366ad3496fa7ba0e0de6e",
-    "rust-1.50.0-x86_64-unknown-freebsd": "83f9d093ab7f0f5abac15e0fcea6f22daef217a2b6240342b71ae52f99a7f31d",
-    "rust-1.50.0-x86_64-unknown-linux-gnu": "fa889b53918980aea2dea42bfae4e858dcb2104c6fdca6e4fe359f3a49767701",
-    "rust-1.50.0-x86_64-unknown-linux-musl": "867cbfb35f5dc9b43e230132ea9e7bfa98d471a9248e41b08ced2266e5ccd00f",
-    "rust-1.51.0-aarch64-apple-darwin": "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f",
-    "rust-1.51.0-aarch64-unknown-linux-gnu": "fd31c78fffad52c03cac5a7c1ee5db3f34b2a77d7bc862707c0f71e209180a84",
-    "rust-1.51.0-aarch64-unknown-linux-musl": "06cdaa1117dcdd392ede938b655b9bc45cf2a76bd42870ca223189e6eb29d435",
-    "rust-1.51.0-x86_64-apple-darwin": "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4",
-    "rust-1.51.0-x86_64-pc-windows-msvc": "aa0a7c78c68a2f23b72a95976f74aa5b883feb20812698b8ee0b07a86314ebc5",
-    "rust-1.51.0-x86_64-unknown-freebsd": "d764ab80889460caca86cda7b7ca2ced80544bb477634adc8cade0e27f4f663b",
-    "rust-1.51.0-x86_64-unknown-linux-gnu": "9e125977aa13f012a68fdc6663629c685745091ae244f0587dd55ea4e3a3e42f",
-    "rust-1.51.0-x86_64-unknown-linux-musl": "cb65c3a19ba0e09a94ccfd8551e648efaa1db52b0db19ae475d35a46f8750871",
-    "rust-1.52.0-aarch64-apple-darwin": "3aa15896dd85d1746a23af1b9764b55edb3659823ec20f306a5f30271c6bac5d",
-    "rust-1.52.0-aarch64-unknown-linux-gnu": "d37152f9da1074cfa84407ff183ce0dfb298f2e474d5b0ae3a3065d44c442770",
-    "rust-1.52.0-aarch64-unknown-linux-musl": "af73b6e9a99151f60569411fedcf5dfefb89bbec61548a2b4a8157874da77816",
-    "rust-1.52.0-x86_64-apple-darwin": "18906ea9ef6d7afc493f0c4403ece9fb466b0971db8d37d837864676ef9b077b",
-    "rust-1.52.0-x86_64-pc-windows-msvc": "53ad54808b1320aff5cc772f007a7f6570afceeb9c5b70b4b09fec9363610d59",
-    "rust-1.52.0-x86_64-unknown-freebsd": "f0610d69f18f861b72240cd6d42dae43adf932eadc24619a48e5a9363f719cdb",
-    "rust-1.52.0-x86_64-unknown-linux-gnu": "c082b5eea81206ff207407b41a10348282362dd972e93c86b054952b66ca0e2b",
-    "rust-1.52.0-x86_64-unknown-linux-musl": "56e36a3e626dca9eb65a07109ecd65e0454d9882124a6cda66ad21e78b82f627",
-    "rust-1.52.1-aarch64-apple-darwin": "217e9723f828c5359467d69b363a342d702bdcbbcc4107be907e6bc4531f4912",
-    "rust-1.52.1-aarch64-unknown-linux-gnu": "17d9aa7bb73b819ef70d81013498727b7218533ee6cf3bd802c4eac29137fbcb",
-    "rust-1.52.1-aarch64-unknown-linux-musl": "f2bae2b32f05a90eec041352d9329deb3e907f5560b9fda525788df3b8008b6b",
-    "rust-1.52.1-x86_64-apple-darwin": "cfa73228ea54e2c94f75d1b142ea41444c463f4ee8562a3eca1b11b2fe8af95a",
-    "rust-1.52.1-x86_64-pc-windows-msvc": "c03fb39f39519abd65ce792cc3d2c038b6c4179089d21f9e26933b93cde402d9",
-    "rust-1.52.1-x86_64-unknown-freebsd": "74e8386d2a9b1363ac8f5b0637e4c38a305d4706babda5222801c5ec9d5a2e6d",
-    "rust-1.52.1-x86_64-unknown-linux-gnu": "617ae06e212cb65bc4abbf52b158b0328b9f1a6c2f822c27c95b274d6fbc0627",
-    "rust-1.52.1-x86_64-unknown-linux-musl": "c3eae6e78ee29e03416897f89b54448b2a03d063f07a78cde41757ad2e02c2f0",
-    "rust-1.53.0-aarch64-apple-darwin": "c519da905514c05240a8fe39e459de2c4ef5943535e3655502e8fb756070aee1",
-    "rust-1.53.0-aarch64-unknown-linux-gnu": "cba81d5c3d16deee04098ea18af8636bc7415315a44c9e44734fd669aa778040",
-    "rust-1.53.0-aarch64-unknown-linux-musl": "a0065a6313bf370f2844af6f3b47fe292360e9cca3da31b5f6cb32db311ba686",
-    "rust-1.53.0-x86_64-apple-darwin": "940a4488f907b871f9fb1be309086509e4a48efb19303f8b5fe115c6f12abf43",
-    "rust-1.53.0-x86_64-pc-windows-msvc": "4690fb3ff390eef30eca4b3b9193a74e0e00ef18f2d89b7981753aaa9b36d787",
-    "rust-1.53.0-x86_64-unknown-freebsd": "f87eee8fabffc5800d5285ce2116e9c0f39340fed4a3c77eeb9fbbf7659b25c4",
-    "rust-1.53.0-x86_64-unknown-linux-gnu": "5e9e556d2ccce27aa8f01a528f1348bf8cdd34496c35ec2abf131660b9792fed",
-    "rust-1.53.0-x86_64-unknown-linux-musl": "908b6163b62660f289bcd1eda1a0eb6d849b4b29da12546d24a033e5718e93ff",
-    "rust-1.54.0-aarch64-apple-darwin": "801b3b15b992b0321261de8b8ea2728e9a74822c6cb99bf978b34e217c7825ba",
-    "rust-1.54.0-aarch64-unknown-linux-gnu": "33a50c5366a57aaab43c1c19e4a49ab7d8ffcd99a72925c315fb1f9389139e6f",
-    "rust-1.54.0-aarch64-unknown-linux-musl": "49d94116a357ea13f5a3231de2472f59210028c3cf81f158b8a367c3155ac544",
-    "rust-1.54.0-x86_64-apple-darwin": "5eb27a4f5f7a4699bc70cf1848e340ddd74e151488bfcb26853fd584958e3d33",
-    "rust-1.54.0-x86_64-pc-windows-msvc": "1c01182f8d9ef1295eacf58e5b7ba2e3183d768b91f7f650a7421808779068a0",
-    "rust-1.54.0-x86_64-unknown-freebsd": "026a40470b9fddfbb4abff3546e620eceaa2812ffc13e180bbb9360c01501a16",
-    "rust-1.54.0-x86_64-unknown-linux-gnu": "350354495b1d4b6dd2ec7cf96aa9bc61d031951cf667a31e8cf401dc508639e6",
-    "rust-1.54.0-x86_64-unknown-linux-musl": "3571db0018fcd32f3b579a32b2301826dbd1cce44b373aed8e8a31c2a6f52fe8",
-    "rust-1.55.0-aarch64-apple-darwin": "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a",
-    "rust-1.55.0-aarch64-unknown-linux-gnu": "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156",
-    "rust-1.55.0-aarch64-unknown-linux-musl": "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28",
-    "rust-1.55.0-x86_64-apple-darwin": "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3",
-    "rust-1.55.0-x86_64-pc-windows-msvc": "c7f21e819d883306c3a06115b4d46a92c7310aed655a2f19b40c457a6f06ba62",
-    "rust-1.55.0-x86_64-unknown-freebsd": "7ddb8ec4d431f64dd6428df93d46f726516970b0ca83c71c3efbfe34a42d3113",
-    "rust-1.55.0-x86_64-unknown-linux-gnu": "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac",
-    "rust-1.55.0-x86_64-unknown-linux-musl": "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2",
-    "rust-1.56.0-aarch64-apple-darwin": "31b7e9c8b4ac3133b1952d1278077fa45250e26758625f972f9b2f4e2426709d",
-    "rust-1.56.0-aarch64-unknown-linux-gnu": "f3e9a9c8af7d17a2fbe0ce561a7dc42f65c5444025783f1f63cd47960a534a9e",
-    "rust-1.56.0-aarch64-unknown-linux-musl": "a97c8f305c0dd07925a00f90e135152769f1c97442874691ffc865602209066d",
-    "rust-1.56.0-x86_64-apple-darwin": "577faef3f118a4a259e5e61a415b06434081baeceeff7bbf2357456cfc5b8735",
-    "rust-1.56.0-x86_64-pc-windows-msvc": "7ebee9ae583d0723d945fe89244fbc6f51f8723d318a2be9bcbe1e4ffc33606f",
-    "rust-1.56.0-x86_64-unknown-freebsd": "e31a47ecdd223ef7c84fc50d2c51343f8a3e54d419b04e17d143bd81ed587a7f",
-    "rust-1.56.0-x86_64-unknown-linux-gnu": "5189cd56447f9d56fcd7a1966efe5a8efd19843fdfd6bf9a23a9acbc57b5e3f9",
-    "rust-1.56.0-x86_64-unknown-linux-musl": "6ad1c6fa11e3bce86368385d0b0512d723a426fa55bcaeafdab08d03f127275d",
-    "rust-1.56.1-aarch64-apple-darwin": "e71c14c1368048a22e4d1851f301872ac2e6f4c574f04d2a7ae4d64b0e7c7235",
-    "rust-1.56.1-aarch64-unknown-linux-gnu": "69792887357c8dd78c5424f0b4a624578296796d99edf6c30ebe2acc2b939aa3",
-    "rust-1.56.1-aarch64-unknown-linux-musl": "971d13d41657e50e3ac54f17f52b4198c3d8bc25ec489a6a9e6d12c18226dda5",
-    "rust-1.56.1-x86_64-apple-darwin": "8d65ef02a123c23be00101fb204d28b60498b9145dd2ee8edabf0afde6e01e55",
-    "rust-1.56.1-x86_64-pc-windows-msvc": "b39acf48e5d73279ca9485f50e6ec16c16fcef922eb17f2921ce807df11d3e5b",
-    "rust-1.56.1-x86_64-unknown-freebsd": "94e2c8b44af125ca8ba1a1ded7e7b9c5acb27e52acec4ab483d5ed9a8528c5a9",
-    "rust-1.56.1-x86_64-unknown-linux-gnu": "a6be5d045183a0b12dddf0d81633e2a64e63e4c2dfa44eb7593970c1ef93a98f",
-    "rust-1.56.1-x86_64-unknown-linux-musl": "3c09058d104d9a88943fb343af1fb70422f9c4a987e6703666ee8a8051211190",
-    "rust-1.57.0-aarch64-apple-darwin": "7511075e28b715e2d9c7ee74221779f8444681a4bb60ac3a0270a5fdf08bdd5a",
-    "rust-1.57.0-aarch64-unknown-linux-gnu": "d66847f7cf7b548ecb328c400ac4f691ee2aea6ff5cd9286ad8733239569556c",
-    "rust-1.57.0-aarch64-unknown-linux-musl": "91c8e5171e5715261f7f635142a10a9415a4e5ba55374daf76f0b713c8b08132",
-    "rust-1.57.0-x86_64-apple-darwin": "15ceffc4743434c19d08f73fb4edd6642b7fd8162ed7101d3e6ca2c691fcb699",
-    "rust-1.57.0-x86_64-pc-windows-msvc": "566374ae6c9f487726932f4d4ef3c9000147574f30365cfda265cbfd0c4ea5c6",
-    "rust-1.57.0-x86_64-unknown-freebsd": "ebe96fa1f15e8d70c91e81aab7e0c341717b909225029f37d52fbdfa506e3fab",
-    "rust-1.57.0-x86_64-unknown-linux-gnu": "ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda",
-    "rust-1.57.0-x86_64-unknown-linux-musl": "56876ebca0e46236208c8bd3c3425dba553abe49639e1040ee8b95bc66a45d33",
-    "rust-1.58.0-aarch64-apple-darwin": "6fb564f03dc09fd0ede8cdc35803b9efdd0ee3b3769c392c63167f863e9512ce",
-    "rust-1.58.0-aarch64-unknown-linux-gnu": "38fafc97700dcb1d205d3db7d86e9eb404577ccc4054333f41ec52d508394043",
-    "rust-1.58.0-aarch64-unknown-linux-musl": "787655adcaf004cc1f6a438881a3964ec20fffa682b46418a2a87b564548d80b",
-    "rust-1.58.0-x86_64-apple-darwin": "1f35e32a70ced5019fef45d1073d8ac25c0c2f91537b2b3592e041542f582b84",
-    "rust-1.58.0-x86_64-pc-windows-msvc": "c15f4ac3ef3a3833b6394f3f102cc7896a82107d68c2f398aab2bfd70fbb096a",
-    "rust-1.58.0-x86_64-unknown-freebsd": "ce69d9e2b7f60d7805d7759f112a9a3d2c608715242041e7fecea033d557bab1",
-    "rust-1.58.0-x86_64-unknown-linux-gnu": "1d7ec4bceb0d31f163540fe7ebebed68ca8853e7982821108770eaec5d66f871",
-    "rust-1.58.0-x86_64-unknown-linux-musl": "d1d04e4c5a3299c1d4b3eac8785f7b77c23d4ed32da3c3f77a1e39d90264b386",
-    "rust-1.58.1-aarch64-apple-darwin": "00b44985bc87e53c53d92622fb10226f09e9f25c79db48a77c0a769a36f83b1e",
-    "rust-1.58.1-aarch64-unknown-linux-gnu": "ce557516593e4526709b0f33c2e1d7c932b3ddf76af94c2417d8d667921ce90c",
-    "rust-1.58.1-aarch64-unknown-linux-musl": "b1533fdeeda483a3633617fd18a79d8fad7821331614b8dc13efd8b22acc30f5",
-    "rust-1.58.1-x86_64-apple-darwin": "d0044680fc132a721481b130a0a4282a444867f423efdb890fe13e447966412f",
-    "rust-1.58.1-x86_64-pc-windows-msvc": "93cebf7a895420b3763dbc808c0772ef814add757eb689abe1da3690e876447f",
-    "rust-1.58.1-x86_64-unknown-freebsd": "124d056c3af35bd9a42c6ef3529c73a6b29b1d927f5498cec499e16ca4defe63",
-    "rust-1.58.1-x86_64-unknown-linux-gnu": "4fac6df9ea49447682c333e57945bebf4f9f45ec7b08849e507a64b2ccd5f8fb",
-    "rust-1.58.1-x86_64-unknown-linux-musl": "7036e34eadc8ce22d16b0625919d9f2244ca49a5441d6599f4822116c181d272",
-    "rust-1.59.0-aarch64-apple-darwin": "5449ae915982967bae97746ce8bea30844f9ab40b4ee4da392b9997e0e7b2926",
-    "rust-1.59.0-aarch64-unknown-linux-gnu": "ab5da30a3de5433e26cbc74c56b9d97b569769fc2e456fc54378adc8baaee4f0",
-    "rust-1.59.0-aarch64-unknown-linux-musl": "a3f8afdf23c98e6d25bf3b4bfcf5e9a4712f4c425f3754500931232d946204a9",
-    "rust-1.59.0-x86_64-apple-darwin": "d82204f536af0c7bfd2ea2213dc46b99911860cfc5517f7321244412ae96f159",
-    "rust-1.59.0-x86_64-pc-windows-msvc": "d781bfed7e3e5dc4959ce39df101fc476a3a70ab75e2fa1bbc3e59281f6e9e00",
-    "rust-1.59.0-x86_64-unknown-freebsd": "83f9c49b6e9025b712fc5d65e49f1b6ad959966534cd39c8dc2ce2c85a6ca484",
-    "rust-1.59.0-x86_64-unknown-linux-gnu": "0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae",
-    "rust-1.59.0-x86_64-unknown-linux-musl": "c0ae76fa4bb0f1c85b86b9f7637db0fddf5084ce4c8f86c4d4acc3c41813201f",
-    "rust-src-1.26.0": "d02fe6fd5c0f330656e9ff0a290ebf23cab7c909f96ce1838247fadc117eb1dd",
-    "rust-src-1.26.1": "19ef8113ae53ec7ea8f6772a5c9ce5a3dfc28b1bddd800841fb5bbec33fa3619",
-    "rust-src-1.26.2": "d63cb7ca67f1bb2101898b7ca33105eeb6d9d9cc3e7ff566b90b0321ec448e73",
-    "rust-src-1.27.0": "9a60d9f0c586a537129a741576370b90d9cce1999b4aa2623d5c1d9c3fdf5a73",
-    "rust-src-1.27.1": "8736577a84bf7263d333996b21ec49697a4a942ab1b5f6d1327241866481cdc0",
-    "rust-src-1.27.2": "03b4b09d855b2c393508f1e5d11c2cba147112a534193e62d6cb54e2b5a631f1",
-    "rust-src-1.28.0": "99ee2a227f27bf0136e7bc53790ef5e02ad9744a56f488b77579403b281b1d63",
-    "rust-src-1.29.0": "6f1a4457d2e75d2b3d3dda1f05e6ff5f37c4c416d25733cb3b008cad99247a42",
-    "rust-src-1.29.1": "89bddeeb0b38ec2715e287a4827179fc975d69bd6d223b05199321e9c0de8313",
-    "rust-src-1.29.2": "47b1ed6d19d5a14f20c1723218fcf073c3f790aceb780ffae9209c1a480f5b81",
-    "rust-src-1.30.0": "27e806396aa5ce2466929e06106a23b456a63f9dee2e9c378da326f1f88e6570",
-    "rust-src-1.30.1": "16dc694d49b22a58e766dfa5812d84000a6197cc6b1f1f7b4e553be8d9427d85",
-    "rust-src-1.31.0": "121909b2428487a31d6bef4ff92f6d63967b225310632fc60570874ba392feb1",
-    "rust-src-1.31.1": "097550782be7f201a44b842b74c6c2ec6851495454ada2d9ee693a8af4cdbc6a",
-    "rust-src-1.32.0": "6ece16e38b969606a5da8def53cae55d0c67d8502261086afbd5e303013ce92b",
-    "rust-src-1.33.0": "48b28b0cd9badcef24f1525b6a225db9018924567d6a998ae891996dc843fb22",
-    "rust-src-1.34.0": "6fe16aae312d3be5e0fec93e52918b7b03e0920e7d6d3e552a4fdd740556c4e9",
-    "rust-src-1.35.0": "7547d1e9a7ed236860e0a1ed7b9e428941fad7ff9bd3888e19db7e7a5fd53e38",
-    "rust-src-1.36.0": "c0099d763779ef095fcd32531a88a2af714670ec0b64f7b27aa027b2f51057b0",
-    "rust-src-1.37.0": "30e7bb28725b86b53b7dfe23ba4f3119889c30e38930f7c2dfdc74b1f62704a5",
-    "rust-src-1.38.0": "082891ceb8547c4a0fbadcd1309fb0219b935f3dc5a38d2b3b77f40a670a0a54",
-    "rust-src-1.39.0": "068186f866703ffeae804a0642588a78a492f03b62c0113e6cdfcb4eeca56df6",
-    "rust-src-1.40.0": "2a9be624ba682f1331cc4d764e161a1b18e007ded34ffcb1494804bc24e0fd62",
-    "rust-src-1.41.0": "6597a1f217c6a9cfcf41e34bba91d8d98b6736ab6a18b54ed2db1ce5634e176a",
-    "rust-src-1.42.0": "56d809eb9efb70e9444be88bd8e3ff54d94ab5fef24b13d5b17a75309190d84e",
-    "rust-src-1.43.0": "7999fad1e60609f76ebe589cab48451e35ecd54d5336bf70dfb0eb57c78e8bb7",
-    "rust-src-1.44.0": "6f748c303431126827fc3f262ba05ece2456e274eafeb9bd0b40bdf27c5f99da",
-    "rust-src-1.45.0": "96590b0a987098da05d38f8e3bb5e049a77c20f03689ffb7144f23136fd488b4",
-    "rust-src-1.46.0": "7478839072096041220c6ca9cc9031028cdf65fa8cb5bcf87178ea1351442bdc",
-    "rust-src-1.47.0": "64b27ba31f8956342e8ace0f949d06524d7013bf73bfbe6f9d18ec19e5a0c793",
-    "rust-src-1.48.0": "e8f15bdfcb5ced76ae40dd9aa6b387d5f9cece82b7a340cdcaa353fbc94f53da",
-    "rust-src-1.49.0": "474a0fd0c1da720eb9fa701c73ced702a7599eb265333a18c1b25feeb9566f8e",
-    "rust-src-1.50.0": "678e140e88656f19a49aa802eb6e1ea117a520c6f3eb0da265a7dc6e0c012a9c",
-    "rust-src-1.51.0": "18904ca04c5bc09fa1a88d32391c611bc60bc3a739551496cad0829e34301563",
-    "rust-src-1.52.0": "861dcbf1faf2faca5b5e3afea5bbcf453cbda4ae00bd34ae67bfc36463f9e227",
-    "rust-src-1.52.1": "34fb417e94aadbace368e934e1f079dd09f2423ccd6cc0cc519cdd55ef3fa8bf",
-    "rust-src-1.53.0": "26b1464bd313ae99de27a162ca96b4fb321e4414448ea8ce8abd715ef8c7ba2b",
-    "rust-src-1.54.0": "56d14ee97c59c543291154ab427cf96a1a82ef5cf32b89f14886dcfc01f5310b",
-    "rust-src-1.55.0": "3be79e301246b413e9e1cc4b5b4f53bcbc964482005381a899ab6c597bef7996",
-    "rust-src-1.56.0": "00c2225d0e1d430b1632373c46448b1b69839032b8384684091bb9cce19b2ce6",
-    "rust-src-1.56.1": "be4757c283f94a37cf38b9897f5513ebe3e2f4ef15f013630cdb845987324503",
-    "rust-src-1.57.0": "cc1fa22e939b14a6952deb7547fcfafa6670e727f942fb4ef77075d8e58e45a6",
-    "rust-src-1.58.0": "c91bb6df4ebbfea42a1c3940e38bc1c2c4768efbdada8205b12f6d9d383ee219",
-    "rust-src-1.58.1": "e7bb7325e5e71411aabfbd251acfd131d1ad6d9aee2b65d04b081702915cfe4f",
-    "rust-src-1.59.0": "127658a5237cce6dd43ce9d9113fc104ea6902cc8c850272fba07d92140fab12",
-    "rust-std-1.26.0-aarch64-unknown-linux-gnu": "a583ddc2d4b5f9516bf136f781268ae0e813295d1d145fab4b46a4220f448923",
-    "rust-std-1.26.0-aarch64-unknown-linux-musl": "6a112ecd4cdefee2688bf69fdceb785a4d08cea33ba32296539abe3cb7f5eae1",
-    "rust-std-1.26.0-wasm32-unknown-unknown": "0f8bb8bdb523cd05acd11006d47b14d7589e64fe25a43d1aec5df692988b400f",
-    "rust-std-1.26.0-x86_64-apple-darwin": "cb5a0114e9e383aa93267868482db84f791124ee4faafdaed08ec6782d000fc2",
-    "rust-std-1.26.0-x86_64-pc-windows-msvc": "88ae8697a84cfddc72429fb0880e6d8663d99ab98a69d27c06d21b4e668b13d9",
-    "rust-std-1.26.0-x86_64-unknown-freebsd": "38cd138eba2ccaff59513d154fec580b6663ca6ef38cd620c348364aa1e11a40",
-    "rust-std-1.26.0-x86_64-unknown-linux-gnu": "e27cb5c21541a500c8df919e15c8d3b002456ebbe573122e7b058cf5b4c3c13a",
-    "rust-std-1.26.0-x86_64-unknown-linux-musl": "943886ce013589b6dd9c9392c807881631cab4a8e04acc83e3a047134a9294f5",
-    "rust-std-1.26.1-aarch64-unknown-linux-gnu": "34077f14d1e8c9ce96a9c72e95599326187bd460b88f877794a8c19f9e1b56b4",
-    "rust-std-1.26.1-aarch64-unknown-linux-musl": "d4435fa89ff7575d8d70114a5841bf70d699294db707512d6f4f4d0a073b237d",
-    "rust-std-1.26.1-wasm32-unknown-unknown": "98af245301a921042997a433a618f58ae27b52340ad71c5502ecde7f29db79f9",
-    "rust-std-1.26.1-x86_64-apple-darwin": "d43e06674e645e120af6716e6d0db5771fa8818b5a48fbee9791360086cdec4a",
-    "rust-std-1.26.1-x86_64-pc-windows-msvc": "5223b7dde5b96d278072b4541fdffb7d33c64950af643eba385928763aca32bf",
-    "rust-std-1.26.1-x86_64-unknown-freebsd": "1d63cc1f6dc6dfa2644619cd8c264c3d1be0fe5c44c5454e8ea04bd7beb036fb",
-    "rust-std-1.26.1-x86_64-unknown-linux-gnu": "cc7cec9a121a97e8e23c350305a0e4cd4e3b475fd5a36fa6335a585d3c511f0d",
-    "rust-std-1.26.1-x86_64-unknown-linux-musl": "9d6a4191ad8ddfae10a05882cd0e867ecc2b64d26da2f38fbdcbdcbcf94139cf",
-    "rust-std-1.26.2-aarch64-unknown-linux-gnu": "6f629b8c3ef8aa4a6c9439a5c1d8719905853f321a1080bb9f8a8356a1b06364",
-    "rust-std-1.26.2-aarch64-unknown-linux-musl": "d70817352ebe34fab475ef3cd79ccbd56cf20e3b9ae0b34a285dd1c966bf2bde",
-    "rust-std-1.26.2-wasm32-unknown-unknown": "260e3267451c8098ac069376e2f4320e129ccec79602086a77f0798499cb5b3b",
-    "rust-std-1.26.2-x86_64-apple-darwin": "712a79cd10b96c7119980e535a36595e03c69a360f1541f690c09de858d92723",
-    "rust-std-1.26.2-x86_64-pc-windows-msvc": "41036c06e00ba038c5ec3940608370e93c6b9a731019d0349841fa78bc8ea125",
-    "rust-std-1.26.2-x86_64-unknown-freebsd": "f54b58bf941d794ee10ab7ee9e1c94a70012073b0ee633ec2be585b1be2e31de",
-    "rust-std-1.26.2-x86_64-unknown-linux-gnu": "91634f05bf2d0a20e627aed08a8450673acecb963869273221de17130540fb26",
-    "rust-std-1.26.2-x86_64-unknown-linux-musl": "5ba536ccc53bf550d7ae3f032cc743b2f13c1ac92e3be45f0843762ed8aa4ca0",
-    "rust-std-1.27.0-aarch64-unknown-linux-gnu": "a32ff8d2ab75a229b73076182978e8b97ac1c5447b9446b1d253685ef31652ec",
-    "rust-std-1.27.0-aarch64-unknown-linux-musl": "e64ee59e3c113483714c563a567532eba46c96ff7e7f3982e88fecf03d0c1cae",
-    "rust-std-1.27.0-wasm32-unknown-unknown": "aa1afca259ecbee3cf65368e8f9d5e9a0d8ea86be30edf4ecfedecc1db110380",
-    "rust-std-1.27.0-x86_64-apple-darwin": "15ee6418f9b564618e9c81a6dcd7706a2f8ae5ca24fd1b6d7527c97563a47e57",
-    "rust-std-1.27.0-x86_64-pc-windows-msvc": "77c9102d192ed2dda7128dea4e60992d1135c50b85f0ef8e989f0fda3ed3b73c",
-    "rust-std-1.27.0-x86_64-unknown-freebsd": "6e307cc3798b50b37beb9ff43e88b12fb565ddaf051925fffa35bfbeb091d660",
-    "rust-std-1.27.0-x86_64-unknown-linux-gnu": "b8cf36922315ca792929d515327c74b873358a64be4929b2ecfbe23af21e8043",
-    "rust-std-1.27.0-x86_64-unknown-linux-musl": "166b5286de202feebfbbfea18f2cc06b0a945dd7687985d6a14b3c811b18b202",
-    "rust-std-1.27.1-aarch64-unknown-linux-gnu": "00a553c4b5869db1acc4f5fb1f6f954893db507ae01ed754bb8654f8916588e9",
-    "rust-std-1.27.1-aarch64-unknown-linux-musl": "aabf69e0ed8a0a45a1dd7c52bf532cff37ab00c1aa5cd1555ca57e4fee9dc64d",
-    "rust-std-1.27.1-wasm32-unknown-unknown": "e16cfda8a8eb29c81d34ea3ca7b4c0815b46ddb85814cbf68320f2666ef44d78",
-    "rust-std-1.27.1-x86_64-apple-darwin": "a521599355e564984e43a63042b1de93dd7cf96730930501f86611dd766384e8",
-    "rust-std-1.27.1-x86_64-pc-windows-msvc": "4745f31711f18e06859946b932909a26d4593552c6631c5710e72d3da26f06ab",
-    "rust-std-1.27.1-x86_64-unknown-freebsd": "12902b61a4897ade258217f045dfac3fe83d49dd52d1e2250bd94c3a10642b08",
-    "rust-std-1.27.1-x86_64-unknown-linux-gnu": "9a1830b522117d68eeec703b50692093352212e035a46baceea666bb37739c2d",
-    "rust-std-1.27.1-x86_64-unknown-linux-musl": "c387d462fc07d4bace1355cfca70b68ff263432614cbe7c66d53ac25e1a47161",
-    "rust-std-1.27.2-aarch64-unknown-linux-gnu": "39bafd1db4f1e881cdbd8d81b757bfef1cad6c06f6aa4514f8b693d997764e2a",
-    "rust-std-1.27.2-aarch64-unknown-linux-musl": "5e8e6d5368ece8c822991c8b4437e83d0537f253cb70b39d627d17f012813122",
-    "rust-std-1.27.2-wasm32-unknown-unknown": "59ad2323afe090c43e41dce482a4abed1473a7997db5db2ee236d49eac208b70",
-    "rust-std-1.27.2-x86_64-apple-darwin": "eed3688d9f551066593b34f07e4d28846caa99624c2168387993acc6bddd003d",
-    "rust-std-1.27.2-x86_64-pc-windows-msvc": "f5dbee42f3fde455d79e759a4854da78a650df3bcf27f194da78670feb11e10a",
-    "rust-std-1.27.2-x86_64-unknown-freebsd": "6051f8bacbfbd2c3dceeddab8c66274bed7ef260cf346d367c53495cd1567572",
-    "rust-std-1.27.2-x86_64-unknown-linux-gnu": "68984f2233853d3e9c7c56edd72a91b5822157f28fdb42023fb311af68f842dd",
-    "rust-std-1.27.2-x86_64-unknown-linux-musl": "2ef23cad3779c8ee7abf7cbe7d93b0faa1ffd87e1ef5a378aa9ce566cd1b7644",
-    "rust-std-1.28.0-aarch64-unknown-linux-gnu": "9ba698f68c5643f53934e1085af40c79c6d1b3bfa01ca6dcdffdc5eec8f44cc0",
-    "rust-std-1.28.0-aarch64-unknown-linux-musl": "b1acdf055d534f4ce295271fe6101833c65261aeb52ffb619911a4db3de35663",
-    "rust-std-1.28.0-wasm32-unknown-unknown": "33f9b2d3f568859db28ab32ec4dd388390d408f6204ab44886eec04cc08af843",
-    "rust-std-1.28.0-x86_64-apple-darwin": "bd1b5110d35383349aafad904431d55656b13a3c02ed3b2020d2038557735ab9",
-    "rust-std-1.28.0-x86_64-pc-windows-msvc": "876d68628e6e91113117516621ae4773cdbebdaab1e899d3ec83c612683947b8",
-    "rust-std-1.28.0-x86_64-unknown-freebsd": "1fabaf71d21c1cdcddfb564950152ef862b519a175f7ee88d7e22bab31c4733e",
-    "rust-std-1.28.0-x86_64-unknown-linux-gnu": "c5aed4c7ef362b5754526d26acaccdc9300942fd12e5cc67cc56fc89576a9dab",
-    "rust-std-1.28.0-x86_64-unknown-linux-musl": "caea8f24197232c25de0e387567af452e0d57b9103ef8acef167814f9acda08c",
-    "rust-std-1.29.0-aarch64-unknown-linux-gnu": "72c0ab49bbdbf819da5018b620aeed22d34af558f4db9598059cb253fc6adec3",
-    "rust-std-1.29.0-aarch64-unknown-linux-musl": "63f9cef857800feae763ba5356f1aa67b6d2d5c8c13e03378d79014e41eacf17",
-    "rust-std-1.29.0-wasm32-unknown-unknown": "83449101356a3ae4abf8597913602b1c79dd76cc52bca7a6a3a9f4fdabc565d5",
-    "rust-std-1.29.0-x86_64-apple-darwin": "7fca06854f7c63d1d0da7c46c816af5dd23eb8010603b8cf3f07a61b162f02ae",
-    "rust-std-1.29.0-x86_64-pc-windows-msvc": "b05d04c684e070a820a0a3dc1128a24795895aecf25f6ffa0d68150e6209e424",
-    "rust-std-1.29.0-x86_64-unknown-freebsd": "a59a50a60b033c00cf36c3b8039f300b2997245c21f2d02074f9d3157b54b353",
-    "rust-std-1.29.0-x86_64-unknown-linux-gnu": "0bed2fcba596e1af6f56ed3f5d481b89b28a4ac26aea07128c6630c00c6a136b",
-    "rust-std-1.29.0-x86_64-unknown-linux-musl": "f45012af49d05990b0917c465a7986be466d2dcf6fb82100903ba0dc7f63469c",
-    "rust-std-1.29.1-aarch64-unknown-linux-gnu": "cf192e05192f79961b9f9e834e19c8b71654ac98b239408a6815d07ff2a96f19",
-    "rust-std-1.29.1-aarch64-unknown-linux-musl": "fa2f496ee03bff273eb88726e1faa2cbd6156b33ca19acb5e3b2f4c687a5594b",
-    "rust-std-1.29.1-wasm32-unknown-unknown": "48f31123614b5e0799200e0db640ff05c7236d0b6940bedf4043d5d19a2b22df",
-    "rust-std-1.29.1-x86_64-apple-darwin": "9c31fba3bfb816cf6aa8d9d4c3e7f235233035ada95417e130de8487faa507d3",
-    "rust-std-1.29.1-x86_64-pc-windows-msvc": "cb7825c2a1fa46696a429fc7e6afd3f2b396d1467a6e4b5f850ff8dedd73ac1b",
-    "rust-std-1.29.1-x86_64-unknown-freebsd": "aad9e36766284656449dad75cc1c77c7b86da99abfb0ec424689101679aa8a43",
-    "rust-std-1.29.1-x86_64-unknown-linux-gnu": "d05ddae0f05d721de00bf6e40f85f1ccdec902f864b9647e2e1cb08a8202d513",
-    "rust-std-1.29.1-x86_64-unknown-linux-musl": "7ef498c2c817afc7843d301431015931323af1759d325f46b4379bf4dccec331",
-    "rust-std-1.29.2-aarch64-unknown-linux-gnu": "f64b051f0b293ee66d7556231dcd70d143525bf6d0b2afc6fae945bf1ffd8073",
-    "rust-std-1.29.2-aarch64-unknown-linux-musl": "660dcc5252db28a3d46712606a299001fd9a0fe1f27333a88269ab4502315c43",
-    "rust-std-1.29.2-wasm32-unknown-unknown": "e8317f0677a3d4ee3b4e5f2dffdf0cdb930c77da20676a32099fde477b439d5e",
-    "rust-std-1.29.2-x86_64-apple-darwin": "72cd953cb8ea05667f5d58f5c4ba615a564611a86303c0f8f9235e7a53852692",
-    "rust-std-1.29.2-x86_64-pc-windows-msvc": "5f2320e89946208b14a34d96a2bfc652bf1debe2bbf139fda19f7dc3a5f91694",
-    "rust-std-1.29.2-x86_64-unknown-freebsd": "ddde8a33ddd902471c51f273087d90e9f7f184b7f09f5d14cab454c8c4965ec2",
-    "rust-std-1.29.2-x86_64-unknown-linux-gnu": "1fe9a0f354256483a354ee1b51c60bf9f3f48868581f7cb36d0cc51a82400605",
-    "rust-std-1.29.2-x86_64-unknown-linux-musl": "7588af2d23b4e2d342476acfd5fb95dc399777142cf1fb39a6ef0a40d70437bc",
-    "rust-std-1.30.0-aarch64-unknown-linux-gnu": "0166650de5072545c3945416638dec9beec5ae1f3c72069e314b7c50e18b4819",
-    "rust-std-1.30.0-aarch64-unknown-linux-musl": "03ea73844f2963e1716661142a15fc39b8dc026b2654ababe009d31df4e78363",
-    "rust-std-1.30.0-wasm32-unknown-unknown": "e85afbc075e162e9af71795e1dc81fa0d2cf657dd10b74751f1769585321a20f",
-    "rust-std-1.30.0-x86_64-apple-darwin": "33f4a7574c82db1b1bc3f829d0fecf9047bbac073c305500ada4aeaa08272ca9",
-    "rust-std-1.30.0-x86_64-pc-windows-msvc": "7b493d21ac115dc4a1ef85cf0d8e73f688bda065c3abbdf68ff3674c122fb9e4",
-    "rust-std-1.30.0-x86_64-unknown-freebsd": "4040fe677524e2ead69a2fcab4c16acaad3d4c4f1210ae36f400f82463bdfbc7",
-    "rust-std-1.30.0-x86_64-unknown-linux-gnu": "8514eedc0ed99ab75c61be3137c3e57c4115063ddc07aec842f687ebfc7ceda3",
-    "rust-std-1.30.0-x86_64-unknown-linux-musl": "c2fbdb20b81992220002d1c8a4b76b9363711370cc62a42811d2980f9b5c8401",
-    "rust-std-1.30.1-aarch64-unknown-linux-gnu": "64410910d73628a77dfe94dbcd0cd49709b518b5f641fbe4a2476b9af097d47b",
-    "rust-std-1.30.1-aarch64-unknown-linux-musl": "0bdcb6fcf904d0b047d75e0368caf1d29380c62ba5c54254ca8ad777e1e7b5ba",
-    "rust-std-1.30.1-wasm32-unknown-unknown": "0892ab95cdfb0bee3c9981e4a5c69a88c0fc5fb7e0c206638291e91a4c794ee0",
-    "rust-std-1.30.1-x86_64-apple-darwin": "a13d4a748914056f34c2e8691b4ca8ab6d16bb04e6e5fafc22ca594789f4e8b1",
-    "rust-std-1.30.1-x86_64-pc-windows-msvc": "177d887593e29847a1bb7afeb7924c3958248a9ec8604e66671d8036e8fbf9b1",
-    "rust-std-1.30.1-x86_64-unknown-freebsd": "66c91d14d8d3c1523f9b5c52b81e4293ba5378fcf8b3e5d0ed52e96afe6bdd31",
-    "rust-std-1.30.1-x86_64-unknown-linux-gnu": "12c4b164efed44c28096fcd141225ee9bf74e7e3395bc6a60c11c9115a0536c6",
-    "rust-std-1.30.1-x86_64-unknown-linux-musl": "1965d586f74bacb3b7332621c1040aa51efd65393da86da6c5296dafbe57602c",
-    "rust-std-1.31.0-aarch64-unknown-linux-gnu": "02e5b48d8fff293a95b591646e707a8c61399ab6c244508ed842f3d736ded641",
-    "rust-std-1.31.0-aarch64-unknown-linux-musl": "3cedc72a9754219f1684e7037ed10866f0cd756d6ecfaffcd2ef8d57374f85b0",
-    "rust-std-1.31.0-wasm32-unknown-unknown": "ff284b10844cdddca786d85fc3be48796f7286a14350e807fa9912e7748634f0",
-    "rust-std-1.31.0-x86_64-apple-darwin": "7dd4bea941cde8a5ece3286ed43733503c092a8edb50c8c31223a738a526c246",
-    "rust-std-1.31.0-x86_64-pc-windows-msvc": "625e1dbb5996cb9845cb6c779e4a6353faa1e05535471fc00aff6a6f84efeab5",
-    "rust-std-1.31.0-x86_64-unknown-freebsd": "3779f0732ee8fdc1d81663172a72219d59b716e8cc5a6b07bf1d5dd744f74b13",
-    "rust-std-1.31.0-x86_64-unknown-linux-gnu": "fe67a62c7a63acbf2458a36d7689ef41903187a472f0c28850f1fca7ea478da8",
-    "rust-std-1.31.0-x86_64-unknown-linux-musl": "f3bdef5a9e4974296965b36ced9fa3375eb9e3c3d51a305d64b9be47fa2ae55c",
-    "rust-std-1.31.1-aarch64-unknown-linux-gnu": "cc32d23cc2995c4838ab2ed4e709ca9748f13f912e9fbbb7cc78c41dbc4de268",
-    "rust-std-1.31.1-aarch64-unknown-linux-musl": "3d48648a2dad8fb6e7d4eed2d7df14eb20c79e654bc1fe666ab408cebc6e8b72",
-    "rust-std-1.31.1-wasm32-unknown-unknown": "a9b1774a6aed9387b12244d2ac0ea047506ffffee67cd834148f01c66ed24e98",
-    "rust-std-1.31.1-x86_64-apple-darwin": "91c3b12614f9795ef2e0092010f247a38d09c95d4089f75b44fad14679bd1cfb",
-    "rust-std-1.31.1-x86_64-pc-windows-msvc": "e84c961261fe70da68dc56effbb277eadeac51fb5bdd2287a168cbe2ba2b1a2e",
-    "rust-std-1.31.1-x86_64-unknown-freebsd": "89e551403f70eed976ac1dd91c3effc9434ef450da4c347d24a141529f83a101",
-    "rust-std-1.31.1-x86_64-unknown-linux-gnu": "699664b3a64959a2d75e486e19e7cc9934cbcbf2c57a977dd2a2b33cff367da1",
-    "rust-std-1.31.1-x86_64-unknown-linux-musl": "ea622d3bc171a23f704440ea99e96023888425d0c3d90bc6fcc592c17e9f8f54",
-    "rust-std-1.32.0-aarch64-unknown-linux-gnu": "346efe3aef2aff7b71a611bf7661bcec5f9bc4025a599c2866ec5fd330247cb9",
-    "rust-std-1.32.0-aarch64-unknown-linux-musl": "ca67a0ae151de83e077b95dfca459ca2445db461c7e6428c11a32e23e8ea9525",
-    "rust-std-1.32.0-wasm32-unknown-unknown": "5da2824a9404204ce2a72b44961e2dd8854fe2232f65851c1a8ff5c59ef537d5",
-    "rust-std-1.32.0-x86_64-apple-darwin": "b736d035a97f830585360e54e3f8877b68c942211cf0a75e805f34bfb36103a6",
-    "rust-std-1.32.0-x86_64-pc-windows-msvc": "cd9693213bcc2ca0ff1490861d3b52703b65df6f678c3f2ae9ad3f3717e08871",
-    "rust-std-1.32.0-x86_64-unknown-freebsd": "d50f674379791a93764d383153ed6533cea165ede7f233df4e17563bfdab273c",
-    "rust-std-1.32.0-x86_64-unknown-linux-gnu": "9f2705a3ed3217c13fd55569406c52f590030752f57520312e135223ae930caf",
-    "rust-std-1.32.0-x86_64-unknown-linux-musl": "d69a44623be904b48c72adbe0141401c4c1068b4a45502328f9e219e0f833c75",
-    "rust-std-1.33.0-aarch64-unknown-linux-gnu": "26f13cd80c95d484ccffecf517f1e05ce521072a00f1adea43d02b3f9d37f82a",
-    "rust-std-1.33.0-aarch64-unknown-linux-musl": "47c7ed55b77e161c9489ca903be32be80dd0efdf88d55f472bb54cce832629de",
-    "rust-std-1.33.0-wasm32-unknown-unknown": "ea1662a05f89f9fb725cba851f6636316cd80052fed610e4912432e4ee523db1",
-    "rust-std-1.33.0-x86_64-apple-darwin": "94247d4d11c631c9d4256f4b0aedd7fd0379fdb55174405c4c1c0dd0c40097ca",
-    "rust-std-1.33.0-x86_64-pc-windows-msvc": "36d94915b8aa9d3207d31ce77bbb790685cb8263920f0873875ae433fcb8709a",
-    "rust-std-1.33.0-x86_64-unknown-freebsd": "8eec7a21a3368890fdf0b826e7bc1928775724c0a4bd14d86304cc7e48309237",
-    "rust-std-1.33.0-x86_64-unknown-linux-gnu": "661c2ba717ae1502f002b4c6e7aeb8941685c7ea8fe7ac26ed9ede26f615b7af",
-    "rust-std-1.33.0-x86_64-unknown-linux-musl": "c3c0bf38140f7108705bbeeeaebd3dd9e23f556d36796779100c8ecf9142da7f",
-    "rust-std-1.34.0-aarch64-unknown-linux-gnu": "d175e91206aba9e2056a9c5af50f700502e70b2f8eb609854d660ac2f3bf1fff",
-    "rust-std-1.34.0-aarch64-unknown-linux-musl": "2b08cf5b0fdd2cd71e7aece36587fb4869e53faace966eaddb2e2c5fb908eb74",
-    "rust-std-1.34.0-wasm32-unknown-unknown": "4add0e23d048309cd284096c36342a6c2307a293072ced9fceeb6a2a48f3797f",
-    "rust-std-1.34.0-x86_64-apple-darwin": "f5a4fa8e86e1d4483bbe80d0adb08a7f5e466d8173bb5ea596ee698c75d0fd19",
-    "rust-std-1.34.0-x86_64-pc-windows-msvc": "3037d196ac175595de3ddb3c8d26e9795e1765bb083a33da30d2b6afb5b03e17",
-    "rust-std-1.34.0-x86_64-unknown-freebsd": "c012bcf9ee417308fb53b97e58d753f90699bd516bcafd6cc83d6f0a54423f3e",
-    "rust-std-1.34.0-x86_64-unknown-linux-gnu": "6565dbe18ee9fa972058b17744ec1129c4fcbf797443f2e16b999df3870d6281",
-    "rust-std-1.34.0-x86_64-unknown-linux-musl": "57e65e5679e7bc00a5bad52de0375f81f91f2f2c3fb1d25af626e4aa4510d80d",
-    "rust-std-1.35.0-aarch64-unknown-linux-gnu": "eee3c6a5c7ef5bc21b626ce350b0e1b02310e0463b6686683262f3fef400746d",
-    "rust-std-1.35.0-aarch64-unknown-linux-musl": "518ba1fb0c0020856eb06ecf3d4d11b94b2ffb0b5f318aac9e086be9b0be2ccd",
-    "rust-std-1.35.0-wasm32-unknown-unknown": "14f1640b35fe351dccd54fc459dea6b7ea199324a723e6d3efc42d519adca99b",
-    "rust-std-1.35.0-x86_64-apple-darwin": "93a640d065d761b85b0f770dfa865b2f86a671a7fac0d5079e4cdc9e4e031011",
-    "rust-std-1.35.0-x86_64-pc-windows-msvc": "2d9091b4a78d7f86b9db5d086b0eebbc2afad4bf828cfbc4b2cc44af86f52210",
-    "rust-std-1.35.0-x86_64-unknown-freebsd": "22e8a2deb83dac920237f810b612b7ea555b03f5830f413a94d007ec683de519",
-    "rust-std-1.35.0-x86_64-unknown-linux-gnu": "5dfa92661ff1a22680785bd6999b6117ae66841e2bd9e5318eb97002956131e4",
-    "rust-std-1.35.0-x86_64-unknown-linux-musl": "c9ac131020d4a422191f1e55c66ca5b1bf1b768180cbc2e717eefefec049bd37",
-    "rust-std-1.36.0-aarch64-unknown-linux-gnu": "22bfc32b5003c3d5259babb202f3f66be16fa6f3c75c20f429a16d7ef5eb1928",
-    "rust-std-1.36.0-aarch64-unknown-linux-musl": "42778ab5f87d2dbfc6849fcf0c6e0a3760b18e8c89385130da0a1953d5fed147",
-    "rust-std-1.36.0-wasm32-unknown-unknown": "7fc1d9f19f6674f73fb89c24aeb741adc59896da6d7ce2e16317aa1fb084bea4",
-    "rust-std-1.36.0-wasm32-wasi": "382dd29fa294ef53272984b9121e07d2b50cc131c561bb7ab72bdebda3abc031",
-    "rust-std-1.36.0-x86_64-apple-darwin": "7c6806809e010e5fba1780007ecff5c31f0ad2fcac1b414b98ca3baa0fb41b36",
-    "rust-std-1.36.0-x86_64-pc-windows-msvc": "2ef035a156b7f20a06677f3873631833afdf9cf755af3fc9466c02d9725755eb",
-    "rust-std-1.36.0-x86_64-unknown-freebsd": "a2a923cbfa3481af66c22673cac38e7cb70e26333318ad59c27b8b6ac16a84fe",
-    "rust-std-1.36.0-x86_64-unknown-linux-gnu": "f92425592c02d4681a5c5ae43ac3ad7ddcc218da50fc651ddc5c2240843a7f31",
-    "rust-std-1.36.0-x86_64-unknown-linux-musl": "4d36e7b52839cff72481b2b1858417f382be36ffa5f084f72f35c1a9117c94ea",
-    "rust-std-1.37.0-aarch64-unknown-linux-gnu": "60d64dde9178fdb698b44315b182375916116e30f5fe7f0d8278dd62eb15e7b3",
-    "rust-std-1.37.0-aarch64-unknown-linux-musl": "68db64972c1af5d4d0c4b3d62b644d158df149eed4197e1c26e93ae4a81e4860",
-    "rust-std-1.37.0-wasm32-unknown-unknown": "b55f82540aa900d2d1d1f6879c9374a8efc78d9eeb20af181ee30182b7f9688c",
-    "rust-std-1.37.0-wasm32-wasi": "551ee5f9adbf24c637e914148c0f161e9e2175aa7d39e5b486d1dd817fb47dec",
-    "rust-std-1.37.0-x86_64-apple-darwin": "0b3fe2575b55a739f409a9d76d05c4bb32494691bde5043d77ba4d39ac182f20",
-    "rust-std-1.37.0-x86_64-pc-windows-msvc": "e03f363296cd60e93110db517f3804631e49fd91de7c0d77b229e31b1135dff2",
-    "rust-std-1.37.0-x86_64-unknown-freebsd": "8783a667ea9c46f27027d494098c51563faa734c5ddb23c6b9b3eda804eb9742",
-    "rust-std-1.37.0-x86_64-unknown-linux-gnu": "09a531a97a16701eb794ecbeeded5d8f8da33da7f1bd372661ad385e3f31c048",
-    "rust-std-1.37.0-x86_64-unknown-linux-musl": "fa1d98bf18fb49ff58a70d51ff7924e4d1975f7812dc5217ea31652bf8b7bca4",
-    "rust-std-1.38.0-aarch64-unknown-linux-gnu": "0725ae9f55639c648fdaba06129de395ed839a7d1aab6aebfd21f26cbe1ce7ca",
-    "rust-std-1.38.0-aarch64-unknown-linux-musl": "56268f0c7c93a4f3436aa20af75e80e29e7d651c754b076c64f13219f2e6be8a",
-    "rust-std-1.38.0-wasm32-unknown-unknown": "9634130c797e8c1fd1d7bbdfd48a32e85e2dd3512ffb2b51974374308cf581cf",
-    "rust-std-1.38.0-wasm32-wasi": "becb178cecc2d2137e006c24e6988d79390f96dcd65cc2e8b2f475a8fdab4bfc",
-    "rust-std-1.38.0-x86_64-apple-darwin": "b1a986e8676aaed25959e9f6dd7c8c5aa67fb829d0d694edea34d8169658a125",
-    "rust-std-1.38.0-x86_64-pc-windows-msvc": "3f5b3c9a4f9015c9e1e12eed94752129d80448ea53f9d5ec1e332c2ffa2c4807",
-    "rust-std-1.38.0-x86_64-unknown-freebsd": "9f1d88449ef56c31ebc514873ba4d5889fa12697c4c2ea1071f15127f301ac4d",
-    "rust-std-1.38.0-x86_64-unknown-linux-gnu": "cd50ec3384d79aae89ffdacf09715b68b1b5562657e993f26f67b9458e92dfdd",
-    "rust-std-1.38.0-x86_64-unknown-linux-musl": "56b87fdca1f41b634285593cae42fdbd5fe9632ef502336679362b283ed53c22",
-    "rust-std-1.39.0-aarch64-unknown-linux-gnu": "adbecacf6cf0ed19df2496cc648b16192c0bd085d7e6f670edcea4dd28ab37df",
-    "rust-std-1.39.0-aarch64-unknown-linux-musl": "1d4a3640fa6e696180848ac2eb10ccc7904acac58784b27e5fcd8a79b2cdf0fa",
-    "rust-std-1.39.0-wasm32-unknown-unknown": "654905b39eae031282a9db9bfa47504c23aa4bbc7d22b769b9bd2f6ca8b61cee",
-    "rust-std-1.39.0-wasm32-wasi": "e7f008fd1f7c902f5ba7777d8a4346783392bd40813c79381bd7497fbcf19be0",
-    "rust-std-1.39.0-x86_64-apple-darwin": "ebd058b16590e2c1a73f5de59d169c8c11be6014934cb083afc84accdccd40d9",
-    "rust-std-1.39.0-x86_64-pc-windows-msvc": "cc704f4c26d5e215a8d98d0797a766fad959101776db69bb392317becd7472ea",
-    "rust-std-1.39.0-x86_64-unknown-freebsd": "94a71addd6983ae844be1cd403926c947766b72f032a083fd1be73f18cf329d9",
-    "rust-std-1.39.0-x86_64-unknown-linux-gnu": "2ddad802f048acaa5cd48f1105c18c7f4de32dc9569ac4d64bfcbb3d8c155cb7",
-    "rust-std-1.39.0-x86_64-unknown-linux-musl": "9c6b49e161e53c174b4fd46825a96b78854cfbcd0971ce846d4edd33c2b5f275",
-    "rust-std-1.40.0-aarch64-unknown-linux-gnu": "e1a1bc577d51556c53e39d4f11fb4918f0ebf27e166ff63321b2991754706d16",
-    "rust-std-1.40.0-aarch64-unknown-linux-musl": "5a269c83446da52c824b3c2047d66540f524e79901ac09b2ac80900a692849dc",
-    "rust-std-1.40.0-wasm32-unknown-unknown": "e3f68aa04c97fb8f5f595d47f417221afb4b0c49d177a2cde7935e3afdd45947",
-    "rust-std-1.40.0-wasm32-wasi": "814d780d7296cc8a8969536f99e8b591fc68d9290e399f01c59cf86d32303718",
-    "rust-std-1.40.0-x86_64-apple-darwin": "1eff41b353403cc284a09debb00cfd41d663447eabf5ad2d4cf736c8c8db0458",
-    "rust-std-1.40.0-x86_64-pc-windows-msvc": "10685476cf7d68e56564730a7d553bacd924717b9272875219da7b9f5ad6704d",
-    "rust-std-1.40.0-x86_64-unknown-freebsd": "90a41f80e2501ac2b036b7cdf269db19a5204aeec257bd585074508f1a6ba2c9",
-    "rust-std-1.40.0-x86_64-unknown-linux-gnu": "735affaca1370699f9bc3fd7b1320694afd250923d283d88c842b7913a97d083",
-    "rust-std-1.40.0-x86_64-unknown-linux-musl": "1183b1f698716409be6b48c8f98109723b5e9f5f2cab6c20f73d0b281c63aa80",
-    "rust-std-1.41.0-aarch64-unknown-linux-gnu": "59b8dab431af29dcd28c6e92e82a488ebb20dbb5dff93ca14119ba8e2fabd9c8",
-    "rust-std-1.41.0-aarch64-unknown-linux-musl": "775a256864417d93d20ae106b775564051be888a78e77a6a88c67ac86e401059",
-    "rust-std-1.41.0-wasm32-unknown-unknown": "0974d40a9f54bd9dda88c20ffa1778fa90ee77a549a8f30ed13477b55e142a63",
-    "rust-std-1.41.0-wasm32-wasi": "e50c63deae8a8bc81d438f73bc885e5de7fa282784171b53e3eebf8f41d8f7d1",
-    "rust-std-1.41.0-x86_64-apple-darwin": "c917af985d879376d8906e7c81ceacb06e65ea7b229ccf81505f8bd6cf5abf64",
-    "rust-std-1.41.0-x86_64-pc-windows-msvc": "aee5b98f0ac533471dc3d9ffdf6fcb22565c44d80c03c1c4df0c8b714931d1a9",
-    "rust-std-1.41.0-x86_64-unknown-freebsd": "4436e80598592398724daf0efc33b2a6505bebde59c021d3e894d605ae5255dd",
-    "rust-std-1.41.0-x86_64-unknown-linux-gnu": "b563fc979eea8372f5b371e10f0857e79cdffc34b124c7a7b0d89014d1b351b7",
-    "rust-std-1.41.0-x86_64-unknown-linux-musl": "6df5f52b7acb58d2123f2a6596741ae1857921ec747087bbd0b0cdf4cec5e369",
-    "rust-std-1.42.0-aarch64-unknown-linux-gnu": "1343f51fc87049327233cee8941629c3d7dfdc425d359385f93665de3d46711b",
-    "rust-std-1.42.0-aarch64-unknown-linux-musl": "77dd67761c8e2e17aaa837b714ddb9dd4433272b6b2980fa327faf23a6fc5bc1",
-    "rust-std-1.42.0-wasm32-unknown-unknown": "695439ef4099f2a1da7c9932e556b3985f4ede5b27e6ef260d670bfe4bc3894b",
-    "rust-std-1.42.0-wasm32-wasi": "077bb250b6df47f1350ea875645fd388d3e6df69830ab49627fe6f6bea5887ad",
-    "rust-std-1.42.0-x86_64-apple-darwin": "1d61e9ed5d29e1bb4c18e13d551c6d856c73fb8b410053245dc6e0d3b3a0e92c",
-    "rust-std-1.42.0-x86_64-pc-windows-msvc": "192d8e1277280df261bc917d1dcc8225b5fb507f281d05bbcf85f859679e1429",
-    "rust-std-1.42.0-x86_64-unknown-freebsd": "76e0f0f7275e114908b0ce2bf39813eaa580af92cc1fab31496ca37ba9d5703e",
-    "rust-std-1.42.0-x86_64-unknown-linux-gnu": "e6bf5495a8b1cfb849fce2753404b3b7ce7fba0c5d743d940fac3ee4558fda26",
-    "rust-std-1.42.0-x86_64-unknown-linux-musl": "c426957a3f2e3d51ee91b996c2c6b21a10d4ade7fb6b7c64d6e2f7100b6b994a",
-    "rust-std-1.43.0-aarch64-unknown-linux-gnu": "f4b80b12ecf14e97937cd24573e82f306f147db6266dc5a2cb27aaeaf49398a7",
-    "rust-std-1.43.0-aarch64-unknown-linux-musl": "5cc80aa5b5cf6dd40a5252de6c2d2cceebd930b80b02bdda7442f93ed6539a55",
-    "rust-std-1.43.0-wasm32-unknown-unknown": "efe2061e7b9711f51b560c7770ebe372003beb9beddb363f27c3960ee12135cd",
-    "rust-std-1.43.0-wasm32-wasi": "6ece090d05853a54bb7f6e4985840cf01dc4857eda0f375bc8e35846d1d533e9",
-    "rust-std-1.43.0-x86_64-apple-darwin": "c75d37579b9e143ebd98ae2fe42c818fd47e0a2763b2a9bdd7e6b9954509d735",
-    "rust-std-1.43.0-x86_64-pc-windows-msvc": "008ca995f429410248558cbfb0e77ebd062ca709a9e3a7d58d9f81c491395280",
-    "rust-std-1.43.0-x86_64-unknown-freebsd": "3c9b450b826874be5c3f35f7cb923f02d4769b81f763fef21c9c0d3a80532c2c",
-    "rust-std-1.43.0-x86_64-unknown-linux-gnu": "84fd8ddaaa217b82c563d4a32a690da2c399388258a3d2baf180992c21938af5",
-    "rust-std-1.43.0-x86_64-unknown-linux-musl": "496efe781a68c1ad75bb16e72b383fdcb9bf28ce448019dbf1ab4742fd4d4299",
-    "rust-std-1.44.0-aarch64-unknown-linux-gnu": "fafb49cc7264a8621c17e8954ec2e0a78e097395b285edb5c1639c61ffb8142c",
-    "rust-std-1.44.0-aarch64-unknown-linux-musl": "b32ccb5a8bf7c3ba9e7295e2986acad87c0eab9eff98a98f4dd3eaa4c8b74405",
-    "rust-std-1.44.0-wasm32-unknown-unknown": "8e12796a0c2fb083953042218f832bdeb78da1bfaf67b9dfe3d719920084d755",
-    "rust-std-1.44.0-wasm32-wasi": "ac0ffeb48bd4be6dd460c5665fc52bb4da2be15e5ecdefa4bf73c6db7392759a",
-    "rust-std-1.44.0-x86_64-apple-darwin": "af58f742764949765e09bb60bd1c16025a79a1be8152996fd5b3a44e5df90311",
-    "rust-std-1.44.0-x86_64-pc-windows-msvc": "1f52376c9a48ce76b24c7aad7a9817b0b4b2cf11a8581001c8d76285d9593340",
-    "rust-std-1.44.0-x86_64-unknown-freebsd": "a0315d028e72e221291dba257e8212e564574d87362cb07e06dc15950d1e6788",
-    "rust-std-1.44.0-x86_64-unknown-linux-gnu": "3b7a4eede0ca550c256ca6721877de0154c27e71196d8b9a980a480682ead0aa",
-    "rust-std-1.44.0-x86_64-unknown-linux-musl": "220877112bc1dafdaa1760c3d1c5b3529766faaa1e969d1a99d27648d3bf927d",
-    "rust-std-1.45.0-aarch64-unknown-linux-gnu": "816f6cc132db84617bfde6ad47336bfb020552a45bd0a10250c4e420d512d5ad",
-    "rust-std-1.45.0-aarch64-unknown-linux-musl": "c37bb023f496161ef3238f37b44606a93e15af225d70d3083bfd52e7f8fdd36a",
-    "rust-std-1.45.0-wasm32-unknown-unknown": "1b4f40be1d0f18a5a04f9f706fef74db0e299046557a706a4dc31a2b36d8de21",
-    "rust-std-1.45.0-wasm32-wasi": "1ef0e8e09ad39275a188bc88d4969c4d1e150cd728d9ff5955b42d6a643ac10c",
-    "rust-std-1.45.0-x86_64-apple-darwin": "e3ac5a3efc106ea13687aa1231609a5d61b1874f4b3a2f68b0e0ad70c89a2364",
-    "rust-std-1.45.0-x86_64-pc-windows-msvc": "f638c04f6709382ded2e78aebff03ae5e40e074d003786f083e6e3ccc438e0b5",
-    "rust-std-1.45.0-x86_64-unknown-freebsd": "68b28ad5488bfb051589c7079bdfa396aa42c29d463a5622fb5eb9d6ecc4a8e6",
-    "rust-std-1.45.0-x86_64-unknown-linux-gnu": "7ab1dbcdeab16dfea1ed024675e60429db9719f03648e6a09662de72b4ff730f",
-    "rust-std-1.45.0-x86_64-unknown-linux-musl": "f54b23b39308b6049644d0c8ac625724911ab423d09ed43dcbc52489b7636ea7",
-    "rust-std-1.46.0-aarch64-unknown-linux-gnu": "eaa7cfd73e96b6ce03498398f4bd9ded73870fe3c5db980038a4863c37157597",
-    "rust-std-1.46.0-aarch64-unknown-linux-musl": "5ad254082e3af2d301d3dd2c9af90942cb91eecb293f86778d163a75cd6bafd1",
-    "rust-std-1.46.0-wasm32-unknown-unknown": "0ef3344aff8ae3f2065ed8f15daa73514a26f934e160cb6974d43a8231fcc090",
-    "rust-std-1.46.0-wasm32-wasi": "44a37dfe4398e1c120a199b2ebbe86838171c38a29a0f76e10ede00bf1aeb16f",
-    "rust-std-1.46.0-x86_64-apple-darwin": "8c897982bc38c9528b448fe551f089fee7716e692dece98052f4459ccc6e591c",
-    "rust-std-1.46.0-x86_64-pc-windows-msvc": "06d92b12e2f4e6024971e99a7716423d4738c3e379fc82aa54de2a812de268b2",
-    "rust-std-1.46.0-x86_64-unknown-freebsd": "e37c06bbe2bf2501675101787388ab87d510ef80f2e091be3f50fc5d019add1e",
-    "rust-std-1.46.0-x86_64-unknown-linux-gnu": "ac04aef80423f612c0079829b504902de27a6997214eb58ab0765d02f7ec1dbc",
-    "rust-std-1.46.0-x86_64-unknown-linux-musl": "cc28b7807ceeb5a7f162edb933d825ed5f5880a45a2e920e1f1a846bfdc1b1a0",
-    "rust-std-1.47.0-aarch64-unknown-linux-gnu": "0019c302a0a02d8a9e40c3bcdd5a31b9b2704161563d72df3572521989182b0c",
-    "rust-std-1.47.0-aarch64-unknown-linux-musl": "69e27f17038a4eb99fe43781f0ca6432f64802bb24fd08fd4f2b90dc73987396",
-    "rust-std-1.47.0-wasm32-unknown-unknown": "b0d19ceb2b56105ee3407bdecaa779747abb1574990632e53a2aba681e964187",
-    "rust-std-1.47.0-wasm32-wasi": "0eab479faac83b9352af04ba4dea376fdeade3101f5e912f40ee3c93e32d1317",
-    "rust-std-1.47.0-x86_64-apple-darwin": "6b86bcdad5a6eff87a67b6387051d7f10a48e088b8f92d76869d201500b9ce13",
-    "rust-std-1.47.0-x86_64-pc-windows-msvc": "896614728a21128c335f632f2f45217320974f71cb4c7c23184610f0b587b7b5",
-    "rust-std-1.47.0-x86_64-unknown-freebsd": "80f5dee782bd74b41c55a676c624ce2260ab54c834102c90ea54e0c5e7e513c6",
-    "rust-std-1.47.0-x86_64-unknown-linux-gnu": "17ecad27d96b331608e4a96dfa3cad05ccb2ccecb888894ed35054e0d1f5207f",
-    "rust-std-1.47.0-x86_64-unknown-linux-musl": "fe4d2ee953979abd09aedaab25fa2ab646089caa6fd4ea9c78486a819729d777",
-    "rust-std-1.48.0-aarch64-unknown-linux-gnu": "3b0e5c4d03ddb97cd462947c539005427813f5ba91be81888db77e7d4bf36e45",
-    "rust-std-1.48.0-aarch64-unknown-linux-musl": "29be0b241bd14651bf9d470a9766000b424a112a0b4a6160f422b075e4668c4c",
-    "rust-std-1.48.0-wasm32-unknown-unknown": "6f981b353e096b8a54c86e6812c82db3b5fd45335b575396e3bfc29b03ffe959",
-    "rust-std-1.48.0-wasm32-wasi": "ed57645e5fe429ef99018759e1a89e090220a3197f30ea544070610ef73c19aa",
-    "rust-std-1.48.0-x86_64-apple-darwin": "430d0ca7c04b0e1140f39f2274e0072a3ba2373a99a230d14ab16361e19b6129",
-    "rust-std-1.48.0-x86_64-pc-windows-msvc": "a526c6f6c00d6a0cd4b6e3348e6329d204099983672862249593ba932b5ddf28",
-    "rust-std-1.48.0-x86_64-unknown-freebsd": "a5ea4ec9664f38a2464216031eeea01f723b4e0691f7d473d8f7ab663551f979",
-    "rust-std-1.48.0-x86_64-unknown-linux-gnu": "2e7152e5d24cea7e44e6645ebbc0387cbe1c7059b54d95d8ea3afe298ac8b2fc",
-    "rust-std-1.48.0-x86_64-unknown-linux-musl": "1bf2a0cfaa3e0cf8f743a48802c91d641a3289dffa1c44d7dc5365b68c8739c4",
-    "rust-std-1.49.0-aarch64-apple-darwin": "cf3308806fc3b6fe00ce49f1e63b1cb1d1443cc812eff7947257f31f590465d3",
-    "rust-std-1.49.0-aarch64-unknown-linux-gnu": "c58bd4f0738ff662f70e35c19bfa6b8eb12ad54b0fbdce32ee3e50186c04a969",
-    "rust-std-1.49.0-aarch64-unknown-linux-musl": "bc5501347598f48f55ba23011602a8fc1fe156c23c1c7b4d449c84eddd64d4ba",
-    "rust-std-1.49.0-wasm32-unknown-unknown": "803b4bd43c711753e3e73c210b88a30c4cfe6f3955902d76e2a15a70ad191ffd",
-    "rust-std-1.49.0-wasm32-wasi": "0c97a1f8470719b741186cbb89c4be6a61057fa013d815b2b97fc1043e269d22",
-    "rust-std-1.49.0-x86_64-apple-darwin": "c4389a8534b8da3ae3570646d68fea9a25268b17ed138867e31d4517312759af",
-    "rust-std-1.49.0-x86_64-pc-windows-msvc": "bb55ad626b9d304c0e080fc8731c7978a937c98e873a84834925c525acdbb5e3",
-    "rust-std-1.49.0-x86_64-unknown-freebsd": "ba97f1d751d6656d5efba4b0278a6571e6a56a489670f279bd2c647a90f1679c",
-    "rust-std-1.49.0-x86_64-unknown-linux-gnu": "f0d2c2d509c29ea9f7c24bb5a885321030281631e0bde0714e5cf881184d57e2",
-    "rust-std-1.49.0-x86_64-unknown-linux-musl": "07d5ebdb6c391631c168deea21c7f4d538ea93c86c2e5e1968508e90835c14e9",
-    "rust-std-1.50.0-aarch64-apple-darwin": "8a1cda91afd3a732d3737b6f933b0b6065949dd8fbc820245a7e2a97ae9a7711",
-    "rust-std-1.50.0-aarch64-unknown-linux-gnu": "83aeff923faa528e2ff5b582e4c3bdaefeda34078345e48878eba6ef95d41040",
-    "rust-std-1.50.0-aarch64-unknown-linux-musl": "fbfa90f58d9c96f91937666ff2495345f564955442109833189ab7dbb0facd89",
-    "rust-std-1.50.0-wasm32-unknown-unknown": "6b639eb5b07e1fee82e58e4fb74b2f40f5c76b02384d27f9675692a7e9656bf6",
-    "rust-std-1.50.0-wasm32-wasi": "205216840a1c286523342adc5c085819e8a4fc6de55efbfb70dc691a463fd8fb",
-    "rust-std-1.50.0-x86_64-apple-darwin": "a291354e78e8147b22e92c817a0dfee8d3342e07bfafa73a2904a1c99d22c5b8",
-    "rust-std-1.50.0-x86_64-pc-windows-msvc": "48e562e1de58bd45aa0d8a95173e159c588ee76b0164affdc0140c928b1994c1",
-    "rust-std-1.50.0-x86_64-unknown-freebsd": "b9b543a310adef1e8432f7edea63b684369b30dad1c30aa12a57ccdaf8ae0224",
-    "rust-std-1.50.0-x86_64-unknown-linux-gnu": "2aaf284a204d605f6685d2000cf83c25d0e1c789093009801ca16e1c659ae8c6",
-    "rust-std-1.50.0-x86_64-unknown-linux-musl": "f8924ff7378552c2f16faba6aea178c1b098f4cfcb07247c7c58533543980594",
-    "rust-std-1.51.0-aarch64-apple-darwin": "b9ed9468652417b375d24152eed9b87436f1ca0ad0311d8a1a802fdde263bdad",
-    "rust-std-1.51.0-aarch64-unknown-linux-gnu": "a6ed4abe59dfaf2119e2803f67fd8aef757a622ae3ac9a040946af2b02f4c269",
-    "rust-std-1.51.0-aarch64-unknown-linux-musl": "9c0dcae82c10d52d202052fa0fa912cd7a21dd286de01717f70e24dfa20a5b03",
-    "rust-std-1.51.0-wasm32-unknown-unknown": "27f4455f01911c2fa1a58cd2fdb3bf5699bf1521cbd462a457c4a1ccb8650e38",
-    "rust-std-1.51.0-wasm32-wasi": "6e96fef8f132934a37169296e7bd13e64ee73679014b47e7bdc399add9b10007",
-    "rust-std-1.51.0-x86_64-apple-darwin": "2856bc46d3624ae2658897c15388c0c353bea916963a2fc5991c23b920d5678c",
-    "rust-std-1.51.0-x86_64-pc-windows-msvc": "0e9300e21b61ec1adde0b48772a76f1c881015cf1e7885b641dcfa1dd8289e55",
-    "rust-std-1.51.0-x86_64-unknown-freebsd": "4d03de5911c533cd0ac2ab5ea9b9105e853ac0ee0f6aea22b6714a7dbe008f01",
-    "rust-std-1.51.0-x86_64-unknown-linux-gnu": "5e7738090baf6dc12c3ed62fb02cf51f80af2403f6df85feae0ebf157e2d8d35",
-    "rust-std-1.51.0-x86_64-unknown-linux-musl": "8e23cf075b514633226e73786bbcc0907853a2e9cba98ec208ca16ba3847b834",
-    "rust-std-1.52.0-aarch64-apple-darwin": "2bf799c9846c9e6308d777d30f38a54acde53b690bd12324dbba3e3b12c44822",
-    "rust-std-1.52.0-aarch64-unknown-linux-gnu": "f16adbfc562875aad7f6a4c9111519ee27eeca804fa575f8d274bd2dc1efa41a",
-    "rust-std-1.52.0-aarch64-unknown-linux-musl": "54d9f39a8a2ebcdec83b0102eac209439f846248cd6b9919421a51448b757bf0",
-    "rust-std-1.52.0-wasm32-unknown-unknown": "d4b059dd880b7c2418c454f6ff9b87f075f8634364d86ade1f4131083951592d",
-    "rust-std-1.52.0-wasm32-wasi": "37a48c39b8a5c41906b003dd803d5d4679a1321c0dd36c222e74b3384592a2d5",
-    "rust-std-1.52.0-x86_64-apple-darwin": "dfab59a96112512f8b3f6550ea932bdc4f09b0c0659545a938dbc334e96b9515",
-    "rust-std-1.52.0-x86_64-pc-windows-msvc": "28adfe2d59d37f179d82fa0ad9b2d0308607abd6c05de0f17458625d83997930",
-    "rust-std-1.52.0-x86_64-unknown-freebsd": "e721b2acb871722a0c36ae2e9d8d97a2ee8175c9c2e3cb80238c662be401b3e2",
-    "rust-std-1.52.0-x86_64-unknown-linux-gnu": "dcea50e20596a698bf534d37f28cabbe6ca6fa31bee9c4c186b0874d1d67d4ed",
-    "rust-std-1.52.0-x86_64-unknown-linux-musl": "6d9883520f6d3cc540114a0246849234a6f801bdfb0346340426b02f4c677063",
-    "rust-std-1.52.1-aarch64-apple-darwin": "3b8914c1e9a51407690661032b059fb87482e93f10f2160f3b042ecc4cb97c38",
-    "rust-std-1.52.1-aarch64-unknown-linux-gnu": "b87ef86a241626cc86bf98fa0e70483f96d1bb9bbb4da7d9c589ac2094393a8d",
-    "rust-std-1.52.1-aarch64-unknown-linux-musl": "fe8091e71cde5e3a344d204a6627765ab79ccf19321348dbfa27768ac5f2abf9",
-    "rust-std-1.52.1-wasm32-unknown-unknown": "83953390e0d1e99cd6572e825888020f91d095b07eb744539a59891837b6fe9b",
-    "rust-std-1.52.1-wasm32-wasi": "7f90fb6336d679ddcce034201645f254d8b97c6352926f5122e38329fd6e1aa6",
-    "rust-std-1.52.1-x86_64-apple-darwin": "3567ec015a498b8d5c6e8f47aaa3ec469a418ea0e0f163249e825ef24457e38b",
-    "rust-std-1.52.1-x86_64-pc-windows-msvc": "ca95b1ddeae98af71439574fdd9fd9b233ffaea7792c1b654c212a1821d33986",
-    "rust-std-1.52.1-x86_64-unknown-freebsd": "5ac8a9dc61421dc4f39380a5d4380130fa176047eef48b3aba205103363b9774",
-    "rust-std-1.52.1-x86_64-unknown-linux-gnu": "ba9cf6570d509b3e4c4d821db4caf304f2ffacf5377b7ca55dc1ef9788ae5b58",
-    "rust-std-1.52.1-x86_64-unknown-linux-musl": "1f3155180a1a143119fd7b1eae3eeed0a0758ca095fd6533918d87cefeb93fe0",
-    "rust-std-1.53.0-aarch64-apple-darwin": "a6191c9b5adab64832c0e0c0ea24f64b32db07ac5f56faf21239055ce38041ed",
-    "rust-std-1.53.0-aarch64-unknown-linux-gnu": "9e5c09d14fec5609bfd042299900f20a44c52d53c64e76e184faadf67d07590d",
-    "rust-std-1.53.0-aarch64-unknown-linux-musl": "7501cc0787a63e550f9918dc5d23ee9fa9f3f3162088b33213694be2d6e2aa32",
-    "rust-std-1.53.0-wasm32-unknown-unknown": "d9539af508a484d7da6b9683aaeb9b50ca63730a14c90837100d668c2591a697",
-    "rust-std-1.53.0-wasm32-wasi": "e75188931308e2dbd6cf85c802d28bbd175a0696cec241b134c17f2ffdfcf10d",
-    "rust-std-1.53.0-x86_64-apple-darwin": "ef9b2d8b467a29c8d5621ca804dfd6b9eb38ceae6ed86c763ddece0a38714697",
-    "rust-std-1.53.0-x86_64-pc-windows-msvc": "b5dc9771dd9b8c2a9fb10769e64c962cea01cc3e0b0057b78ce8a9ba0477a4d0",
-    "rust-std-1.53.0-x86_64-unknown-freebsd": "238bf461d866b5ef4614609462356304eb0225b0c61668d51a7b1844561df845",
-    "rust-std-1.53.0-x86_64-unknown-linux-gnu": "b3428b9ffd5a8f8f13506eedf2fc865665a53894408f0b64314686e8a08d06b2",
-    "rust-std-1.53.0-x86_64-unknown-linux-musl": "e91abd171f35951f1fc56b10af817c9e83833eec5c3712dae8bc1e5e63cb7100",
-    "rust-std-1.54.0-aarch64-apple-darwin": "469b832c7d33c1edfefe705a2ad27172f6906a73b56be789fcc30629792f75b4",
-    "rust-std-1.54.0-aarch64-unknown-linux-gnu": "2d90cd90734a2d057b2a4eeee36a72d96569fb5fff0ac1e22eeb5fab93e66848",
-    "rust-std-1.54.0-aarch64-unknown-linux-musl": "4c689f32444afa8faef2f7eb896b59f76827e9950f795988d626c9e4552e3d4b",
-    "rust-std-1.54.0-wasm32-unknown-unknown": "6e454b700234a0b33df15e6936c1c27c643101a3c4253f5e41b8e8a48a9f7ab2",
-    "rust-std-1.54.0-wasm32-wasi": "052220fdf7ea1988b6cc6445f8ea58d2c29335feb442842014f161e618534331",
-    "rust-std-1.54.0-x86_64-apple-darwin": "3908ff438cdf39c3f46a103f3a0fa04a0d8add996c87e4290c80f1a766df6a04",
-    "rust-std-1.54.0-x86_64-pc-windows-msvc": "13f7595449308c4ffe79a6111d5fd2e7a4c6a56174d6c295437676e29951ce90",
-    "rust-std-1.54.0-x86_64-unknown-freebsd": "f504cad489fe606dd1a7d064253d6e0d0e5450674cfd941b8f848953efce99e5",
-    "rust-std-1.54.0-x86_64-unknown-linux-gnu": "487c51ac97e7f7deceae904b70e9bb031574dbeefe07b39b24e3fb00740962eb",
-    "rust-std-1.54.0-x86_64-unknown-linux-musl": "7cbe73472390e0e63d1812dd86d5024350e0e8dae36a6bf52585ad0136148818",
-    "rust-std-1.55.0-aarch64-apple-darwin": "bd364710331b34f454258b73e5cfc0583d3c0763ecce0994d8a990c1847604a4",
-    "rust-std-1.55.0-aarch64-unknown-linux-gnu": "e30063a259e32cd0e31baadcee82112ef840e0f654d5128dd79fc715ede92058",
-    "rust-std-1.55.0-aarch64-unknown-linux-musl": "f540bf8238b46cefc5490eb6e626f8712ff5a49d8fdb7e75e838a5c1e1b3046d",
-    "rust-std-1.55.0-wasm32-unknown-unknown": "275d7a1032f709d186bb8bd66a96f17f5c8d6c1a4c3b51b7ce60a4f3dccefdf4",
-    "rust-std-1.55.0-wasm32-wasi": "69696faaa29bdffc58a71707a4547a85a09199218411302afa7554073357f576",
-    "rust-std-1.55.0-x86_64-apple-darwin": "8888fb0a1cbc645f86e1551d27cc127697361fecab9cd414691e434976412733",
-    "rust-std-1.55.0-x86_64-pc-windows-msvc": "8507fe0f2059d68bc0cfabae1cc96cfc3d0357f04522942c5d4fdcdc1cbc23a8",
-    "rust-std-1.55.0-x86_64-unknown-freebsd": "522f4f75c50a0fde08d6235ed80c7cac30c922943954aad1e7c154cd8762ddd3",
-    "rust-std-1.55.0-x86_64-unknown-linux-gnu": "c07c5ce96b86364601c0c471bb85105e80a5e345b3e4b3e2674e541cc2fdefcf",
-    "rust-std-1.55.0-x86_64-unknown-linux-musl": "357b8f56ffa3858e2f32be837bd84e3d89403f17c55bf0c105f34a0b796bceed",
-    "rust-std-1.56.0-aarch64-apple-darwin": "88ae1a2da1c7bbabeab3bce392ed9cdf1403c1f6cef5a8bc9a6813e480127fc6",
-    "rust-std-1.56.0-aarch64-unknown-linux-gnu": "061c8a855696b3e23fb48ad69aa90e70ead825825e4cc02374d3cb1df4486258",
-    "rust-std-1.56.0-aarch64-unknown-linux-musl": "2a83ec23e14e0b578b636c3c95283c92fd034e8b56a564c043db3f8b746eeb2e",
-    "rust-std-1.56.0-wasm32-unknown-unknown": "3e0f1282549f09f9f9062f8fa8ca197eba5407c4422378688d78075bdfaf3358",
-    "rust-std-1.56.0-wasm32-wasi": "f819c096dcfc3fd0466eff346ea4291fe0ef86a08529b9be6843017c79256237",
-    "rust-std-1.56.0-x86_64-apple-darwin": "58c6fad6f09706f2940cd501a1d0dbd984ce4926000009aed313dd2cd3c1a7ad",
-    "rust-std-1.56.0-x86_64-pc-windows-msvc": "7d3961a5115f29738061d9c22e2472082a5e2de7bfe550a04a22180c3caa472c",
-    "rust-std-1.56.0-x86_64-unknown-freebsd": "e059d39f15cea58fd89d860a06504f48234ae2aff2c1eb5e4463b50367827ff7",
-    "rust-std-1.56.0-x86_64-unknown-linux-gnu": "3c314efa230f95f5d9e3357e5f915a4f40d2a21b10ba7b92fcc9036cbcd9fbac",
-    "rust-std-1.56.0-x86_64-unknown-linux-musl": "03b7a319a3d3e5f86278753f2780c7b3fa3f1b60bc2b8ddf6fd18a36540b8601",
-    "rust-std-1.56.1-aarch64-apple-darwin": "59fcdb16c264fce206a1a59261fc576f547fa0a807d3370b542ab25261ae5158",
-    "rust-std-1.56.1-aarch64-unknown-linux-gnu": "d577c25879cf160ec1a04d5101971dd684f9b4f87b3cb463a7521b676dc3df89",
-    "rust-std-1.56.1-aarch64-unknown-linux-musl": "444d5cb43bb82322562afe54c249c3d85b5b1cf215fcd0cfdabd2e657fcda687",
-    "rust-std-1.56.1-wasm32-unknown-unknown": "4e62beca963a5b8c98913dd10abc493126675a0a35c2817afdf6975a49cc1bce",
-    "rust-std-1.56.1-wasm32-wasi": "a7eaf9bf238671f7a54afe00cd76dbb354933e525ab5bceb10d156a2bc414dd7",
-    "rust-std-1.56.1-x86_64-apple-darwin": "a1cedfaea1508bf3bfc8a77d82d15c693b41e70e56fad930d24f21f0bce5052a",
-    "rust-std-1.56.1-x86_64-pc-windows-msvc": "ace5ea90e70b9d035b28b405175d52e1796fb1bb36cfbdead1048ff00e9ec1fe",
-    "rust-std-1.56.1-x86_64-unknown-freebsd": "1382799af56e1ec48cf3971f84122c9d445996422055b822d9d6226a31a20737",
-    "rust-std-1.56.1-x86_64-unknown-linux-gnu": "afd959b295e17640d1e94648278a944dc5f349ebdd9e59e2404729db0810c531",
-    "rust-std-1.56.1-x86_64-unknown-linux-musl": "88bfd0dce45d4321b0781550a300f90da5344dda20744219b6b23072b6cb03af",
-    "rust-std-1.57.0-aarch64-apple-darwin": "3b442d3f546524aef4fe8483c5ddcec1c5dbd52216d98aabc066883db31088d8",
-    "rust-std-1.57.0-aarch64-unknown-linux-gnu": "4c70901d1cbddec9ea99fbd62b20f454d30e1ffbb48a21169ac823b3f02a1fbc",
-    "rust-std-1.57.0-aarch64-unknown-linux-musl": "4f0c6533186b8fb596ee11b49bd6c9ffb76be59eb8bbdf26f25a47d297666c02",
-    "rust-std-1.57.0-wasm32-unknown-unknown": "3e0525d9e16f1a58e847080f2d3c02e275c2d5563b7980311e39382bb6c8441d",
-    "rust-std-1.57.0-wasm32-wasi": "391d814379cf117e927e5deb17bf44e964adee4f5f7208eaee1ddc8927da1fbc",
-    "rust-std-1.57.0-x86_64-apple-darwin": "c1eb892ddb50ebeed288b7aa8171ad46d62362bb26b2d82d2b463dfd45606dc2",
-    "rust-std-1.57.0-x86_64-pc-windows-msvc": "c3984148c561297f804238f6f1e4dd06302c6b3465d3744074016bc23a9f078b",
-    "rust-std-1.57.0-x86_64-unknown-freebsd": "1528a4bc7e3ba42da164bcc7b952dfa73048333c5b9254ce2d03db6bab6081e8",
-    "rust-std-1.57.0-x86_64-unknown-linux-gnu": "9140ad6f46a903345d4297a987ccaf37b9c5ca594cd6fd5a27d0be482116fe7f",
-    "rust-std-1.57.0-x86_64-unknown-linux-musl": "e59345c7ba6bde5e1d2950b846c097511998d5897c63a7cea078ece4b8507f5b",
-    "rust-std-1.58.0-aarch64-apple-darwin": "7c1d58bdc87b79f439b1083348a0e492305f8737ad1931755c26b2834a854f42",
-    "rust-std-1.58.0-aarch64-unknown-linux-gnu": "3a1283a2dce7abf2816dc70d622215f5769c416abf3e94dd94dd6a5d1109f506",
-    "rust-std-1.58.0-aarch64-unknown-linux-musl": "2e0589157f7f5055f4f295886f9161cdd239d845b7e021a0a59bf338facf9dba",
-    "rust-std-1.58.0-wasm32-unknown-unknown": "cb668772798a811de6e6d5823398abf888f29319bd3803621b0f4ff8c1693de0",
-    "rust-std-1.58.0-wasm32-wasi": "4d86cf175ebeb3002fa940447b52ff6fdad99f9fb2ba6a56e42ef961e685c3f5",
-    "rust-std-1.58.0-x86_64-apple-darwin": "fa89e9ab2e3645d6732811dae3828c86fbd65cb7447ec33c84137e61b168396a",
-    "rust-std-1.58.0-x86_64-pc-windows-msvc": "20738c0c92fbb59800926ab2fda5191b03537a3d6574ba4b6534de3ebc12d043",
-    "rust-std-1.58.0-x86_64-unknown-freebsd": "99016932b881df2a579d52761d4851ed538e34c39b47e882505892bb50d930bd",
-    "rust-std-1.58.0-x86_64-unknown-linux-gnu": "0517b0cb57a311bbe1997e9b87fc6bae1f9e1eadec4f7d97374740f17f890842",
-    "rust-std-1.58.0-x86_64-unknown-linux-musl": "10d911a65381b624cd1d33a913c9a2270355dbcd6db66b847e63f0f9b0f85f35",
-    "rust-std-1.58.1-aarch64-apple-darwin": "307f4d430f3491098b7d73db618408eadc22b0e290d2e22fbcf2909c5ec96c2b",
-    "rust-std-1.58.1-aarch64-unknown-linux-gnu": "1f81a91f29d1a5dd4bbedbb76be74582553bb363103bc390c2f8f1f26c2a24bf",
-    "rust-std-1.58.1-aarch64-unknown-linux-musl": "feeb863de2688b70b98eafaf7e707b2192373b649ad147aa07d1e95d8cde825d",
-    "rust-std-1.58.1-wasm32-unknown-unknown": "ef92a50952a03111c59745b8732f55f209da12e5dd8cd15072ad4ed96ad048e7",
-    "rust-std-1.58.1-wasm32-wasi": "09e3b15ebff0a68e83b36913e4711db5ffb4c8dd3d7fa827988c1bdde6b9ee32",
-    "rust-std-1.58.1-x86_64-apple-darwin": "aaa1e34c45394abaa943499e56047f6e678e42e7fcf5fe065000fb33559961cf",
-    "rust-std-1.58.1-x86_64-pc-windows-msvc": "b8c335eb2ac500f59f2259b3ac9095647566725ad133509732d3f4a5a7d53139",
-    "rust-std-1.58.1-x86_64-unknown-freebsd": "946c4bc834a89b30deb82664b04b67aee0fa65c232447b3adb4c29e89a559b4d",
-    "rust-std-1.58.1-x86_64-unknown-linux-gnu": "649bda48542f211d77afab4b71505572a4712b6b5c5bdee94533e2e7a9a832f1",
-    "rust-std-1.58.1-x86_64-unknown-linux-musl": "c4e56dfcf9d3d8466eb7d065af44763369df6e641a812a0a6974f94c98ef9a12",
-    "rust-std-1.59.0-aarch64-apple-darwin": "e70bd0c56f8f716238a1395c54dd9d993a3168e2764e404dc65553babf7aa127",
-    "rust-std-1.59.0-aarch64-unknown-linux-gnu": "81dbd37919f631f962ac0798111803eb8f06ffde608f0e5dd3682d701cf5566d",
-    "rust-std-1.59.0-aarch64-unknown-linux-musl": "e4f73617db73df7cb3b97984e38184f57292cc527654b52451293cd70f36f5a4",
-    "rust-std-1.59.0-wasm32-unknown-unknown": "d79f31c54eab23c24e245e8988efa2f73451dc8537d386c52dcc1d7a6db246dc",
-    "rust-std-1.59.0-wasm32-wasi": "b62d02df72e2129c64b35a5d531525d4f51f96eb550cc6705f618968218a7ed6",
-    "rust-std-1.59.0-x86_64-apple-darwin": "959af8bafbc9f3916a1d1111d7378fdd7aa459410cdd2d3bbfc2d9d9a6db0683",
-    "rust-std-1.59.0-x86_64-pc-windows-msvc": "fae30c5c9ac491380b556377fb0e804b35707118c5e69f8190debf828c9ad863",
-    "rust-std-1.59.0-x86_64-unknown-freebsd": "cf5e4303dd7c3b70a738a2336097c9f2189c8b702a89a8c453d83ac0dee4602c",
-    "rust-std-1.59.0-x86_64-unknown-linux-gnu": "3927fd7a094ba063daaf3163fa1b3b0b196968356845fe31c901a23ecc5048d4",
-    "rust-std-1.59.0-x86_64-unknown-linux-musl": "dfad080e9d86d97929f040a3e2a113a17d4906809c47e9ab6410418b492116af",
-    "rustc-1.26.0-aarch64-unknown-linux-gnu": "ddddaddb585b95d81854171ac4e02d07790505853cee3034f199c8b7897f32e2",
-    "rustc-1.26.0-x86_64-apple-darwin": "5cb67314656d16cf2a1bdc84213aaaf6afdb5811825c7afba916e2d42d3d641f",
-    "rustc-1.26.0-x86_64-pc-windows-msvc": "427ae4a43a901be288ff3a4dc85d3a14f7e95108cfdaae63e8dbb4a227e07cdd",
-    "rustc-1.26.0-x86_64-unknown-freebsd": "9499ce5b68d631f8345c387e1f59b21892d97e0acb5650deb61a34719310bd38",
-    "rustc-1.26.0-x86_64-unknown-linux-gnu": "7ca9a30010602aaf2244c376a3cc5baa89429d54da17b8ba1cb0cdfdc846cc61",
-    "rustc-1.26.1-aarch64-unknown-linux-gnu": "7a06bd5312cbe8bb19e526b4c9ab04de1628019815a566ce0ff9401515bc2c04",
-    "rustc-1.26.1-x86_64-apple-darwin": "e5f4291c3709b170fbeb17fab7fae50fe0c626dbdc5c42ddb1f342ea03acbad4",
-    "rustc-1.26.1-x86_64-pc-windows-msvc": "e84dca395837aa24b4ea87d46d06a333c2e87d0be5fc5259476a95fbcb05accc",
-    "rustc-1.26.1-x86_64-unknown-freebsd": "dc3dc36010d73349152e6158522e82830fda173007b9299b0a947c90769c54ff",
-    "rustc-1.26.1-x86_64-unknown-linux-gnu": "45bc1c30e0c473c42889f22b182ec6f0b0fc3be0825e1607c64933592486eb2a",
-    "rustc-1.26.2-aarch64-unknown-linux-gnu": "b09fea72e259811fcbc6aade942329bc4588356470765987ee37d6108a82f7b6",
-    "rustc-1.26.2-x86_64-apple-darwin": "5b0a3d94a4fa76ed28859123e35c09a91d7eb8ff65f40ec4c50dfa56ffed8ae5",
-    "rustc-1.26.2-x86_64-pc-windows-msvc": "15eb657747a86a4481501bb21e2dbcf56a06c0beea00e8677c86ef74b8812576",
-    "rustc-1.26.2-x86_64-unknown-freebsd": "48f20a8dc6bc54c90aae685d0c3fa2caf3677f1c4a4d0c53aee9d15588bd0735",
-    "rustc-1.26.2-x86_64-unknown-linux-gnu": "1ebdafe52b581a63cea217a036fd6e77706d2715ae9cfe10a8c715d753326004",
-    "rustc-1.27.0-aarch64-unknown-linux-gnu": "b58c0373df43623adcc990d36190ee157f46f6fba650d0242632f3df2dfbc425",
-    "rustc-1.27.0-x86_64-apple-darwin": "0b00c6971ef524f68b911f621d199e60c339c390b18e12700d55e012b62aa90c",
-    "rustc-1.27.0-x86_64-pc-windows-msvc": "22eeac4f4b4d91c28cf18c6a4a8b477091e6661e3e827c0b32355d52e634a517",
-    "rustc-1.27.0-x86_64-unknown-freebsd": "24c193213450ffacffebdd1413d77fc3c1ed00049cf1ede2d0f3f370dd86b462",
-    "rustc-1.27.0-x86_64-unknown-linux-gnu": "29f399a1a208ea3f27f21e57f2d832e9d801c397a986aaea17e3a2ddeded6c3c",
-    "rustc-1.27.1-aarch64-unknown-linux-gnu": "c48d19ff5474ce75ebbb97e1b26ca8dc23d38f635ae7a3e21b8a4139df5cfb8e",
-    "rustc-1.27.1-x86_64-apple-darwin": "747f616e07e5da9323a21c1cf9d76b53bb46094a68223d461a7333f26c714f19",
-    "rustc-1.27.1-x86_64-pc-windows-msvc": "76abfd523f876516e589f62a83eaaa6e55496745e32f2e9f3f87aca55da3e8b8",
-    "rustc-1.27.1-x86_64-unknown-freebsd": "9b199c21094f996fd9d4b620a5ff2c4bc5b8dab13e96bdf7c113291f601ec944",
-    "rustc-1.27.1-x86_64-unknown-linux-gnu": "a6bf6205b345b854d705d0028a4e7161a0f5b209e464130e7d135fa01a296dc1",
-    "rustc-1.27.2-aarch64-unknown-linux-gnu": "c1a5ddc6e40be5eef7afad8c126c6f426d07eb1a297902c7ef871279fdbeea49",
-    "rustc-1.27.2-x86_64-apple-darwin": "b5c5edd2094afd0a92ad776dbd12cb6ee37800b940437dece10229ccacd1f561",
-    "rustc-1.27.2-x86_64-pc-windows-msvc": "c00dde7df7475340f5574b09c86d0e19f6707f838bf95d2ff463a8f4d4d76d33",
-    "rustc-1.27.2-x86_64-unknown-freebsd": "66d739632574fa52e82b40aca0eb4cef7a38047ed67cd6a240d8798a3cf9b6a6",
-    "rustc-1.27.2-x86_64-unknown-linux-gnu": "ec3efc17ddbe6625840957049e15ebae960f447c8e8feb7da40c28dd6adf655f",
-    "rustc-1.28.0-aarch64-unknown-linux-gnu": "09d1fa08d7403495ca07565eaabfcbe6703e842b765a68d5110cf4e64e988476",
-    "rustc-1.28.0-x86_64-apple-darwin": "10a5bf35177508c72050149663ff679a770eafa8557c6be0052603ca1267ae4d",
-    "rustc-1.28.0-x86_64-pc-windows-msvc": "39871017768fe779dbffaaff8696baf0788bb9c4d6c4caa3d2564e1153ab2199",
-    "rustc-1.28.0-x86_64-unknown-freebsd": "5eeaa17844f87e59aab821dc98dd15a920df0d1d7da3ef5808d2c586331c92a7",
-    "rustc-1.28.0-x86_64-unknown-linux-gnu": "008bb3d714544bc991594b29a98a154441914c4771007130361bbadfb54143d0",
-    "rustc-1.29.0-aarch64-unknown-linux-gnu": "c7480c0b98ae84151ffa8cadcb06d1ed2a11a755b6619ac1b89e7c886e98b7ff",
-    "rustc-1.29.0-x86_64-apple-darwin": "3462ba7e841485f93251762ce0b36a3922830a1249e5d79d6d010ceb43e4ee3f",
-    "rustc-1.29.0-x86_64-pc-windows-msvc": "b27c38cb60092e9cac8afc4ad760349821e6b068d986e13ad46233b9676ab35e",
-    "rustc-1.29.0-x86_64-unknown-freebsd": "38f30c96f0fa7ebfe94cd2db57e9b99961feca0a09045dbc1e955404b5d7f40a",
-    "rustc-1.29.0-x86_64-unknown-linux-gnu": "229c51d51efc239e6eb9b428795bb7f57309f11287705dcba4877d5e220102a0",
-    "rustc-1.29.1-aarch64-unknown-linux-gnu": "784ea61ff852225be622141600c79621456f1ad9f9becdf7070eb0217b8635aa",
-    "rustc-1.29.1-x86_64-apple-darwin": "64b86c923786dfafe8bbb5fcbef0d854132f29f0bf635830cd2d95ff225d2317",
-    "rustc-1.29.1-x86_64-pc-windows-msvc": "2675bf444df8fe900b84098917db3e765c87ad3c812ef2a818c7e622d77db457",
-    "rustc-1.29.1-x86_64-unknown-freebsd": "ed9b2ccbfc6028ce2c73105cebebdb9f2e2332018c687951639176358bfed9a2",
-    "rustc-1.29.1-x86_64-unknown-linux-gnu": "b99324394ba20bd12efa9d30dad72b10747bd075f97c7a9fd0ce3f9394383fa7",
-    "rustc-1.29.2-aarch64-unknown-linux-gnu": "54a8c54f04dec72d7f8655ce1c3037dc23ded2f9ada26e7ea77aa45fc8b0d0c5",
-    "rustc-1.29.2-x86_64-apple-darwin": "d9c0dd8127ed632e27d751f051bca933578317ffe891e39155ae721bc1d3ec05",
-    "rustc-1.29.2-x86_64-pc-windows-msvc": "53dcf97ed9461784d713c5a413df7e8e5aa4c9158a4d5921a038b77b17120a17",
-    "rustc-1.29.2-x86_64-unknown-freebsd": "94fba7a7b88ca86c037a48376b7e09bb4ca66e1268fc8d664796cdbdee97c0fa",
-    "rustc-1.29.2-x86_64-unknown-linux-gnu": "b04146b09edc4bad0de7c8fa1a5a2aa4416d365c03c5962b8a5b26c7047b7cc9",
-    "rustc-1.30.0-aarch64-unknown-linux-gnu": "ccff6c6d8386655955265f586862314dd3b646bbeccd1369877f4343b1960a53",
-    "rustc-1.30.0-x86_64-apple-darwin": "d4fcbc61c7323e6fa1001ae268c5db1693ff07e5ef1ac25907138a2ee7bd8faf",
-    "rustc-1.30.0-x86_64-pc-windows-msvc": "2d2d1a51bb15794920a2f0cccf7fd2c8bfb037d00975e799ff4a4ac3b83032ce",
-    "rustc-1.30.0-x86_64-unknown-freebsd": "68a74949e34118406673cf8cc0098b011907c840890e0640aa3b145ce91c521d",
-    "rustc-1.30.0-x86_64-unknown-linux-gnu": "cc45058e9963d33ca28220e752d9e360b7e05f17e34284f5f8197738c3a88444",
-    "rustc-1.30.1-aarch64-unknown-linux-gnu": "f3569c0a74f07aa2e56bf93c9f2aaddf7434ce17f85d6d6ff854fb9245888bcf",
-    "rustc-1.30.1-x86_64-apple-darwin": "fd8ca09595e9d686aef9e3b94259500b482cf7a01de167a8c72a4f8d19a604f3",
-    "rustc-1.30.1-x86_64-pc-windows-msvc": "8ad1551132de8c766d2d7c66d9bb93a959ebbfa7d86c47f196227fea914583dd",
-    "rustc-1.30.1-x86_64-unknown-freebsd": "2f79e386bed201eb9b6ffa58240742617ec6006accb559dab7b6424f33b65b5f",
-    "rustc-1.30.1-x86_64-unknown-linux-gnu": "d84de208499b59e4a3c074f9f3f2fcbb26fb20d6bfd19262e6d5f4181ddbe34d",
-    "rustc-1.31.0-aarch64-unknown-linux-gnu": "1e480d8cadceff39ad39d30fe874bfd485386c98842f16423310cb2ada1923c0",
-    "rustc-1.31.0-x86_64-apple-darwin": "250fd3f3aba7d38c4af9682a12a37c733dbd6dde127665b0f493551e6c4aea8b",
-    "rustc-1.31.0-x86_64-pc-windows-msvc": "418abc285870ab4d85d53769eac229cd66b7fc7cdaa6e73699530e88ee5dfaf4",
-    "rustc-1.31.0-x86_64-unknown-freebsd": "9ec40454e22e3494b9859c03e37e8851077f897845bcf838d69d4393900e7b33",
-    "rustc-1.31.0-x86_64-unknown-linux-gnu": "5c4581f0fc05f0f5076db6231b0c1a4d27eb61c0b36bfb42d97243ad8f4e43a0",
-    "rustc-1.31.1-aarch64-unknown-linux-gnu": "315ea9c981e4320a557f6c75b58242c0598a90316f610b4dfef5d06e82b927f2",
-    "rustc-1.31.1-x86_64-apple-darwin": "e3f9c5ccd0e6e09da8012f30ee9a1880efebc0c039cc1f3866cf50c984be16a7",
-    "rustc-1.31.1-x86_64-pc-windows-msvc": "0320b7544de463d4444c6445fd2e23044e28fde1173f614145a72a4bcfc6ccd9",
-    "rustc-1.31.1-x86_64-unknown-freebsd": "fb38ad94976c273c0fb95d0b5ba2d1ce90684e58fa06fafc9f8050ba00559f50",
-    "rustc-1.31.1-x86_64-unknown-linux-gnu": "77d47ce7e27a146e4301f11befd43f3fc5ac195ace0dfc07ac8154f130b057ea",
-    "rustc-1.32.0-aarch64-unknown-linux-gnu": "193cbe67161e20a0bf4eeb8bafeb302f3e61a59ca939a0454fc3fbc76e9524cc",
-    "rustc-1.32.0-x86_64-apple-darwin": "0334c4568f09cae984e53e4a3f4ff207e2bcc50fce13ad32b8eca89f014e5e61",
-    "rustc-1.32.0-x86_64-pc-windows-msvc": "a7799495d3032c5ad6b5f712f7d7a9538f695c6d8d2e5258c0f7aadac8cea1d4",
-    "rustc-1.32.0-x86_64-unknown-freebsd": "a14a0e288be8ce894a85810151a2eb70fc86afa36e4a5fae4e903c744b888687",
-    "rustc-1.32.0-x86_64-unknown-linux-gnu": "75c31f32e19548c1608611d08b82b87560e02f15caac7b2663a8189a4609977c",
-    "rustc-1.33.0-aarch64-unknown-linux-gnu": "e23141cc65d1d8e3957a96f3a601bdb7a9d09026ac20396aeaebd2613ea0d08e",
-    "rustc-1.33.0-x86_64-apple-darwin": "ea1f0a95015bbefba9eac5890b12ee2887f464822ab579c8bbc2db3023c6dd08",
-    "rustc-1.33.0-x86_64-pc-windows-msvc": "b935a78d072b9ae91ff8ddf9155df95d77fd8a1c6293e39df3c65b18d860320e",
-    "rustc-1.33.0-x86_64-unknown-freebsd": "8bfc7fc50c50294cf4ded35360b41b590180401a0d2e84256f5931c7c1ff35cd",
-    "rustc-1.33.0-x86_64-unknown-linux-gnu": "54a342f718b712d8a17fd7878ebd37d22a82ebc70b59c421168cd4153fd04c2b",
-    "rustc-1.34.0-aarch64-unknown-linux-gnu": "364328a40c7aa5749be80b13a14466149a559205e34aef3d8823dc2580f55921",
-    "rustc-1.34.0-x86_64-apple-darwin": "2044d44f01a8aa7fb3382f35fc839facfde4fc1eb6f951ead42aef954e317088",
-    "rustc-1.34.0-x86_64-pc-windows-msvc": "371f9abd2bc615b339dfd606d93e6b4892594fd86084d513e07a9f80ff21a828",
-    "rustc-1.34.0-x86_64-unknown-freebsd": "522662f147d0550e4f4f49026b4ebcc5e05a0935fa88acc9b99da5d7435755aa",
-    "rustc-1.34.0-x86_64-unknown-linux-gnu": "5852e84dd30e4a552a7cd4d7c0172648d7ffb4d9ac7078871adbb902c183ffc2",
-    "rustc-1.35.0-aarch64-unknown-linux-gnu": "dc06d77e6cdc06693d3b87ce473f151c96bda2c1e5dbba8c0354c54990c64fc2",
-    "rustc-1.35.0-x86_64-apple-darwin": "5b2fb7581332f349c041860479ffdbfec0eebf87fc3016146836b8868afc3ae5",
-    "rustc-1.35.0-x86_64-pc-windows-msvc": "df4f94d29d10fde2486d9fac3247a566d99a2b7f97fa6ebd416f308b804f7693",
-    "rustc-1.35.0-x86_64-unknown-freebsd": "d3b5a6cfa41264e1873287bdb89892a7edc40333d581f468890c68336f50a601",
-    "rustc-1.35.0-x86_64-unknown-linux-gnu": "bb3a07a1f2fdc3eeeee25fc40131d3f05494e3838dfd4e9275475ffc500d7a9e",
-    "rustc-1.35.0-x86_64-unknown-linux-musl": "a975395127a2abf727a7c6b6ed2656e90368b46c5e6ccdc53fd50acca3cd3f94",
-    "rustc-1.36.0-aarch64-unknown-linux-gnu": "62e40e0677032ae0cd91a7f8b4450dbaaf5223050a05b28a9174802d09691da6",
-    "rustc-1.36.0-x86_64-apple-darwin": "97568272717ffa62dbf4459dff6086e69c808df252a912146e28468412667013",
-    "rustc-1.36.0-x86_64-pc-windows-msvc": "4c131f68eac74bc20315eda097578c43de2b695445739462a4b273f90a131ffc",
-    "rustc-1.36.0-x86_64-unknown-freebsd": "c2dd0cec49b054ed9439762fb31555b8df9a3d81747b194f7d3afbc6d8adb8de",
-    "rustc-1.36.0-x86_64-unknown-linux-gnu": "7c149fa1695b41e8e1edcb95dca199522889f119be99f922741084d50470a9e5",
-    "rustc-1.36.0-x86_64-unknown-linux-musl": "913b7097e13c4e616edb8f83a3a976908c8c12295472f65a5682465145ced552",
-    "rustc-1.37.0-aarch64-unknown-linux-gnu": "721ba21dbe9b350a8c50a4c783c76ba3f6926525480518851dd6ba92ecdb042c",
-    "rustc-1.37.0-x86_64-apple-darwin": "00d4d15b4d9a4d188e0db8bbc17cd5f0c3c3a87ad681e80ef15580c0d5bd4ff3",
-    "rustc-1.37.0-x86_64-pc-windows-msvc": "790bdb5b57f397d7481151ad8715f7ac3f32b343efaf2922650f4fc6e374d7d7",
-    "rustc-1.37.0-x86_64-unknown-freebsd": "a4dd357a0b39abf1ebbe8a0f64973c3b0c5bc527e374c12afe51266279fc1ca6",
-    "rustc-1.37.0-x86_64-unknown-linux-gnu": "c759b318f333639a45f29c1551ca7ce55b1bf64e0fc3a3357d6b9356885d1626",
-    "rustc-1.37.0-x86_64-unknown-linux-musl": "1981b67c0cbcaf37f40ee9576d6d1b9a554019e571fc4c49ee9457cf011e0f75",
-    "rustc-1.38.0-aarch64-unknown-linux-gnu": "0c787eaf01b5779b5a0c12bd0573901cf1b58e5e484ad44c3530b7ed51754d15",
-    "rustc-1.38.0-x86_64-apple-darwin": "ac34aee5a5f67003b8f7f857ddb1fa68f89a32680a591ab77561282721b75256",
-    "rustc-1.38.0-x86_64-pc-windows-msvc": "6e00ee5f34c552c1b9fafec3b7a1330140c820a2ae4bd4213d2c4f135341a88d",
-    "rustc-1.38.0-x86_64-unknown-freebsd": "1d99318bbdc947c6dc375215f0eddcd767348c309811cd141e5d18e17d5aaaa4",
-    "rustc-1.38.0-x86_64-unknown-linux-gnu": "790a611695fabd12c3a141efa58b3dc5913d749947c1a95d3f5b6eb5476ee612",
-    "rustc-1.38.0-x86_64-unknown-linux-musl": "bb0166cbb1d31bcb09d79224e7ac43a80d9448b7199b5392a3852b3ec71840aa",
-    "rustc-1.39.0-aarch64-unknown-linux-gnu": "c64fc482404277fdb160a4b593b0be5a1b0c32d985464595015295321d111621",
-    "rustc-1.39.0-x86_64-apple-darwin": "9347ffb47e936fb44666ada525f8bfb86758a719e7c0330e93e17bbd5f3623be",
-    "rustc-1.39.0-x86_64-pc-windows-msvc": "9a94785fdb473079d02f32bded6691322688001dcc16f5bfb582c1d181d3ef67",
-    "rustc-1.39.0-x86_64-unknown-freebsd": "3714bf7bd4163a3bfe18291d49acaeda02f4bf2beb9fe36c520d2ecdc29ca031",
-    "rustc-1.39.0-x86_64-unknown-linux-gnu": "333399dbf96dd6b8a9dc9cc56b1cb5d8aac2296b4e4aa857bd59d906d6df6fa1",
-    "rustc-1.39.0-x86_64-unknown-linux-musl": "07a9705dd77c6859ef921389dc6a958a297030e53571fe015163c79aa93d1e43",
-    "rustc-1.40.0-aarch64-unknown-linux-gnu": "8981d500261ecfec93c4b52e8f96a81c705b56ff9317d63e0363d11a72ee09a0",
-    "rustc-1.40.0-x86_64-apple-darwin": "f45bb00a9a59ca819a8266e9de77f7232f4b704d64f1c45d3870e2db4f646a77",
-    "rustc-1.40.0-x86_64-pc-windows-msvc": "16299638792b7bffb63ca20674a7196a33d1fb25e91083b90f8015be010eec19",
-    "rustc-1.40.0-x86_64-unknown-freebsd": "65810804d3e4cf8f845978c6226f8e23d77a7ccf35ebafdd5f8dac027627f396",
-    "rustc-1.40.0-x86_64-unknown-linux-gnu": "5085a26abdc932fd9339aab2078084f9ab654f8298ad9f301611ac41ba8eca19",
-    "rustc-1.40.0-x86_64-unknown-linux-musl": "acd01559a875b57f6fc7e27beafd8d011f8295c627ab276d814700082088f2ed",
-    "rustc-1.41.0-aarch64-unknown-linux-gnu": "9d994935f92088c968f520f558a88b140bb7d60e917fc4ad69019e2b830b1db7",
-    "rustc-1.41.0-x86_64-apple-darwin": "25ee8865e21007c282cd1f3457c3bf932591337c3044e55ba574fc988bead3ad",
-    "rustc-1.41.0-x86_64-pc-windows-msvc": "b338afb534be113f179252f8de29195e201dcd8bf4053b1d5e8eef928c457ca3",
-    "rustc-1.41.0-x86_64-unknown-freebsd": "de3386f79a0e261b8f6133dc0d5a7d51b70ad73dba5a14dd30204ac285d04f3a",
-    "rustc-1.41.0-x86_64-unknown-linux-gnu": "531b4cc77cc25e960aafa2ebaee073c137fceb0004447c6b7274557281c62a6d",
-    "rustc-1.41.0-x86_64-unknown-linux-musl": "18c0f6d263d3a54a6842e2feab7c90ce5d8e5136b67cedabb98756f029122c8a",
-    "rustc-1.42.0-aarch64-unknown-linux-gnu": "612c10793852fd0c2e52b30f3d50dd6aef6f8181032b820eddefc93e3bf4d97b",
-    "rustc-1.42.0-x86_64-apple-darwin": "778dea93d7e46261e2c06cadec35b68f9857604f279ce6fbd1b37c1a89634625",
-    "rustc-1.42.0-x86_64-pc-windows-msvc": "d132f99df49cb0d421f6d8948a268d4eddb1ae23e0af2641272438998503708b",
-    "rustc-1.42.0-x86_64-unknown-freebsd": "e6e36a7df9886b18cce32752f5ac7a8da6977c6a1878fae696340f3843176fe5",
-    "rustc-1.42.0-x86_64-unknown-linux-gnu": "4242a728b850bf6e74db9a95c68e8ed316fa4813b38e6b8bc296396b5f47ea5a",
-    "rustc-1.42.0-x86_64-unknown-linux-musl": "60945b79fdf8be51c87967368245380a64d0d331ef1aefa778712f3695028c39",
-    "rustc-1.43.0-aarch64-unknown-linux-gnu": "99f26a2b4376fc08203d129d65e15f01b2630db40dd2d4d6a7b917df8d512e72",
-    "rustc-1.43.0-x86_64-apple-darwin": "3723b8194e38d7238262b4cc49762a22037f53f58ab1df199c1d710dad5728a5",
-    "rustc-1.43.0-x86_64-pc-windows-msvc": "c6d1aa60cf2056c4fb35a5a197fb4e1a42887eb4ad1615b00398524ff78ce74c",
-    "rustc-1.43.0-x86_64-unknown-freebsd": "69d572e80e13da85599557f662ce71909823194c874eea0fe91f82da0958fa68",
-    "rustc-1.43.0-x86_64-unknown-linux-gnu": "950b323044ae9a7932b697a2e4f4f62b59248f58faa320e22dc20f8ad9521f6b",
-    "rustc-1.43.0-x86_64-unknown-linux-musl": "7b9ff3fdc2024d044f19bfd5353441fa5fe7409c9ca4883726b5c8fdece3a7a6",
-    "rustc-1.44.0-aarch64-unknown-linux-gnu": "b0fc4cee7119c10f79fe2701ca0d19ab738bd20954352ae5b1dcc4c6f432779a",
-    "rustc-1.44.0-x86_64-apple-darwin": "4fd09afcae85f656d4a545ee415e19546e03e34f1ca23be5eaa68c489e3186ab",
-    "rustc-1.44.0-x86_64-pc-windows-msvc": "0b3aec27d86034cbadf4adbaf36308bcf98d97c0979d162ffccf4328fb4f96cd",
-    "rustc-1.44.0-x86_64-unknown-freebsd": "6f3c4e16bbda8719e5c07dc687e84a7236e097da55c4fabea13ef1cbd6a30c40",
-    "rustc-1.44.0-x86_64-unknown-linux-gnu": "52671652e7045df0702d8f2e8af60bf6f20da3e3a5db1aa6022bf9545e914449",
-    "rustc-1.44.0-x86_64-unknown-linux-musl": "71440388e5e4affe11fddf3c3a706ac6f129d9ea47717894b586290e553223fa",
-    "rustc-1.45.0-aarch64-unknown-linux-gnu": "b1ef2ea19142d851f2ee6936cd46a30ec8f157ba53048bc2748279d1e9e0ad17",
-    "rustc-1.45.0-x86_64-apple-darwin": "fd17d99c3e827f0b4f01b9122d4bf2fca0f1144827300a1eda93718d8642b39f",
-    "rustc-1.45.0-x86_64-pc-windows-msvc": "f65fb383f2c6f979a19acbd4e099e6eea8addc0e76f1fd988582dfc0daa4a121",
-    "rustc-1.45.0-x86_64-unknown-freebsd": "b5d263c53320f8a5dd5daceac1e60da172fd21614ada67f584565430d9d1c9c6",
-    "rustc-1.45.0-x86_64-unknown-linux-gnu": "3ef2fcf818c133c3e9957441917b23ea536805efd0ff9ac6ee0bea349d703a90",
-    "rustc-1.45.0-x86_64-unknown-linux-musl": "596f04e0774225ca85b5c99575854dd66973854ebcdd0b7a60d3c2cff4d415db",
-    "rustc-1.46.0-aarch64-unknown-linux-gnu": "41239ece19c79250a205e5b2fae60b242bba4bf72b687bccc88f011e66a872b6",
-    "rustc-1.46.0-x86_64-apple-darwin": "f690b375df7b1399e5baa69b64932e3e4a3f2b651e5ef2ebc85509bee777a9d9",
-    "rustc-1.46.0-x86_64-pc-windows-msvc": "56badce580b65f59d676b20b4e5f138969e5039182b7f6052ac7da9d38bd0aca",
-    "rustc-1.46.0-x86_64-unknown-freebsd": "e76d3e18d1826753395d881bc37be3d43e9ff8d2d34d49d7ed6105f228d56284",
-    "rustc-1.46.0-x86_64-unknown-linux-gnu": "4c0c740cfb86047ae8131019597f26382a9b8c289eab2f21069f74a5a4976a26",
-    "rustc-1.46.0-x86_64-unknown-linux-musl": "6ab2664edc93122b7a93a1b72025e869d088445af65d3df286258c3860090114",
-    "rustc-1.47.0-aarch64-unknown-linux-gnu": "2e143bfa59eca5c3f3e995c5997ae55c7defe824fb4dbe7e77896e132f42c24b",
-    "rustc-1.47.0-x86_64-apple-darwin": "4773ad46b912c859984f1e4466e506dd8102603d1ffcd8b63cfe7522f49e5987",
-    "rustc-1.47.0-x86_64-pc-windows-msvc": "f2010e4500602d0efc431c0853692733415bedb58652376023d7d6ac204f8c7c",
-    "rustc-1.47.0-x86_64-unknown-freebsd": "811f298c07fb32a6a01f9960f2d7dc403f6f288a3f475ed9806648e2cc5938ca",
-    "rustc-1.47.0-x86_64-unknown-linux-gnu": "d96be0ae1deada01f41372ab2c2f485a9f8625069aeaff33c5b513061e9706d4",
-    "rustc-1.47.0-x86_64-unknown-linux-musl": "4c6979e2b01fc8da0f83b30e9ccf869f692ad84cf517e300362624d9eaac8635",
-    "rustc-1.48.0-aarch64-unknown-linux-gnu": "9c83a5d18f6ca913eeffd78c53913da288b171ff245137b646a8fd280fe72340",
-    "rustc-1.48.0-aarch64-unknown-linux-musl": "eba49211f2e0aae157e18258edacb3031dc8b4bb6db0bca142c919d9042c7ba4",
-    "rustc-1.48.0-x86_64-apple-darwin": "846f45f9bd6676e9d1f6758279b48e32564ba23773e69aa89692dbc123dbea5a",
-    "rustc-1.48.0-x86_64-pc-windows-msvc": "395b2a8e6824b3e56a8a9b4598273be5410b4ea64e92c8aeaf900d9ff21f470f",
-    "rustc-1.48.0-x86_64-unknown-freebsd": "fbaff313c2423f1ababc9792332560ca0e3749abf3749e7eb5289bc6515d9424",
-    "rustc-1.48.0-x86_64-unknown-linux-gnu": "aa4a96b010e0d4573e6a1fec230beaadaae6cdce2bb4befeee7b1c081ee9ef8c",
-    "rustc-1.48.0-x86_64-unknown-linux-musl": "5513813bdbd1aa5e4c4a0a0e680953b72d24829595920fec4e69da3682abdc0b",
-    "rustc-1.49.0-aarch64-apple-darwin": "3e8c0c9101f27623f7607f2d8acef5f28dcb2bdfcded56f210d9d370cf9a9c06",
-    "rustc-1.49.0-aarch64-unknown-linux-gnu": "b72699cdf74c03ccc0aabab937a69807f2ceb5861f3508593e1c222190c4efc7",
-    "rustc-1.49.0-aarch64-unknown-linux-musl": "b76b7f687ffceed03a86e69dafd251e8e069c31c31dbe70c0fcad1ace5398956",
-    "rustc-1.49.0-x86_64-apple-darwin": "09333f9aacb9c5959e2a2798d7e283cae674255f063a35ea28f91595caa0a78b",
-    "rustc-1.49.0-x86_64-pc-windows-msvc": "800b7571438850074aeb0fb9a0e7d890c6785f9f4823b3052b9b0b098bb9ddd4",
-    "rustc-1.49.0-x86_64-unknown-freebsd": "66427837606aba2cda99d4f52161bee1086e98b226a5cb99be8e9a7bf896495f",
-    "rustc-1.49.0-x86_64-unknown-linux-gnu": "42300556b987934e5e4677972c1dfc57eb07731dc62fa9f4f561935a1c84ed0e",
-    "rustc-1.49.0-x86_64-unknown-linux-musl": "4c56ed1fcee28a6f35c98d14edd34a33a60f52ac583c98313623760de093bf7d",
-    "rustc-1.50.0-aarch64-apple-darwin": "3abc090591fb7fd0a292eeff4cc6a029841d39b0a768eaf1f0b9e4e06cba8ed7",
-    "rustc-1.50.0-aarch64-unknown-linux-gnu": "9afe0e968da845981b463beb75f91d6da0d4de5443d1abb6002b75a8cf066ea7",
-    "rustc-1.50.0-aarch64-unknown-linux-musl": "abafb6bb1d2f065b72b43331e6cb00f3c98c78af00f261e1c53828c26528a078",
-    "rustc-1.50.0-x86_64-apple-darwin": "3637ee8d8bc0f8e922b1f9ec7b6fc00b6efcceae97c337d205a3bc472be7b936",
-    "rustc-1.50.0-x86_64-pc-windows-msvc": "d7f7607c9cd3e137a335904e1186345f4328a971588ee8a54838e32a35a38e3a",
-    "rustc-1.50.0-x86_64-unknown-freebsd": "916e616188638738ff217a047b3fbe372d9ad3734bb466d0e56d2fcefd1da5c6",
-    "rustc-1.50.0-x86_64-unknown-linux-gnu": "160a91a3f545f96b2b955cf48811080d8e0accbd9d9a9732b080e1ffa72113bf",
-    "rustc-1.50.0-x86_64-unknown-linux-musl": "528d02fa77fc0da26904ff10da2d6f94c6da618c323b37247b49fe28fd950240",
-    "rustc-1.51.0-aarch64-apple-darwin": "110db4985d7cb18ce6879f34fc02422f5f074b3a2b40b62e6bfd54ceaaa56d33",
-    "rustc-1.51.0-aarch64-unknown-linux-gnu": "b63b21d56cab87133c9cd149f7c8ca3b3399a877cb16496a86f7a87d8b15c784",
-    "rustc-1.51.0-aarch64-unknown-linux-musl": "58305d3fffa1662114587a6144afff9a872496aef6073b23dc5da9676d315d5a",
-    "rustc-1.51.0-x86_64-apple-darwin": "abca027d4e45870ac97f220e5f60f4e849dd53f575f902046952a127da739aa2",
-    "rustc-1.51.0-x86_64-pc-windows-msvc": "a6fee78393f3ee78bc81b5437122f7fd220d8d6686c9cfd41848bd699c9758f4",
-    "rustc-1.51.0-x86_64-unknown-freebsd": "572e7c13bb5951a12a9f6f422e636da8468747d29ab6901ef3b5b03932482e1a",
-    "rustc-1.51.0-x86_64-unknown-linux-gnu": "6b1298ef220302a33cad21fad7c8e1535264872b18e2ece733ac37ed31571dda",
-    "rustc-1.51.0-x86_64-unknown-linux-musl": "77614b115eac2ec975f29a8e2d60d8a77834f11689ff6b0d94eb74d4999df285",
-    "rustc-1.52.0-aarch64-apple-darwin": "9e17debb80c85695aef2b76f1b4ff3a10ab40947b386b2590fe168c4ba77ea42",
-    "rustc-1.52.0-aarch64-unknown-linux-gnu": "cbfec2d4cfd38a04e1945beb4736a6ad2eb22f3a18743865158c4e0a4da43450",
-    "rustc-1.52.0-aarch64-unknown-linux-musl": "fdf8be2fd4c4505155f81099e171fca5300f14cd1a343b4e11753bea99f2764f",
-    "rustc-1.52.0-x86_64-apple-darwin": "abed71e08d05a47f7a54495212ef67e020cc61edd6c90cb1589bb4c7f771a821",
-    "rustc-1.52.0-x86_64-pc-windows-msvc": "bcad3eaaac6f8bc117346047b3efa088977927ca668477b6e51cd037428ceed2",
-    "rustc-1.52.0-x86_64-unknown-freebsd": "5883388f0d1abc7e187d03bb213a4f34b8487ae4b665d9a76acd80c86fa5d3de",
-    "rustc-1.52.0-x86_64-unknown-linux-gnu": "76f16908c37c719abc1cd28e9cb4cd484aa88ba00152b2de3188b6ce86eea848",
-    "rustc-1.52.0-x86_64-unknown-linux-musl": "13e1ef7a3db7a90a2756e423cda10ae0b95510f041d543d8c00a91a2ffbb68dc",
-    "rustc-1.52.1-aarch64-apple-darwin": "d9f76477db98aebcbfd5ebbe4ce5c3aff30d7ac0185b25cec27e4ecc376ef4b8",
-    "rustc-1.52.1-aarch64-unknown-linux-gnu": "5218780009126b391786280f76b98aea743fd7cead8d48befc03791c095f88d6",
-    "rustc-1.52.1-aarch64-unknown-linux-musl": "a1dea60ad703c424f99becef772b97ea3966974002427ad8baf3ff5473fd7ada",
-    "rustc-1.52.1-x86_64-apple-darwin": "bc896a1c701ca10328671710c4a06ec4774b398cdeb64cf55fcf247f31dd275f",
-    "rustc-1.52.1-x86_64-pc-windows-msvc": "1828ce5c7ca28e7cdc9cb75105dd3489ea1e3648f800d3db0e99c248292d816e",
-    "rustc-1.52.1-x86_64-unknown-freebsd": "2de1df845045a8c6dc3832e7d615c9124c52eb5626b1aff1219e66fd3116623b",
-    "rustc-1.52.1-x86_64-unknown-linux-gnu": "52002b050485674e87fdd72c7b49dac8783dfa36575be7e6265a69b4e66f8570",
-    "rustc-1.52.1-x86_64-unknown-linux-musl": "195711077d44392a13e57c6695489e71cf811538eba02758dbea7c4ca2a72047",
-    "rustc-1.53.0-aarch64-apple-darwin": "a7f9c48adb4062c43bfad8fe608551c98d538529cbd13cb979578532a91edbe2",
-    "rustc-1.53.0-aarch64-unknown-linux-gnu": "a54267708a1e80bab2c0a919284b9387f4b70ca61a96dce7544b2c8001adc5dd",
-    "rustc-1.53.0-aarch64-unknown-linux-musl": "b26c35cc651c9233c58d08c12c076413a9637875a7fceef3f6b582629e169282",
-    "rustc-1.53.0-x86_64-apple-darwin": "ad3d181deafb4bfeaf3d313828b258b89ad2fece3623bb4c4488e282db802e39",
-    "rustc-1.53.0-x86_64-pc-windows-msvc": "27b895346c458c141d1cd277b3e87380ad3e304c62c7240d778a0cd3dc245581",
-    "rustc-1.53.0-x86_64-unknown-freebsd": "304eb5d1b4a8a98fb67cc1a9599c1c0ef7553d939945a6a80d768e3b69ff8c75",
-    "rustc-1.53.0-x86_64-unknown-linux-gnu": "c2c24b41602a589886f87276d4d46e42efddbad820917dc4dcbf6625cdf9ff52",
-    "rustc-1.53.0-x86_64-unknown-linux-musl": "6ab5694ac8ed7ccb79b7689e5dcf9198ddb937e123d31289e7b385bb60b3848f",
-    "rustc-1.54.0-aarch64-apple-darwin": "f18bbe09d8e08be5753e5f536ddfe15d4141b3ce968a2809a9869c91d492292b",
-    "rustc-1.54.0-aarch64-unknown-linux-gnu": "595e8db56e68247ee3caf29f6a3d3c72d7955ed45f1291e7e596d63923427a86",
-    "rustc-1.54.0-aarch64-unknown-linux-musl": "02360abef6aebef211a3e6fccfbc81f27c83e930c3291f95e033c8c9eb6c07b1",
-    "rustc-1.54.0-x86_64-apple-darwin": "b3ac970d31893a192c8ec46fd6c9b8409751246cba029a212c4cd84115086a13",
-    "rustc-1.54.0-x86_64-pc-windows-msvc": "9fd8ed58b28cc6554dc7ae17e8b96770cc4736460c4a0047c78fb7ff54d53f10",
-    "rustc-1.54.0-x86_64-unknown-freebsd": "a2974a15b2b284c09eeac39396728544700fdb8689e8b662ee062e68daa0b554",
-    "rustc-1.54.0-x86_64-unknown-linux-gnu": "cd4c1c5db3b8ca3f76fac42d209e83640794eb8c2bbfb71b71e5f93b584d159c",
-    "rustc-1.54.0-x86_64-unknown-linux-musl": "896b4eb229259005410311a29587aaab4ed7d5d590d810b06abd7601a004a953",
-    "rustc-1.55.0-aarch64-apple-darwin": "4d782c947f1a35f5fb60799f019b4b82ad121a017746c935ab37fbd105c66c8f",
-    "rustc-1.55.0-aarch64-unknown-linux-gnu": "31dbbc1395f5a545c114e778552159713977dec423bca5705bd4c92ee3840cb1",
-    "rustc-1.55.0-aarch64-unknown-linux-musl": "a5170d72af554b1d39a0db46cb2bd55911132705e3cf8e38d16a382f3b9d4215",
-    "rustc-1.55.0-x86_64-apple-darwin": "7d1197687c72d4c72ae04905b96a7205ec4ad7c9da0231ea6f3bbbc8399adb84",
-    "rustc-1.55.0-x86_64-pc-windows-msvc": "2cb681fa074386af8dd2cc6c79b57e1a8048acb1dda18e04fedff1c2dd84d70b",
-    "rustc-1.55.0-x86_64-unknown-freebsd": "ad50ba2c87acb59020959df594aadc207f4fa527b2b2cd8849f3b1d3f666986f",
-    "rustc-1.55.0-x86_64-unknown-linux-gnu": "9da098b2df01124f2c4b9789767151521f4bab98f50befdc75a691cece0c0d00",
-    "rustc-1.55.0-x86_64-unknown-linux-musl": "f7c1fe2393db842630b23ecf6164fac471b11235fdb62a35a86e7cd3cf8d749c",
-    "rustc-1.56.0-aarch64-apple-darwin": "c588dc2cd352eaf27ae74ee593bd0aaa65ac2742416c714f5827f395bb7c19df",
-    "rustc-1.56.0-aarch64-unknown-linux-gnu": "eb7283729bc4c336aa23b020489e8feb78eed70831213ee2e4121ce7d6ac33f4",
-    "rustc-1.56.0-aarch64-unknown-linux-musl": "e312187386bfb39fde04ca007faf656179e8c2b1bb1a0d59007db7a247b54b4e",
-    "rustc-1.56.0-x86_64-apple-darwin": "a724945de2bb0ba78e56217ba02f67ad0cb07a01c2438b01b91f85fb94d273d2",
-    "rustc-1.56.0-x86_64-pc-windows-msvc": "1034b2f6150d892649c1eb8fb10dbb4228ca2010f88720795e6a12696cab369a",
-    "rustc-1.56.0-x86_64-unknown-freebsd": "4e7a2f62ef2873b3bd45749133c1690c4b0e037af5a586e9ea691e480f8d2d40",
-    "rustc-1.56.0-x86_64-unknown-linux-gnu": "aa66db89c3f89325e40ba0bfe481f4d631559884ae4812c3c3d091d80ba7c245",
-    "rustc-1.56.0-x86_64-unknown-linux-musl": "5f7ed6c289b56c129d6dbb407348f566caf39cfc5db35a4b6253cf514940482e",
-    "rustc-1.56.1-aarch64-apple-darwin": "fcb2c2e46e3cc7e7cba3abbb78ba87131aea56770145f8d97944b675a491312a",
-    "rustc-1.56.1-aarch64-unknown-linux-gnu": "9e7461908d0b3e6f4bbb158b71d85e536c186fe571c9960f8ef4300328b25a11",
-    "rustc-1.56.1-aarch64-unknown-linux-musl": "1e913b7f39d0f478c48ff9b9dd6a05dfe67a6ad58e478509cafb20e106512965",
-    "rustc-1.56.1-x86_64-apple-darwin": "876b9ed13a71ada3c00878c6006d837b852973cba84419753445c8a8a76efe00",
-    "rustc-1.56.1-x86_64-pc-windows-msvc": "709fa5ad9723e233025ab0cd142b628cd8a4bb8d11fcdbb97a779d78a60604e5",
-    "rustc-1.56.1-x86_64-unknown-freebsd": "b6a440bf5c3b1e4930effc07c6e50bf03cc44c0465f0c379d626b800f4971700",
-    "rustc-1.56.1-x86_64-unknown-linux-gnu": "d09557a497a4f3b0726cae4c8e193843e403c80615f25f6ef740c79d7e4c122b",
-    "rustc-1.56.1-x86_64-unknown-linux-musl": "b49ef5d9d8a2c49e48dda8bf08fc5a95ac87095a8895df9dbce0ecfb1a97c70a",
-    "rustc-1.57.0-aarch64-apple-darwin": "cfd28be33d8669c85dc177775de6c4aa94289bba7cc65b90cbd2d9cd5486c860",
-    "rustc-1.57.0-aarch64-unknown-linux-gnu": "91f1e29387fc53430592985b0620c8587e4aacc8ac582de4ef96c45c9ae930d4",
-    "rustc-1.57.0-aarch64-unknown-linux-musl": "e5289c930ed72c08310108f543deafc319c27389523c6c6905fa35283e9ab725",
-    "rustc-1.57.0-x86_64-apple-darwin": "4417eea141bb915f39305cf2d812579f503422fa2e712eddf11427ce91c48294",
-    "rustc-1.57.0-x86_64-pc-windows-msvc": "073bbc3f8f71fb20bf6c7bd2e4cf6e2758c8ee6f08d3eef51a615d5b5b8a516b",
-    "rustc-1.57.0-x86_64-unknown-freebsd": "ef9af581c88b5d52f3b91f8781fbea77426364ac035bb7cb274f41fa3bf60706",
-    "rustc-1.57.0-x86_64-unknown-linux-gnu": "92257646cd85b7c03520c838920851c879845ed8dfd2b339d2ebb4480ee4d4d3",
-    "rustc-1.57.0-x86_64-unknown-linux-musl": "49ff02cdc94bd8732c2969b06006773311c8e41c188a9cef627b37eefb0b73d7",
-    "rustc-1.58.0-aarch64-apple-darwin": "7b3291177d4f8a73c8e20185a04bbc88775fc85eeb271c19bc8f37fb5051ae0c",
-    "rustc-1.58.0-aarch64-unknown-linux-gnu": "34d8fdaec504efe6e9448ad5a118ac0e7ef3bd9a8f6c49ea68204f2f9a9dae4e",
-    "rustc-1.58.0-aarch64-unknown-linux-musl": "2c6ee3dfdd496a01f55f6b0ae683d3acdecbd42ee386c4000b336351e89b3cac",
-    "rustc-1.58.0-x86_64-apple-darwin": "3d3815385dda1c1d8617ee14b682ec3804307b0f5a0ac5604a7dc5efc783263f",
-    "rustc-1.58.0-x86_64-pc-windows-msvc": "2296e7bd3e4977917e1cfd021a618064e3bac955338193fba89e84705306aed9",
-    "rustc-1.58.0-x86_64-unknown-freebsd": "89969a81fd9c9cfb94e6554bf1a8884417b0d5dde5e7c45bd4e9b1887771f5d5",
-    "rustc-1.58.0-x86_64-unknown-linux-gnu": "94e3a5e6dca2ae2516d6496568b6791b9501ac500c3e5faf6f42baaead41d404",
-    "rustc-1.58.0-x86_64-unknown-linux-musl": "1134b85ce578ac017650d8e7c360d14a85a1d6185c164678f95440cac1f6786d",
-    "rustc-1.58.1-aarch64-apple-darwin": "cbcc922fa499131b4f9b0ff6c656792edd34452dc902552a0d0dfa8f4690b996",
-    "rustc-1.58.1-aarch64-unknown-linux-gnu": "ad97b6e3ed1e6701ceaa1bad7f2da391546d27b121d967b606bd48542f21c669",
-    "rustc-1.58.1-aarch64-unknown-linux-musl": "156c5909cb6c9b5d96662f2eec87edefcdf019783082745b9abaeb97d1d45307",
-    "rustc-1.58.1-x86_64-apple-darwin": "859ea96ca53ed6480333273ccd39c0f9a487d7f288a5fd2646c3907353402fce",
-    "rustc-1.58.1-x86_64-pc-windows-msvc": "31bc5359886854fccf16956a92c4205372df0ba1be19642879a0e9d6441a069c",
-    "rustc-1.58.1-x86_64-unknown-freebsd": "ccc043fbf337adda1dc66611f8b8eea3d2fd9e1cee9adc1a07d1a3c4c0b4711b",
-    "rustc-1.58.1-x86_64-unknown-linux-gnu": "1bab764b75bec5b83ec88f6cf7e6127f0bc5bf64307277d1f5ce8838a8b8a415",
-    "rustc-1.58.1-x86_64-unknown-linux-musl": "626cfaf717b3e05d2e20726ecbbd7026edf8a816de06ef0f499e5a27339c1310",
-    "rustc-1.59.0-aarch64-apple-darwin": "caac78491d8f0844bb9a512989a409c35ff681a131495e7ebfacb69ba006bbc1",
-    "rustc-1.59.0-aarch64-unknown-linux-gnu": "04d4add5530d247214ec8afd32f2c91d75b219035130b877e4769cebcd4174d8",
-    "rustc-1.59.0-aarch64-unknown-linux-musl": "a50567a08ec5a33bdb60b4a6c4572cb85c2e48429ed6d98a28580ca7ed82d8ed",
-    "rustc-1.59.0-x86_64-apple-darwin": "eb5b613800c75882bed9e3bb48c325aac0e5ce418ae2b19f51e4ccf7e4781e0b",
-    "rustc-1.59.0-x86_64-pc-windows-msvc": "e838ecdba060b4ad3d0becc08027c9598977db40ac1f4e5fa9231725110ea06b",
-    "rustc-1.59.0-x86_64-unknown-freebsd": "053fe53aa72e9400b3657049cb0352a26268bd5a81a2b09500ff2cb150c32767",
-    "rustc-1.59.0-x86_64-unknown-linux-gnu": "e7ed041c93b77a7d986aa198d28f63ab96493fdf164bd28c8785c5b31a9e62d9",
-    "rustc-1.59.0-x86_64-unknown-linux-musl": "34e7b33acbffd2012906249509a0d364692767a15a54d10e67122361703ee811",
-    "rustfmt-1.48.0-aarch64-unknown-linux-gnu": "28f7d1ef37c034033eb0e30a13e5f0ad5bbc506adb8a8a9c03adce2b0d4842d5",
-    "rustfmt-1.48.0-aarch64-unknown-linux-musl": "e6efa0fae347f97dca3b892565302d35b4cedfee7cb6e2b5fcdb2801074fe018",
-    "rustfmt-1.48.0-x86_64-apple-darwin": "cfe593a9446e7dfa52ded8a7cca174ba0c2d1cac6e865d04e0890282f25d22e2",
-    "rustfmt-1.48.0-x86_64-pc-windows-msvc": "96d779befe8bca88d3cb69723d401d290a4a637746e8cc119126cfe9d5c773ee",
-    "rustfmt-1.48.0-x86_64-unknown-freebsd": "ae84ca6d0841e6be0f140efd67693a1a50520e6610f26e5ee57a15b5a9947588",
-    "rustfmt-1.48.0-x86_64-unknown-linux-gnu": "12d185cfd6ce15e4df3590bf1b9b3233df75e7aa14b42a9269b4235347a14b2b",
-    "rustfmt-1.48.0-x86_64-unknown-linux-musl": "1a8674af3fbe9616426a02fa4115057e411e7dfcc0f7bb377ee27e3a3bec15f4",
-    "rustfmt-1.49.0-aarch64-apple-darwin": "4f03d2913ecff9b534bc6c2c7684d0884958a1c8f12668fea86c0aa4371231ae",
-    "rustfmt-1.49.0-aarch64-unknown-linux-gnu": "9ef9c477911b3718539defa18ef5838b6f479e646d82e410643e5e8cb21791dc",
-    "rustfmt-1.49.0-aarch64-unknown-linux-musl": "40dbcf80a23055cf2245a6bbf5e16c0fd0300076e279b8e29d66de8af1d5409a",
-    "rustfmt-1.49.0-x86_64-apple-darwin": "e505092d5525dca1012d57e9c9dfd048cbbe2890e02e1327c1a0af44cd3d7aa1",
-    "rustfmt-1.49.0-x86_64-pc-windows-msvc": "e094798983f77ef95e28db1c561915f992f3a190813162b33e2bc6942485a485",
-    "rustfmt-1.49.0-x86_64-unknown-freebsd": "ed7465ddcc654b32822e48a8e91cd58391c36210b332f054a9ab5c1e5733ae74",
-    "rustfmt-1.49.0-x86_64-unknown-linux-gnu": "a1b1a9c06b9958116c37e212c5e04d921f78967e9f9956f6249a16e033f67a03",
-    "rustfmt-1.49.0-x86_64-unknown-linux-musl": "cad26f7f7f9c67f32e03a07ad84f9dc9b7f755213cc0cc596d2971836bcc0cc1",
-    "rustfmt-1.50.0-aarch64-apple-darwin": "1dd932c23b3e70c1183dcb58c431ddd97df72c173b4e28d3a3b008132079a914",
-    "rustfmt-1.50.0-aarch64-unknown-linux-gnu": "0bddf9a1b55bcdae7cef3b37c56ba5816a2b2c932d57dbe7cfc73acce65f5aff",
-    "rustfmt-1.50.0-aarch64-unknown-linux-musl": "c885b27194ad8405d2c75ff134d81c5a51c24ffcab2ce5f3684e8de8b353f66b",
-    "rustfmt-1.50.0-x86_64-apple-darwin": "90108b9bf4b529d12096d7e7c3ef97e77d2304ea142cd0352d0b9814df80c7d2",
-    "rustfmt-1.50.0-x86_64-pc-windows-msvc": "4ee791749b1312091ecb66bee916b0f70fa71cfae1315de8d3351c6da913d5f2",
-    "rustfmt-1.50.0-x86_64-unknown-freebsd": "037c575d92f87ee372b2bfb3b802c8a86690133ee1c82a5a8402ef9e97780f77",
-    "rustfmt-1.50.0-x86_64-unknown-linux-gnu": "2537e788067e56f263ab52869a6efbbf6be9f57ad6b14fc33ddab7cff79a3768",
-    "rustfmt-1.50.0-x86_64-unknown-linux-musl": "6f412c518e078f8891578b174d884cddf992b5fb72b14952f71d5ee8c2a743d8",
-    "rustfmt-1.51.0-aarch64-apple-darwin": "2f6966b51abc33a76b497776f061d049dc9c928aa09ea773a3404396002b33d8",
-    "rustfmt-1.51.0-aarch64-unknown-linux-gnu": "5dfa947dfc221ecb282a082263d79c5faf0c586acfcf7e416357d3e5107675c8",
-    "rustfmt-1.51.0-aarch64-unknown-linux-musl": "0fbca6b470e8c888b03adb501d45db68a5c19dcc05b8f5a1d73d5f9a4d1b3c01",
-    "rustfmt-1.51.0-x86_64-apple-darwin": "b30448ce429f2920b5a4d1bf50b40f4d251188f29ffaa6af12bfb131d993c5e0",
-    "rustfmt-1.51.0-x86_64-pc-windows-msvc": "520e8eaa186acc4f978fd30a34566b11073ed3396628e3dc192aa2862be42edd",
-    "rustfmt-1.51.0-x86_64-unknown-freebsd": "3693bd333303984ce0854452c31b5720cf6d8fa02f69062dc28b7db3b677bec2",
-    "rustfmt-1.51.0-x86_64-unknown-linux-gnu": "e50c03cbf104de7788eed8d5d923b5dc7555f12a3c045275751633121ce74d43",
-    "rustfmt-1.51.0-x86_64-unknown-linux-musl": "6798ff8f805cf1ddc187c4567fa7f3e32b9f347477b0956869caf1f31a99c374",
-    "rustfmt-1.52.0-aarch64-apple-darwin": "263296e44decd784b468de22519f7a22fa3dce3358bd96aab627f60b1f9778db",
-    "rustfmt-1.52.0-aarch64-unknown-linux-gnu": "f70260c7f6e39e20b376389d75e8c3518608860a3ce7647abeff626204341ea7",
-    "rustfmt-1.52.0-aarch64-unknown-linux-musl": "97190a6c8b6044c0fb375c71d672204adcf62d1b6c5d747715cc94a0ae631e04",
-    "rustfmt-1.52.0-x86_64-apple-darwin": "c3841b8568c00068ce6d264688320466c95307971a64adbb2b6ca6d5e54e158f",
-    "rustfmt-1.52.0-x86_64-pc-windows-msvc": "eba78266b8a381c2fbb07c4b3a1571a6fc102e1b9fc298ae362ab8da0aca41e5",
-    "rustfmt-1.52.0-x86_64-unknown-freebsd": "e150cd81ac2e7036ed9ff55b93c62cbcbd6fa2025371fda568a32a071cf94020",
-    "rustfmt-1.52.0-x86_64-unknown-linux-gnu": "7563b04b2900e9bef6360fb445baf00a8584072142d4554eb54f8109ac7486c5",
-    "rustfmt-1.52.0-x86_64-unknown-linux-musl": "ba74b93b4a70a7070d516a332a589b10bd161ab8b36826052ffa0569b1d6b5e6",
-    "rustfmt-1.52.1-aarch64-apple-darwin": "b02cf93d230a4147f2551e012b314b93d2d448ebc4ee71896918c488d8e6e446",
-    "rustfmt-1.52.1-aarch64-unknown-linux-gnu": "727d227f5e1e0ab3bcaa4f4adfe6b5e21fb70279b4d5825cb95fc6983c3cd9ae",
-    "rustfmt-1.52.1-aarch64-unknown-linux-musl": "f707919fb5ad7d0db02fd2e63293153b20043c4511385840835d6a8ae7087d96",
-    "rustfmt-1.52.1-x86_64-apple-darwin": "fc2d3cfd2742800745a97a3cb69a005166992c756dc9fd191add1f37842210e4",
-    "rustfmt-1.52.1-x86_64-pc-windows-msvc": "d5cf3e6be769dd266e66e0351062ff1317b537bf0f4e95def2a8f518f6e6571b",
-    "rustfmt-1.52.1-x86_64-unknown-freebsd": "ecfebd807b2addc80d102f4909f42c71104039e1f7d9b7bd7e6ebdb5072d8d6f",
-    "rustfmt-1.52.1-x86_64-unknown-linux-gnu": "1717c5eeae799b0ceee7f8b7180543713d08ad72e03af77b05dd1e69e32b06bc",
-    "rustfmt-1.52.1-x86_64-unknown-linux-musl": "5b19c462dc70b632e44189c1384aa753bdc20f9a9ad66d35dd34d321cfb19b1c",
-    "rustfmt-1.53.0-aarch64-apple-darwin": "4a29c3663a2c0f5133ca21e1c12223e9ef4fa3f8b1f29b98709ad588aa52c140",
-    "rustfmt-1.53.0-aarch64-unknown-linux-gnu": "d5157ddaf978a3619292a5b133390eea3a049b7903eeef25ded9f24c995a7c58",
-    "rustfmt-1.53.0-aarch64-unknown-linux-musl": "91006e773898a40af2f0e843e7f1111ce07320f1507e61d8c9a4ae216dfe245b",
-    "rustfmt-1.53.0-x86_64-apple-darwin": "b4db708e078615e1d21ad13acfc4b5943b3548d094d397c3b14e24dda3bd78ca",
-    "rustfmt-1.53.0-x86_64-pc-windows-msvc": "adead783882f055129268f11d137857bdcac5eb1ccc20ea8ff8edbb67026f6ff",
-    "rustfmt-1.53.0-x86_64-unknown-freebsd": "569c6185ad0868f855b1414a51f9e9eba52a0cbf270c0b674bcb4580eece668b",
-    "rustfmt-1.53.0-x86_64-unknown-linux-gnu": "e4e826c678f16c6a896e1226309c12c3677ff9c4bc8065ac6932fc616bb67572",
-    "rustfmt-1.53.0-x86_64-unknown-linux-musl": "6d2778b35149971308717e6f10c29f189f46003a1bb9490d495906c0ae6aad45",
-    "rustfmt-1.54.0-aarch64-apple-darwin": "1823b397d89bc23b1a8ec4df113c5f765a0e91cae655dc59fbf13be4616c0f3f",
-    "rustfmt-1.54.0-aarch64-unknown-linux-gnu": "82f45f13c8885663461f27ca7d590c341e41cdf2ea76f40d23b90d38d374cb46",
-    "rustfmt-1.54.0-aarch64-unknown-linux-musl": "fbdfde8d13d08718364a5dfd97f8b99898134a630a4ec13fe8405402688f746d",
-    "rustfmt-1.54.0-x86_64-apple-darwin": "e33122e00fa2ba319e229f3a92380e31b2b813398f3a681d0e1b2e6fbe3f135e",
-    "rustfmt-1.54.0-x86_64-pc-windows-msvc": "608da9f9cc59d24c14897febeb0983d0ace04264d91e3ff9dd8b57bb546a2965",
-    "rustfmt-1.54.0-x86_64-unknown-freebsd": "4b5098c749c547516ca2c81aabf87617d589ae674cdc48d7636b37cc5017d29b",
-    "rustfmt-1.54.0-x86_64-unknown-linux-gnu": "0205d6af87d381b93aa69bc75c0bd44ac5eb006832f0f505a851dc8d22aaf101",
-    "rustfmt-1.54.0-x86_64-unknown-linux-musl": "34a2321d2f7f57398b6f588f2e219639f0958d444ca283ff0c8d0144d8c09fc1",
-    "rustfmt-1.55.0-aarch64-apple-darwin": "dad1bcea851e509f289178c7bbd8fca5152efd1876450e353cc77fe5fccd2f46",
-    "rustfmt-1.55.0-aarch64-unknown-linux-gnu": "a0a24a0e5618997218cced0632dfe776315225ee394e8412ef5dcf9e21325b9c",
-    "rustfmt-1.55.0-aarch64-unknown-linux-musl": "736208df67d87b3ced05764d52de07470f44502c901c48ab6cc6dfe3cab6046f",
-    "rustfmt-1.55.0-x86_64-apple-darwin": "b38a096a59ecc6309bcbea67ed4e50de6d48cdc124ff5b721bf7e929ef4c4fa7",
-    "rustfmt-1.55.0-x86_64-pc-windows-msvc": "49f58043700b33578963faa22dcb993b5d604d7d8cc852ff53f11138f9a20f35",
-    "rustfmt-1.55.0-x86_64-unknown-freebsd": "5317af05afbcfde0fae7ba4ad5404901b0c611d826c7dd38926a8b08ade53c72",
-    "rustfmt-1.55.0-x86_64-unknown-linux-gnu": "ecb58add71d3f3cf8a213fe7b531bc230f8da5cecd835cee6429e76798b548cc",
-    "rustfmt-1.55.0-x86_64-unknown-linux-musl": "33bd862bbc9b54745c3e1d400440996fd0e6759c4d482f1a888ba8fafab29c3a",
-    "rustfmt-1.56.0-aarch64-apple-darwin": "0c1dcc80d2028748c38a4c3360048940a887ca899af577e9f3026c3d1a359469",
-    "rustfmt-1.56.0-aarch64-unknown-linux-gnu": "3dabc693866f74a956b99f8cac1f1beca6dbc38de6cc095ccdacbdccc18b4350",
-    "rustfmt-1.56.0-aarch64-unknown-linux-musl": "9d1b9405dc2cbeb7ff7f2ecb468a42d7a36429e642714de1605eb242947afc88",
-    "rustfmt-1.56.0-x86_64-apple-darwin": "f8fc28492af2fece8915db0959bb5af354706d63556854f4c149e6dbc9f3c11b",
-    "rustfmt-1.56.0-x86_64-pc-windows-msvc": "1080a5e5f3957eed2799ce65adf93b8bd8c0a9233c5149d8992c339fe7acab31",
-    "rustfmt-1.56.0-x86_64-unknown-freebsd": "a5e58bbf9407ac7da18df4d385f0988d299b1a71d18ce39fb7d1de15c007f5a6",
-    "rustfmt-1.56.0-x86_64-unknown-linux-gnu": "ce14465427e5919e407af9e58fea0a638aa02515f182a1a1c0b740cbd52a5e5a",
-    "rustfmt-1.56.0-x86_64-unknown-linux-musl": "98dbc11edb80de0c1303823f890434406c36501d89ee45ba2137d4ef4220db8a",
-    "rustfmt-1.56.1-aarch64-apple-darwin": "25e64095594e6aa4c25b2dfb8830108ba32af2917c1b1a4a1a966114d85199d2",
-    "rustfmt-1.56.1-aarch64-unknown-linux-gnu": "b6d1479d66c16eabcd708246521539a60eee31b1b3b492c20676ebbbcbca23fd",
-    "rustfmt-1.56.1-aarch64-unknown-linux-musl": "441f9df760f65a79ce15d79938cf984961cb712639d85e91765abadfc616002f",
-    "rustfmt-1.56.1-x86_64-apple-darwin": "fa4e086107b5219228cdd928fd4671f5ab7a1165c39ca79874fd99a0f865b12b",
-    "rustfmt-1.56.1-x86_64-pc-windows-msvc": "a18c253e6d29ea8575e9b25a1fe43c913082c0036e2532f372e376b8d0c0e15a",
-    "rustfmt-1.56.1-x86_64-unknown-freebsd": "b3f184b3cbe2139407e977838e98a843d90409cdebe86d64338841fb919281c9",
-    "rustfmt-1.56.1-x86_64-unknown-linux-gnu": "6dce6eced612048180892fa9016a06a901c9fc275da046d8e229986f4dd97115",
-    "rustfmt-1.56.1-x86_64-unknown-linux-musl": "0a307bd9a4b08a91f1fee0e90e412d92c9b55b75084c2e9b24ed99dd9469f4fb",
-    "rustfmt-1.57.0-aarch64-apple-darwin": "85fc5eedb0bb4d6ac599e567ae84debc05a3a5d2c162f73c59df5bf0d5d3fb19",
-    "rustfmt-1.57.0-aarch64-unknown-linux-gnu": "f8f4c4c16a24aaf4e0b9752395bf8b20154832ef6d0b9e98687de44b699ff5ff",
-    "rustfmt-1.57.0-aarch64-unknown-linux-musl": "093bda1fc0c087dffbdddafb9a2fe9f67e49cfc7794aaca22a92aab5d0f0c789",
-    "rustfmt-1.57.0-x86_64-apple-darwin": "83a928a03d484121531852a591b76a13c631e275ef376d57b9b23cf6e855f6b1",
-    "rustfmt-1.57.0-x86_64-pc-windows-msvc": "7c61a46df59d6c9386a5647df54a1a725d81dc924fb24fa7f7e1b51ad7ced047",
-    "rustfmt-1.57.0-x86_64-unknown-freebsd": "0d0bd640445e1e45a93ca0d0f5b0f03c464f6a91c9b5353c3ac136ba366bbf36",
-    "rustfmt-1.57.0-x86_64-unknown-linux-gnu": "48b09dbf1c7fc16e31123e8c83eede18c3577811762f574a5b24a2f759a172bb",
-    "rustfmt-1.57.0-x86_64-unknown-linux-musl": "6ed302cafc1363c8ba0bb789467a80be8558b3ed712331a0da2477f8d53f0794",
-    "rustfmt-1.58.0-aarch64-apple-darwin": "79f391f725e598163407df09570c3c2bfffc89250a08b3143c7f72db8ec0c632",
-    "rustfmt-1.58.0-aarch64-unknown-linux-gnu": "ddb03ea92c4274b2eccb43d0f25bb6ccd8beab53123715c3c51de7220b60b21e",
-    "rustfmt-1.58.0-aarch64-unknown-linux-musl": "8749c82a655e2f99bfc7b8c3d1f12c384edb8cee7b26078a7ddf87da57a31429",
-    "rustfmt-1.58.0-x86_64-apple-darwin": "83fb3514eec03049daadb2623f27b92d029b292c0ed6102c06f1a4a39f81b1f8",
-    "rustfmt-1.58.0-x86_64-pc-windows-msvc": "661a53930cfd8b74f9a66df0871a0bd8534829d845d5253292f7f223d17f0aa8",
-    "rustfmt-1.58.0-x86_64-unknown-freebsd": "a91b4561ca1cb756da40e17a2d270c464bb177289c2cc8352e2b5fcd26c0c63a",
-    "rustfmt-1.58.0-x86_64-unknown-linux-gnu": "4c4f0972406bf4a0a83be4cf2ee0a3556db1aa6aefedab4851ed19a3dd2e88bc",
-    "rustfmt-1.58.0-x86_64-unknown-linux-musl": "7075b11ab68bbdebce0884e42432d7599680fe023ea2ab4e81c2629d25fd32e7",
-    "rustfmt-1.58.1-aarch64-apple-darwin": "ede8f0bb46047e3e106b20bdd4e181fc81f810eed26d5f1816b0b0b4a9a5458a",
-    "rustfmt-1.58.1-aarch64-unknown-linux-gnu": "71dec8f396d87ec57e353000331e62c7ab0e431e26c42644d43d78fd8d6df3f5",
-    "rustfmt-1.58.1-aarch64-unknown-linux-musl": "f605d5cf81369a51cacb6ce17d57dd553096b6843c249c37f996d0c768476429",
-    "rustfmt-1.58.1-x86_64-apple-darwin": "6ec7ef5c492531714f42936f7e03ffa9b428953692c64575b45da1dfaa3905b4",
-    "rustfmt-1.58.1-x86_64-pc-windows-msvc": "c2d30d3791e612f2f2a6e9eef52707ce79e7bf2ff5c6150bdf91039686988eda",
-    "rustfmt-1.58.1-x86_64-unknown-freebsd": "d2a32f7479dcb5bb71ec8151912cfa315bfaeb7c3b45ad10afcb6bb7b9652d75",
-    "rustfmt-1.58.1-x86_64-unknown-linux-gnu": "09328241bd46a21793a5a76ba6a1a5b862c6bfa29afdabdc9c889b08c81ee8ba",
-    "rustfmt-1.58.1-x86_64-unknown-linux-musl": "8189d38bdd1225241ecbd75b0869c1945450a5c28b675713892ae32cf0b77750",
-    "rustfmt-1.59.0-aarch64-apple-darwin": "70a677515845f9b22b464d022958a2d0ba7c927a4979f3631b1f851ea2e9b2a8",
-    "rustfmt-1.59.0-aarch64-unknown-linux-gnu": "e79b98a6bb51ed225436375fd095610b88093f287404836949d394a5d315e834",
-    "rustfmt-1.59.0-aarch64-unknown-linux-musl": "dc977d6459b1d4d9e761dc20a60f1f734e6081b1b17670eb4bbe9d2fc292b9de",
-    "rustfmt-1.59.0-x86_64-apple-darwin": "52d5579999e146e999426d57be78a8b26ace6ab7810aefb968f69e6b2c9ecf53",
-    "rustfmt-1.59.0-x86_64-pc-windows-msvc": "cd923eae91c5652fa983abbc07ceb67d6f5b8f98664f86cfc1bff7ec1374e0c1",
-    "rustfmt-1.59.0-x86_64-unknown-freebsd": "026abe662bf0ca734796e93224bed7ad9015a3e2613ca7db59c9b89e3d6088bb",
-    "rustfmt-1.59.0-x86_64-unknown-linux-gnu": "2932efec54b152e094e557c351aa5844b87e61bbcb4d4b7bf0a2dd7ad457df39",
-    "rustfmt-1.59.0-x86_64-unknown-linux-musl": "868aebea8792baa964b5300e6c34b5006660abd4d7aeb93f2d7104de1cfad134",
+    "2018-10-30/cargo-beta-aarch64-unknown-linux-gnu.tar.gz": "9d91fb3ee868421fbf8f4ed62cb7ee843dc6a1e70241331a9441e3ff09f3296d",
+    "2018-10-30/cargo-beta-aarch64-unknown-linux-gnu.tar.xz": "344ff43655bb61a31eb7b13c4120b2676b95bda94a833553932a58e8226f4b27",
+    "2018-10-30/cargo-beta-x86_64-apple-darwin.tar.gz": "920d7218ded8ebd69628f7a7a1043117bec1ed6574ea8babbda66ddb7d0ea5f8",
+    "2018-10-30/cargo-beta-x86_64-apple-darwin.tar.xz": "f59833aa153d549a26d30192505add47f04124301bc15f116acdb0e2aa5fe8c3",
+    "2018-10-30/cargo-beta-x86_64-pc-windows-msvc.tar.gz": "4f76c6264d36f1b0e9e23548d069386ff1b60a85a412596fc122484a4ed942fc",
+    "2018-10-30/cargo-beta-x86_64-pc-windows-msvc.tar.xz": "9510e3c84e668d9bb2aabc832011091ea61e6505d8f64f0f4d986e6b12f9084a",
+    "2018-10-30/cargo-beta-x86_64-unknown-freebsd.tar.gz": "be7ac5c344ca6038a7bcfbeb20c5847ce910ec39cf9a63b8b3e07cb6105dabb2",
+    "2018-10-30/cargo-beta-x86_64-unknown-freebsd.tar.xz": "6fe73519e3a978d81f691cb6b1f578468e575b4404f0f472bc836aa8f49b807d",
+    "2018-10-30/cargo-beta-x86_64-unknown-linux-gnu.tar.gz": "097711a227d157c12a322dbe57f75eb28c7934869ce8aecc48d9946706234994",
+    "2018-10-30/cargo-beta-x86_64-unknown-linux-gnu.tar.xz": "0658b043719884feae2f1d243a20fa7f0bf2ccc79bffaf498a1022e3da0afc71",
+    "2018-10-30/clippy-beta-x86_64-apple-darwin.tar.gz": "84331ae735c78cd1d335b8b5da3c9232d70123197c62f3d7fe32b3bd7a97d1e6",
+    "2018-10-30/clippy-beta-x86_64-apple-darwin.tar.xz": "92230e7b6eff2aa2d9b77ce6824f15a6fded5615428ed8fb26d3082ff54673da",
+    "2018-10-30/clippy-beta-x86_64-pc-windows-msvc.tar.gz": "a59573b3b71c318a75214876c30de03327c4b0409a2e9fa0127ef0ac4eab555d",
+    "2018-10-30/clippy-beta-x86_64-pc-windows-msvc.tar.xz": "1802fa19767e3fa5935e0d5527a00e66893acd8bc4e0c18d37268a4aaff81594",
+    "2018-10-30/clippy-beta-x86_64-unknown-freebsd.tar.gz": "1fcc9d117d5721f3f4c6afb109c626fec238376666f448f61ed5aeaaa6c5a1d8",
+    "2018-10-30/clippy-beta-x86_64-unknown-freebsd.tar.xz": "b2f1980ac582802d53049badba747b6305b6ca8949d97f3eb5c0e01a2ccefca8",
+    "2018-10-30/clippy-beta-x86_64-unknown-linux-gnu.tar.gz": "eee913773c93ec0443aea1629d936b5a4e114e977318d4ef77b6bedf42cd4129",
+    "2018-10-30/clippy-beta-x86_64-unknown-linux-gnu.tar.xz": "b32e78107948ee75aeedfd73bc417c15ac39df2c0df374a7665e1ea81f148b97",
+    "2018-10-30/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.gz": "9417a07c501e173fe3848c815b8536cf70c6518c8040d45b19260ca3ab720760",
+    "2018-10-30/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.xz": "d8178b895e1f892205e09158a4203e2e3739fb6642f560c0a8362f4f84e5fb84",
+    "2018-10-30/llvm-tools-beta-x86_64-apple-darwin.tar.gz": "b86d22bc723936f23186acaa94cd0738ff1c7b703d67712be62d99845a6ccc80",
+    "2018-10-30/llvm-tools-beta-x86_64-apple-darwin.tar.xz": "85193c1b68d8369121226f941667ae1e4f2717ff50678c54b4580124f761db54",
+    "2018-10-30/llvm-tools-beta-x86_64-pc-windows-msvc.tar.gz": "cf74e15df51033370d4225fd9141f4cfc5c37145070d2296915fbecab9275b03",
+    "2018-10-30/llvm-tools-beta-x86_64-pc-windows-msvc.tar.xz": "928e35e5637a4575c29c2ad2185b09128f35fc56ebe14dbbfe52d0f45eec92c5",
+    "2018-10-30/llvm-tools-beta-x86_64-unknown-freebsd.tar.gz": "38ba85ec56c374b606a586221185ac351d04871892055f8936f28958e5e7a5cb",
+    "2018-10-30/llvm-tools-beta-x86_64-unknown-freebsd.tar.xz": "db906d9d7e7c6d994d8973bce46738021e7ec0f38ff708eadff6e76c5cb22551",
+    "2018-10-30/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.gz": "8d96f1475fc27f21d80bda80496783aa3181a4b33a138b7a89edcef2ddb6cf58",
+    "2018-10-30/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.xz": "fea0af08a6461ed815be5fdf99e3f115b0aa0ed4c4daf99b53a964127fcbc8d0",
+    "2018-10-30/rust-beta-aarch64-unknown-linux-gnu.tar.gz": "e9bc9d4a89299595ef42cde7303b50a7921e20a5ee4d131c4e1770a391611303",
+    "2018-10-30/rust-beta-aarch64-unknown-linux-gnu.tar.xz": "8d87dc7da282fbe31e1c9cf74940464e25d6722b2830f954a0a0f53fe4e607cc",
+    "2018-10-30/rust-beta-x86_64-apple-darwin.tar.gz": "51acc0077d6abae5beed0e7b99c39ae9b8a0ff0f66daec227caef653046144e6",
+    "2018-10-30/rust-beta-x86_64-apple-darwin.tar.xz": "bb0d883f4f022ece2f10299a1509f87bbce4d4ce09b49f54be25ceb68e1a7279",
+    "2018-10-30/rust-beta-x86_64-pc-windows-msvc.tar.gz": "07f3e42ba299b3b5341b410c4317161eba4b40bbc9fc449a9c187193fe49250c",
+    "2018-10-30/rust-beta-x86_64-pc-windows-msvc.tar.xz": "7f2e12279534921294458a638693d8a5b31766630f982d83cf59d6f75a85654d",
+    "2018-10-30/rust-beta-x86_64-unknown-freebsd.tar.gz": "49f1efe5bf10319446a298096dea73e478a466daca20a5b93d5263925e4ba9be",
+    "2018-10-30/rust-beta-x86_64-unknown-freebsd.tar.xz": "40c42d3995b6470edbd6e9f3dfbc999a2bc905001c1941c233dbd902ccfa62c4",
+    "2018-10-30/rust-beta-x86_64-unknown-linux-gnu.tar.gz": "07963c2d6d56d077856f17e786414cf965832e7942f4ec72dec2eb51452e74b7",
+    "2018-10-30/rust-beta-x86_64-unknown-linux-gnu.tar.xz": "1c565fa6abdf2043d19092da4eaf2d2413de98ae573761093c55f9f572484084",
+    "2018-10-30/rust-std-beta-aarch64-unknown-linux-gnu.tar.gz": "bf0895ccf65a86c1f51dbbebd0980bd07dcdc3919407fc84f5838cbbcb29e309",
+    "2018-10-30/rust-std-beta-aarch64-unknown-linux-gnu.tar.xz": "1a0e7da414ce42a25fa2d1cd874d5bd58d5ef6db8ad23100d3a418dcfabdf61a",
+    "2018-10-30/rust-std-beta-aarch64-unknown-linux-musl.tar.gz": "53c07a1bdae00c0ad587349006e4080c50d511c0368f848fc98bf678dd3f6470",
+    "2018-10-30/rust-std-beta-aarch64-unknown-linux-musl.tar.xz": "37b5787c366e2ed998f34f2d4462d2890cf1f5203dca43925ae65632fbb2a6eb",
+    "2018-10-30/rust-std-beta-wasm32-unknown-unknown.tar.gz": "5453e05993aaa90c8ac361086dd888a29a48f1b90b2c2184202c4b44b2e5569d",
+    "2018-10-30/rust-std-beta-wasm32-unknown-unknown.tar.xz": "013010a4f7403453c88802fbb91fbd3254a1f3723c6ff700ddc3742a85e7e768",
+    "2018-10-30/rust-std-beta-x86_64-apple-darwin.tar.gz": "96fc1daea8868e176a14706333590b13a41193bd8ed5a711f23a15eceb5c6ce0",
+    "2018-10-30/rust-std-beta-x86_64-apple-darwin.tar.xz": "1be15b33ca23ec3c9e94de2531e99a387b44a7efbba64e1832e0adc619655935",
+    "2018-10-30/rust-std-beta-x86_64-pc-windows-msvc.tar.gz": "6af758524d77288cb5c548d26467680d57aeb778063787662b1e00ef3887866a",
+    "2018-10-30/rust-std-beta-x86_64-pc-windows-msvc.tar.xz": "d207749b17fa2807c4c93d2421a260b2053737283cc7c808c9b116d87b6f373b",
+    "2018-10-30/rust-std-beta-x86_64-unknown-freebsd.tar.gz": "5aef62464a5580ab6b38c9e54203db12f90ad42de538b7a5eefc7778b55b6497",
+    "2018-10-30/rust-std-beta-x86_64-unknown-freebsd.tar.xz": "af04b55d11aa77c0a8577057b90727a1e80845347cb92a91a4a29b4116994426",
+    "2018-10-30/rust-std-beta-x86_64-unknown-linux-gnu.tar.gz": "34996a688d6a4c3587f873b0a8c86fe1d2fee2a269b6e669b1cb8c6908fb77b8",
+    "2018-10-30/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz": "99bea875c631cd3b302446f7d4c863e85419607e436cb0480fc6f1e56e84e091",
+    "2018-10-30/rust-std-beta-x86_64-unknown-linux-musl.tar.gz": "6e9474546838c061288e8464d28a843814bc2ff4c9d06a5fba065c1b03650be4",
+    "2018-10-30/rust-std-beta-x86_64-unknown-linux-musl.tar.xz": "07271daf8f693f31535e33e0683271c19dfbcf1896cc64f3141d5371376db08c",
+    "2018-10-30/rustc-beta-aarch64-unknown-linux-gnu.tar.gz": "e6bb89261baa494ef98239bde9821b66671de5cd78352a9c100abce3a18ca250",
+    "2018-10-30/rustc-beta-aarch64-unknown-linux-gnu.tar.xz": "09f2f0bc7a35e1c0d069c7e23ccfebc909a407d566854ae4085dec182deb4696",
+    "2018-10-30/rustc-beta-x86_64-apple-darwin.tar.gz": "22153f359b8b98341aa0349233112fff2b9f092988f9d678626207ba29666b5b",
+    "2018-10-30/rustc-beta-x86_64-apple-darwin.tar.xz": "61fea5694f64ef7f82d2b0292fc4ca4808553defdf8b30fb32312f5d499992d3",
+    "2018-10-30/rustc-beta-x86_64-pc-windows-msvc.tar.gz": "9cd8225f1307aab95b439dbecd70aaa35e03c913ba0897dc7fe3a04755fc15b1",
+    "2018-10-30/rustc-beta-x86_64-pc-windows-msvc.tar.xz": "495d72fdb7b3c267bd5c5d6eb200592f97c89fe038aa364b28259bfe039eca4b",
+    "2018-10-30/rustc-beta-x86_64-unknown-freebsd.tar.gz": "e207562cd5e3a17497e029bcb1cab56d9fa474d788906f13e389a3cb804ea4d6",
+    "2018-10-30/rustc-beta-x86_64-unknown-freebsd.tar.xz": "cc688f0613995f0cc3dc494a34a49a103f5e00f5cf420deb41c1d5c21c824c37",
+    "2018-10-30/rustc-beta-x86_64-unknown-linux-gnu.tar.gz": "63b69b000cda551f2499ffba6e3f1700acb2b22a47ca9ec9edcc3e578ed086e6",
+    "2018-10-30/rustc-beta-x86_64-unknown-linux-gnu.tar.xz": "e368ec3bc3a6e96c4a9b22ad52ab29d4c027bec796e3e605f9f52d2ce3029663",
+    "2018-10-30/rustfmt-beta-aarch64-unknown-linux-gnu.tar.gz": "bd97e8012277d49beececdf4125610c2d0112cd22f8add53f86fd7c6dac5dc0d",
+    "2018-10-30/rustfmt-beta-aarch64-unknown-linux-gnu.tar.xz": "c870098e642b38b5524fd3e0fc6902450d9915da06019fd572ac4cc0c8d0aeed",
+    "2018-10-30/rustfmt-beta-x86_64-apple-darwin.tar.gz": "2c213f43902104ebefe9eee6fa49aa36e16af972cb7aa1c63d772e5d05f74b59",
+    "2018-10-30/rustfmt-beta-x86_64-apple-darwin.tar.xz": "d13856fe88d54ad775967e60077225294f3a0fee84a43194d0d35c463bedce2c",
+    "2018-10-30/rustfmt-beta-x86_64-pc-windows-msvc.tar.gz": "316331e7aed82251ab3b701845e8b1e707947670498ce4fc364ce1d6813e1340",
+    "2018-10-30/rustfmt-beta-x86_64-pc-windows-msvc.tar.xz": "db1483f8f3881cfa9b1f2363d23fb15e4af633e5fe2a6631bba3d55ac531c977",
+    "2018-10-30/rustfmt-beta-x86_64-unknown-freebsd.tar.gz": "17826e710d5912d23cd981b46b598733cf8833c20dc7d03d150c5e53ad0a38d3",
+    "2018-10-30/rustfmt-beta-x86_64-unknown-freebsd.tar.xz": "a40a40c283c09781282ac939966848025a7bfed3c45092f665679eec9e7e3919",
+    "2018-10-30/rustfmt-beta-x86_64-unknown-linux-gnu.tar.gz": "4af3f9faacd78deef2e8a06e2971ebc7540de07525ac805fcf334818a6ee0e97",
+    "2018-10-30/rustfmt-beta-x86_64-unknown-linux-gnu.tar.xz": "09b5c2501452b01170bfb3bdbd32655509e5ea28a998c3e9f569d9e100ced412",
+    "2018-11-01/cargo-beta-aarch64-unknown-linux-gnu.tar.gz": "44802e459a0bc1677b52593d413959982c30786524412e9e1c61d67c8230d4f6",
+    "2018-11-01/cargo-beta-aarch64-unknown-linux-gnu.tar.xz": "f6335dc9c9eb147c718622695375139c2612b89cb85f1898bd698e93adc281ee",
+    "2018-11-01/cargo-beta-x86_64-apple-darwin.tar.gz": "e5130c79154056a451d95a3b213622d0e7e3dd3625735fa5ae725fa50849facb",
+    "2018-11-01/cargo-beta-x86_64-apple-darwin.tar.xz": "9f1d8233f700dad6f6ad66ffadac6419c2dfcfb4e39c40729b86e72d0c186e4b",
+    "2018-11-01/cargo-beta-x86_64-pc-windows-msvc.tar.gz": "481f845f171e4566c59d9a2df802c678b6102d2d661b731e2a71a50c597cbeca",
+    "2018-11-01/cargo-beta-x86_64-pc-windows-msvc.tar.xz": "796ac40029201a2dd9242daf3142988f16d9283791e072384d3d038e298cc49a",
+    "2018-11-01/cargo-beta-x86_64-unknown-freebsd.tar.gz": "0b596632c675a277fac894b644ecdb86d6f44036dd089ce8d410fdd04354b8f1",
+    "2018-11-01/cargo-beta-x86_64-unknown-freebsd.tar.xz": "3b6d9d04ba8ef5934ce26dc4ca3e026fbe4975faf9dc2aa85c465d1c95ea5efa",
+    "2018-11-01/cargo-beta-x86_64-unknown-linux-gnu.tar.gz": "8519d3fca6aca45ed94daeecbd8d25c9bd1c75f1acc5078b64b771bce6986b44",
+    "2018-11-01/cargo-beta-x86_64-unknown-linux-gnu.tar.xz": "6eaf52d3da4a7c33407e9b9a17be96eab30cb7d050480f61bbc37672df649e13",
+    "2018-11-01/clippy-beta-x86_64-apple-darwin.tar.gz": "8672df2c6b8a18bbf9b654188de22bc8ce4c8bc407d2b3fe3ef208add4e27cdd",
+    "2018-11-01/clippy-beta-x86_64-apple-darwin.tar.xz": "27bbaf971ae1f4cb119ea5bd770e964893088e376c0b33c726eea58e88043211",
+    "2018-11-01/clippy-beta-x86_64-pc-windows-msvc.tar.gz": "4cea4a9cbbc0b56efe11078711d244ab87de3397873c437f3f70614ef896ff83",
+    "2018-11-01/clippy-beta-x86_64-pc-windows-msvc.tar.xz": "0022e1f9199f9285d970e205cd309925fa40b16c6de284ef0f71bd90952f319f",
+    "2018-11-01/clippy-beta-x86_64-unknown-freebsd.tar.gz": "03fabba8670a06faeee0a944ca8e911e717a739c2bae0262c2257db69a7014f5",
+    "2018-11-01/clippy-beta-x86_64-unknown-freebsd.tar.xz": "16fa89ae127521cf6f39fe0708c54efc0566dbb82e24dd2cc3396d7906192f0a",
+    "2018-11-01/clippy-beta-x86_64-unknown-linux-gnu.tar.gz": "0ad5f06495177901addb72d8eec3926986e10290969493eba0e8b465962985e7",
+    "2018-11-01/clippy-beta-x86_64-unknown-linux-gnu.tar.xz": "7647c493e679ee4b5e709c125aa90cd74209046ba855acddb192a32ae422928a",
+    "2018-11-01/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.gz": "7b3f5bb7f45052310efe275ed665b54b55e19b9020b04cec9240318c13c62c0d",
+    "2018-11-01/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.xz": "b19651f42127f108e6931fe7837daef45b7dfe7950e9972b8319b9a1c1620287",
+    "2018-11-01/llvm-tools-beta-x86_64-apple-darwin.tar.gz": "b45ae0fb0b49385b555772a3faa9a5a85aa10f4bd24ba40c55048076d8cda314",
+    "2018-11-01/llvm-tools-beta-x86_64-apple-darwin.tar.xz": "28a1bd8474f8af6cda13ec34b1bb5e9d6ed01e74b4b64825d0eb09a46739731b",
+    "2018-11-01/llvm-tools-beta-x86_64-pc-windows-msvc.tar.gz": "462668f55b85fa1224df30449eb67e8fe0d208caeea39d9339b44ac30867f452",
+    "2018-11-01/llvm-tools-beta-x86_64-pc-windows-msvc.tar.xz": "3fd163b9457bcb6611ad147307910072ebc9987d55128373e4c5427a570ccecc",
+    "2018-11-01/llvm-tools-beta-x86_64-unknown-freebsd.tar.gz": "acd86ceedad9f10b2cb3443df032d0b5a9b4eb6c4b30364bd3cb014449607577",
+    "2018-11-01/llvm-tools-beta-x86_64-unknown-freebsd.tar.xz": "0fb3544ec102b739f69b83dc72720a1b2b9a71a96604f5980d85b4764983734d",
+    "2018-11-01/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.gz": "4b4363c2d03d319e84a7f09fba5b58d188d9fdd62c9486cc4b66e9e63030ab27",
+    "2018-11-01/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.xz": "6a4ad347884ef3b8040c0e577fb80971b93931544c372a95ad7c6b9f434b4dc8",
+    "2018-11-01/rust-beta-aarch64-unknown-linux-gnu.tar.gz": "f802784788c2e751d59d035363fb6be2b0450d650ec523115a51fea05fc8589b",
+    "2018-11-01/rust-beta-aarch64-unknown-linux-gnu.tar.xz": "1542e4fbd6da3cf163b8834c13967b13493a335e2e650c1f9cd6dc6bf9d8f802",
+    "2018-11-01/rust-beta-x86_64-apple-darwin.tar.gz": "0be8d634d17b2f92c86515a38e36f66a9f3d72bad226db58ff8cd09924092f53",
+    "2018-11-01/rust-beta-x86_64-apple-darwin.tar.xz": "f3372aee003577739748fc23aa52b6ebbed337cc2e629367acc8b6d2a5663df9",
+    "2018-11-01/rust-beta-x86_64-pc-windows-msvc.tar.gz": "d86d633b67e6c0fba28963f5c991738575fee56c755570e505f702eed54150e9",
+    "2018-11-01/rust-beta-x86_64-pc-windows-msvc.tar.xz": "6aa02b7c2064e2082a3030c469dd8500ed5a15d6832bd446ea9ac9b2b345f300",
+    "2018-11-01/rust-beta-x86_64-unknown-freebsd.tar.gz": "869f1d01077a318ff0ac664a498354b079c2fc16cbec294161a56cabe6f3e194",
+    "2018-11-01/rust-beta-x86_64-unknown-freebsd.tar.xz": "04e09982338aeef49879868be8a41ce70dc855801b14475ce3cb8b1a5ee605ed",
+    "2018-11-01/rust-beta-x86_64-unknown-linux-gnu.tar.gz": "7da7bd24c2f2dafa9d4baa6e7eba1547f62681fbd1dd89910d386b2260e65ca6",
+    "2018-11-01/rust-beta-x86_64-unknown-linux-gnu.tar.xz": "3aacbc4c001b7aa53f4cf711f03e2f8cb813a7b708deeacfe49d43ab55ae3a1c",
+    "2018-11-01/rust-std-beta-aarch64-unknown-linux-gnu.tar.gz": "137d39872981d343829a8f3eecf0f33fe2f0d81ed18865004b52359d309a6b95",
+    "2018-11-01/rust-std-beta-aarch64-unknown-linux-gnu.tar.xz": "bf981aa615034b1cd84eee2781633a1963a1be5aa73247f93d16c072353eb404",
+    "2018-11-01/rust-std-beta-aarch64-unknown-linux-musl.tar.gz": "5eb228ae2a53abfdfbfaa471a2afda29cc2b923adb82322a0c20af4592c226e5",
+    "2018-11-01/rust-std-beta-aarch64-unknown-linux-musl.tar.xz": "40776fd0ad6ee7a4e669a9e409e1979d6d94a7c425840099146d1d948140c645",
+    "2018-11-01/rust-std-beta-wasm32-unknown-unknown.tar.gz": "4f7fa7f3adafc2ec5de80cddfd3fc3072da43442cd15be9169b261f76a0a684b",
+    "2018-11-01/rust-std-beta-wasm32-unknown-unknown.tar.xz": "1a42da86e8f1a2dbed960192ccd4d42fb1b2ed3737245018d7aac9b84837d5fe",
+    "2018-11-01/rust-std-beta-x86_64-apple-darwin.tar.gz": "bee742244d72ea7289d5d2dea519102994dbee97a5c296b2a8c6853e5450a7ab",
+    "2018-11-01/rust-std-beta-x86_64-apple-darwin.tar.xz": "992e1c74d2e0ad22865cc11b63f4acff4ca7b66b29ee0a39ca6a1be1fbf16042",
+    "2018-11-01/rust-std-beta-x86_64-pc-windows-msvc.tar.gz": "455ecff7f11499cd3822b82ecf0ab8ab34d866c4b5e17b0de84af815a782f226",
+    "2018-11-01/rust-std-beta-x86_64-pc-windows-msvc.tar.xz": "b8543ff49763afd5daa84d906ae308a975e5fc9607c9e1fde81ad2bce8563ec2",
+    "2018-11-01/rust-std-beta-x86_64-unknown-freebsd.tar.gz": "eed13a5c36c0731b01b8926f26be5b054c341a0487628fca688e8e99f33b200b",
+    "2018-11-01/rust-std-beta-x86_64-unknown-freebsd.tar.xz": "96b4d53db29d261dc652cdee845ab6710067ea57c23c2337844849099ed7c40d",
+    "2018-11-01/rust-std-beta-x86_64-unknown-linux-gnu.tar.gz": "f38a224bccfc89bd0d598764363271985d0b2696123ea10de6399c4cc7dd8adb",
+    "2018-11-01/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz": "bd17d52ec298bffd00a7938dd1b427f02a586eb427e797b88b408f8d25e75ba3",
+    "2018-11-01/rust-std-beta-x86_64-unknown-linux-musl.tar.gz": "b4f8c208a50e2640fc3761675bef31c9960e74976a1537c2fd8c9dc8a9d5fdd8",
+    "2018-11-01/rust-std-beta-x86_64-unknown-linux-musl.tar.xz": "8f8a0d9363b728603d9c8e65d4075e65a1b6e2312cbee0759b3c816a12bd093d",
+    "2018-11-01/rustc-beta-aarch64-unknown-linux-gnu.tar.gz": "acf359a4cecfc827f5ca4255c0492d46223d09d535444f0b303678918944c87c",
+    "2018-11-01/rustc-beta-aarch64-unknown-linux-gnu.tar.xz": "bd5927f3035b27c63d6444a9ae55f1dfd198134ba5655f79b664ea878072363a",
+    "2018-11-01/rustc-beta-x86_64-apple-darwin.tar.gz": "64b5a5fc8b3dc348395137df2c422adbf483168c58af5cd9acc8522dd9b4392b",
+    "2018-11-01/rustc-beta-x86_64-apple-darwin.tar.xz": "ab642e2859bd647f0ea5c0aee4027725b11420a20b8331370eab236dc2532f07",
+    "2018-11-01/rustc-beta-x86_64-pc-windows-msvc.tar.gz": "71cbfd2793f6b55653f5ef4bdf0350dfe6d9b0952d518a3a355044ec7caa03c2",
+    "2018-11-01/rustc-beta-x86_64-pc-windows-msvc.tar.xz": "b31fd1a80d151435068ca5868d214c26e9805c90de53b757328f83ac319ebf33",
+    "2018-11-01/rustc-beta-x86_64-unknown-freebsd.tar.gz": "51a5370f1776229bede506e5ab05da7cfeb5bd21a5374561acb4b7138c75d508",
+    "2018-11-01/rustc-beta-x86_64-unknown-freebsd.tar.xz": "a0be726ccaf6e51b38cd9d3992fd419d77d088a39fc3a9def47e667a60e7f1c9",
+    "2018-11-01/rustc-beta-x86_64-unknown-linux-gnu.tar.gz": "01609bedca249906ba8e07fb681daffe094cdbf41b91e2221195474271d8e6d7",
+    "2018-11-01/rustc-beta-x86_64-unknown-linux-gnu.tar.xz": "7ac2d921aafc6afaf4b19f804d5a67418b0c4ddeedafeb2d141100d8c2a681e3",
+    "2018-11-01/rustfmt-beta-aarch64-unknown-linux-gnu.tar.gz": "0969e37628a3d5e56cfc0636db4d1aac7d0b01ab9df6bdeb3453adc1e2ae786e",
+    "2018-11-01/rustfmt-beta-aarch64-unknown-linux-gnu.tar.xz": "04ba0c394b41f65ed1dcab50b8a378dc5170341bf73fde271e5c8f25d9da9acf",
+    "2018-11-01/rustfmt-beta-x86_64-apple-darwin.tar.gz": "bbb45d6beddf8da270ab1ec6ea3b9dc2ffc03f5ba1ef3e99e87d004f652f2581",
+    "2018-11-01/rustfmt-beta-x86_64-apple-darwin.tar.xz": "287a64345e7fbe83b233ce9772947500c89a90b66530f38d186aae173e22b831",
+    "2018-11-01/rustfmt-beta-x86_64-pc-windows-msvc.tar.gz": "2d34424353e248173828898107e331acfbaa29a3686bb8121fdc72fbab7a37e8",
+    "2018-11-01/rustfmt-beta-x86_64-pc-windows-msvc.tar.xz": "c1e969fdcc0fd8babaa793bd335e568d83808273a43e3c644fc4ddaf00d57de9",
+    "2018-11-01/rustfmt-beta-x86_64-unknown-freebsd.tar.gz": "101a0903c5421df363420d73ebbdb52b3cb8b2bb5ecee9e383b271aa22446f95",
+    "2018-11-01/rustfmt-beta-x86_64-unknown-freebsd.tar.xz": "64ed7e47e33b1300a99185fe0496bd7971dc261c80ba2efa6d6b77ac64aacf31",
+    "2018-11-01/rustfmt-beta-x86_64-unknown-linux-gnu.tar.gz": "12d49bf16a8e5964163d12a58e8caa5bf81fedd106dc37bbd757aa4116f0d7b3",
+    "2018-11-01/rustfmt-beta-x86_64-unknown-linux-gnu.tar.xz": "a9519d75d9af31cc50d3a20b7fb54d21838ef4680c2a778a867117c5b72c236c",
+    "2018-11-02/cargo-beta-aarch64-unknown-linux-gnu.tar.gz": "808e7129f0f414e05def68ac72bb8f59871a0d21eaa9a6b9a59afa87502858bc",
+    "2018-11-02/cargo-beta-aarch64-unknown-linux-gnu.tar.xz": "2a1130f533a3ea53c89f7eae01575ee5715c4d34c311e456db20f7f28c058918",
+    "2018-11-02/cargo-beta-x86_64-apple-darwin.tar.gz": "72fce301579b799b392407c49e162285ba24ca17ad1d96ca701c7d03c83d69d0",
+    "2018-11-02/cargo-beta-x86_64-apple-darwin.tar.xz": "c06fef21016e18d13cca3069f16f0246bc3935420067ca397d70af0fbe4d7fe8",
+    "2018-11-02/cargo-beta-x86_64-pc-windows-msvc.tar.gz": "f2a98c4c8928d7d3070c86c02ab93e6d78c85312e1eee2867efabf00ae235692",
+    "2018-11-02/cargo-beta-x86_64-pc-windows-msvc.tar.xz": "177b901e5538501dfe7f3422cbd51158028e9d3a77e3b2e61e5a1f426375ac47",
+    "2018-11-02/cargo-beta-x86_64-unknown-freebsd.tar.gz": "8069c2b1657b3dc747912775b1569426bccf35fe6c23073408847ef232174419",
+    "2018-11-02/cargo-beta-x86_64-unknown-freebsd.tar.xz": "0989cb8f0e4e5e4dbb46bfb4d7209a7c3273b42f9535a25d05e17bb99b83eb03",
+    "2018-11-02/cargo-beta-x86_64-unknown-linux-gnu.tar.gz": "2e9418c06ea6dc3f869ebd12e31da2affe9568871e65f013b3695a92bdfa4c31",
+    "2018-11-02/cargo-beta-x86_64-unknown-linux-gnu.tar.xz": "53be654110dab287349d47a138340f08db7165e8a00c0ac7b7ece6a13f32146c",
+    "2018-11-02/clippy-beta-x86_64-apple-darwin.tar.gz": "921f5d07e73a5651173187012c476a7999f5cd78f52eafad4e8c15f2bab25b42",
+    "2018-11-02/clippy-beta-x86_64-apple-darwin.tar.xz": "6080e6717fb835daf0b4334cf4db2c54225ca437bf290c424fd4e592a510121d",
+    "2018-11-02/clippy-beta-x86_64-pc-windows-msvc.tar.gz": "eee0ff30ede35ab957061b579836de5f9b91c36d57e71c22344c76d421abd4dc",
+    "2018-11-02/clippy-beta-x86_64-pc-windows-msvc.tar.xz": "a21993f1e045b36ddad8a76508aab3dd1c96f6406b9a7ae118299d64082fa171",
+    "2018-11-02/clippy-beta-x86_64-unknown-freebsd.tar.gz": "440576edb7ac7775d5511780662b8c820da8cfdcf71dfe7a169758547d5f94e4",
+    "2018-11-02/clippy-beta-x86_64-unknown-freebsd.tar.xz": "a3c987a9035fc0bdac62f07729d9b4ab9752ba33f9c1aabbbf141d90b30427d9",
+    "2018-11-02/clippy-beta-x86_64-unknown-linux-gnu.tar.gz": "3ce406e0c2bb246c96940e4054b5fa9b049580ae4b61e170da2008ff945af970",
+    "2018-11-02/clippy-beta-x86_64-unknown-linux-gnu.tar.xz": "76671e64be3c10668285bfe611275be5cc5f85ce1de41991edb22b7fa8edb152",
+    "2018-11-02/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.gz": "f8021a8a0d302eb4774d31789932488e0897ec72b0d8c16cb746a2d72b749238",
+    "2018-11-02/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.xz": "8806037920e53616acb78ba4a110d26b3336797a22705b45463122622431e5d8",
+    "2018-11-02/llvm-tools-beta-x86_64-apple-darwin.tar.gz": "88693cabad55f568ca0c21276e76eb237215abdc9771f224ab807f8edd3aad08",
+    "2018-11-02/llvm-tools-beta-x86_64-apple-darwin.tar.xz": "c843c351ceed8a7b7764aee608d22ac20e4de9050a2d10036c069b2b15001053",
+    "2018-11-02/llvm-tools-beta-x86_64-pc-windows-msvc.tar.gz": "4b2f2c707bbd3506c55d48d1ff3cadd290445b227c868d596a535faa798f06cf",
+    "2018-11-02/llvm-tools-beta-x86_64-pc-windows-msvc.tar.xz": "7e8c1e3d794a4472ce01c69a701d34f64412ef1284a5a74f4dedc5ce2c5a3aba",
+    "2018-11-02/llvm-tools-beta-x86_64-unknown-freebsd.tar.gz": "c8c48f8805b794ac63cbd60bb28d77c575d754c6c97af006bcf6b466adb5ecab",
+    "2018-11-02/llvm-tools-beta-x86_64-unknown-freebsd.tar.xz": "f843788206f8836231a3a184fca593bba0b661f6b3e7b06d324fc9ce978d3b49",
+    "2018-11-02/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.gz": "92472b453b0a6dbc38cef53cba6d38b5dbc79e3637743b77239543b33084d121",
+    "2018-11-02/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.xz": "53744ff0002079c0899b0f38af4b32967c1c92371e2faa7a92c3ffaaff4a2776",
+    "2018-11-02/rust-beta-aarch64-unknown-linux-gnu.tar.gz": "6e28b053d8ebcef7a19875089db13931ce89bb045d06b4bf834334df3fa43962",
+    "2018-11-02/rust-beta-aarch64-unknown-linux-gnu.tar.xz": "c74e9594bc769d19616a4a926f40383ee639022094daee163b3cc7abe0a869a4",
+    "2018-11-02/rust-beta-x86_64-apple-darwin.tar.gz": "78e9fd57d2070cbe2a073758839d54b5535e14918c11260fb244bade3c1971a3",
+    "2018-11-02/rust-beta-x86_64-apple-darwin.tar.xz": "ac53d7dbc84a790791aaed64fe0ae866958eea6852521b146434913eb2c1b951",
+    "2018-11-02/rust-beta-x86_64-pc-windows-msvc.tar.gz": "68c0fcbd1f9887eff41c42b703fb2c34b99b2490f4e366efeee4a6bf0c1044c2",
+    "2018-11-02/rust-beta-x86_64-pc-windows-msvc.tar.xz": "251f88793dd573a2aa1218a6d15eb305ef4d429190cd675b4dfc8acecf33d568",
+    "2018-11-02/rust-beta-x86_64-unknown-freebsd.tar.gz": "8313e8655fca87519c469c5699cf803fb0c1bd159ee335aac199ae76753f359d",
+    "2018-11-02/rust-beta-x86_64-unknown-freebsd.tar.xz": "e87132f395a7a071ef688d2eb6d63b048eac0d6d50f22e1fae66cd72b3d1d245",
+    "2018-11-02/rust-beta-x86_64-unknown-linux-gnu.tar.gz": "76b2d14dc01a922b448019df7a24221f91c7eaa3e2034fcbd6189d5bac7836e4",
+    "2018-11-02/rust-beta-x86_64-unknown-linux-gnu.tar.xz": "833ca8e38765fa43826722f4cce77726c801f48571a41a1904dc99de40ce6c92",
+    "2018-11-02/rust-std-beta-aarch64-unknown-linux-gnu.tar.gz": "0d57f4837af1443208abce604d74dcf6880d0cdf4e74eaf2368016f064dbc7ab",
+    "2018-11-02/rust-std-beta-aarch64-unknown-linux-gnu.tar.xz": "6932fe7a1948c13bc11a36a983978ac4beb193981c6013edc099830257582323",
+    "2018-11-02/rust-std-beta-aarch64-unknown-linux-musl.tar.gz": "0d5e585506b4cde724040d340e8e2d4a3ebe04950ca863adb238c83f9462e696",
+    "2018-11-02/rust-std-beta-aarch64-unknown-linux-musl.tar.xz": "bafeac0d6f0357f9b207679ac5953d6462f376e18c97d45fec5895af412d8a1d",
+    "2018-11-02/rust-std-beta-wasm32-unknown-unknown.tar.gz": "25c7e8dbf27dd19d3d4f91062d9cb9bc6ad9aed8afacbd47dab92eba3a3d2533",
+    "2018-11-02/rust-std-beta-wasm32-unknown-unknown.tar.xz": "680747ef57407a1ea3da2b9974b336e00c75cc5af4e02fbbfeaadce57f0b012f",
+    "2018-11-02/rust-std-beta-x86_64-apple-darwin.tar.gz": "fdc26de5db0e66e0f516069690a0c86ca0e4b8b75973a33dee67ce306e4c9115",
+    "2018-11-02/rust-std-beta-x86_64-apple-darwin.tar.xz": "6521f99af1bf037f8ee1c8e6f0e9e8347dfd817cb1085c9819dde73482f888d3",
+    "2018-11-02/rust-std-beta-x86_64-pc-windows-msvc.tar.gz": "8c7dfe0692e2c0b9de130b64e8ab09946eff2eb419a22bb7a15cd9522995f420",
+    "2018-11-02/rust-std-beta-x86_64-pc-windows-msvc.tar.xz": "0cd6158f0f034afd48b63720728a7d5f48da7822b73f887567b385115db03912",
+    "2018-11-02/rust-std-beta-x86_64-unknown-freebsd.tar.gz": "4661fdd15b5cee0fafd4c9cb085d0614abab0b2b1d62a55540b3d4d2634c4ba7",
+    "2018-11-02/rust-std-beta-x86_64-unknown-freebsd.tar.xz": "7c8d6e18a1cd1e3e3b8b7dad19c90673ee55c1a1253a3d15dd9bc60057ba0810",
+    "2018-11-02/rust-std-beta-x86_64-unknown-linux-gnu.tar.gz": "3e2f68697620e501a9439bb7923f5676c82f7a4b4aaf822a141188c92619fe13",
+    "2018-11-02/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz": "867792778cd48ad8e5f83944c8009cba95da550b746d895addb597b3270d6dee",
+    "2018-11-02/rust-std-beta-x86_64-unknown-linux-musl.tar.gz": "88662ac89a6c9df7a5a77db8624777cb9ccf0ecdd9a0ced1ef9bc47e7c9e8eed",
+    "2018-11-02/rust-std-beta-x86_64-unknown-linux-musl.tar.xz": "1fea0c9cf008ab15de5d8dd9b5067a247a6f7db71034efccbda3550118e8c585",
+    "2018-11-02/rustc-beta-aarch64-unknown-linux-gnu.tar.gz": "d703f1cdecd77aba85024db5e94f13e50c74e66af21091107c7cd67a3179da15",
+    "2018-11-02/rustc-beta-aarch64-unknown-linux-gnu.tar.xz": "0f67fe0784663212cb47e827e30bb0eb4d1a4a47cab87b16c3bfe290d5c93597",
+    "2018-11-02/rustc-beta-x86_64-apple-darwin.tar.gz": "199a0776ad4f1406b8b6f477d12c58858816f07246d52842384e1084d8c9000e",
+    "2018-11-02/rustc-beta-x86_64-apple-darwin.tar.xz": "e9c5c0241e267094574cecabecb700fffe1d91ee34d2084b7227936190d8a369",
+    "2018-11-02/rustc-beta-x86_64-pc-windows-msvc.tar.gz": "a4fd3838f4459a151e83d540784953cd80c5a1a68fe3bf965399c1f07f6476bb",
+    "2018-11-02/rustc-beta-x86_64-pc-windows-msvc.tar.xz": "3f9d783f47a6ef238bc76683a7fed9f4b1bdf2fa35d83dcc406dc0efb51abdae",
+    "2018-11-02/rustc-beta-x86_64-unknown-freebsd.tar.gz": "f931cb44b892dc3899c9379238d8f51d35c9503db9e93ce5700f3121712c9b62",
+    "2018-11-02/rustc-beta-x86_64-unknown-freebsd.tar.xz": "ae43615421a52ff546ea849eb243a80f556b2b4abc0bcba0dc248bb76a004a41",
+    "2018-11-02/rustc-beta-x86_64-unknown-linux-gnu.tar.gz": "7ebd46c431b8d9e8d22aa141122eaf301d5facdc449e04872019372598b04b19",
+    "2018-11-02/rustc-beta-x86_64-unknown-linux-gnu.tar.xz": "4c58a49536621ebe289cc1299da529ec4f87ee9b8c3d8068c80ce5b9a298b379",
+    "2018-11-02/rustfmt-beta-aarch64-unknown-linux-gnu.tar.gz": "c13f8024e37f7b2b6d97586569bdefca53e99514e4b76b200b71932f4a7ce298",
+    "2018-11-02/rustfmt-beta-aarch64-unknown-linux-gnu.tar.xz": "000b8fc5f3274d00c23b01faf57a5ed0a8083f9aa9cd26b16194682e89bb2861",
+    "2018-11-02/rustfmt-beta-x86_64-apple-darwin.tar.gz": "0164c2c57b3ee975c571103dbf7074e24c997cc43df23920660f12de688e8c23",
+    "2018-11-02/rustfmt-beta-x86_64-apple-darwin.tar.xz": "6418da9e756cd6b99927db547a4c21cd58c745567bae45ccb55a2f78691ce890",
+    "2018-11-02/rustfmt-beta-x86_64-pc-windows-msvc.tar.gz": "c33b4fe885e21f51b08dfa29d04179d0f138e87122f4f4a3898fa002567f2259",
+    "2018-11-02/rustfmt-beta-x86_64-pc-windows-msvc.tar.xz": "25488bce9131b727c83fac4204911c1306600128bcb9956ad0d29f14c737302a",
+    "2018-11-02/rustfmt-beta-x86_64-unknown-freebsd.tar.gz": "ad280d28d4e7054063942cd5a60cc35538af5096f29e159ba13419b82be5560c",
+    "2018-11-02/rustfmt-beta-x86_64-unknown-freebsd.tar.xz": "23705d195df0f58013311c91bb91e850d50f2d47130f819588c421bf14e83c9d",
+    "2018-11-02/rustfmt-beta-x86_64-unknown-linux-gnu.tar.gz": "60ec376659a4ad5b129307ffef4dfe9b717fcee6f5d929b1e3e423e599258be2",
+    "2018-11-02/rustfmt-beta-x86_64-unknown-linux-gnu.tar.xz": "8ee3f63976c0a7935385469991eec7854f3835a8fcaf3dd49a6ed1571387f7c2",
+    "2018-11-07/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "45f1fe31b55aac2de8fa98c5738704481e27c3bf206ca7a65b165b301f473a1e",
+    "2018-11-07/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "e12e05f3ce3096ce7b6d3866408d8cf4c93238db6c92cb5467c57447a2706f88",
+    "2018-11-07/cargo-nightly-x86_64-apple-darwin.tar.gz": "35ad1d24795b3fe97dc06fe3b1a45c2e75cc9e62bdf491d4964863920b311e0d",
+    "2018-11-07/cargo-nightly-x86_64-apple-darwin.tar.xz": "64c51010a82e0762087d51a5a6b32de76e8d7b149832c9dce2294479d13c27d5",
+    "2018-11-07/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "7147bc0363fb84aa2feda337a6bf7e3f16f26aef893218cd0b59c31793c06253",
+    "2018-11-07/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "b999566d6c6c4b662ee746cd21fe3d6ccfcba005c23e2f3573d469fb4f133604",
+    "2018-11-07/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "d537821f8acf2a89d44bc534fbf5efc27785df372005046be927c0d1ae088a23",
+    "2018-11-07/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "6b4f8fd559d3e4c2e63662aa234c97b99a939b0b6971adc1f5fd0a5f9eb4edfe",
+    "2018-11-07/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "7968167992937ad8e7284c9ea00040ddd873b759b2595eb67eea68ce81abf627",
+    "2018-11-07/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "d7e204467b9ea6939b246b06ce38b9b55cf2cbba4990bf35a504cdb827dd2f87",
+    "2018-11-07/clippy-nightly-x86_64-apple-darwin.tar.gz": "7ee34bc4e2b1121ecb8ad01bbebc54f83bafd72acb8e4f81bb3cd1106fc29cdb",
+    "2018-11-07/clippy-nightly-x86_64-apple-darwin.tar.xz": "59c32855ee183fa0079f3a525686f6c844e4401e27aff0a08cbafede6b809001",
+    "2018-11-07/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "a65fd2d2c7e53d3876808b41491d2556a55e399a470d747427f6ece40251ca89",
+    "2018-11-07/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "0eaacf0f4624f687de86c879e2c5177cce2522d52dd6f00df571296a5a403bdc",
+    "2018-11-07/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "664296ae2a0226abcb58d01067b3a614fa6c66afb821e36be17faa205ef14f70",
+    "2018-11-07/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "79db2c4db855bf761f5c678c375d0bb819ccaa7d163987c91451980e1dbe025a",
+    "2018-11-07/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "62cf4c3f179e14b6b26485d85ebf17ff676b87938c14bb1ce19d93c02197d091",
+    "2018-11-07/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "ed251b7e661825759a86bee6067be547c6f43e86495e4c136251e9de7f0d0f10",
+    "2018-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "c2dd30b73e5e0495d7d4c05cf98f50197c00f542cef7f3ef37e095d0d8686991",
+    "2018-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "c67bcb877aa4321d8d13f2a651b30dd719234cdf6f86bee8f44fed203ebc1500",
+    "2018-11-07/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "2cd61d0f54d3753777b019d09a2e88cc9a2fb027e947a14eb1f509e014ff19e9",
+    "2018-11-07/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "cb94b627ca7b214ad7f5d80c5c3b590ffc2464789a80e9bbd721ce073feb7692",
+    "2018-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "14c6387239ee0bd8d9d9ca0c21c808a542de4133e8477fc2f1fc958eaf6c4428",
+    "2018-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "b50beefeadae063330f91c31f8ac44dafc8d2290e207930c63d75f76309fdba9",
+    "2018-11-07/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "52a726f57b80cc7d29c15b93ad35e3a7ab62fcfbd7d89f91021a783be6ffbd18",
+    "2018-11-07/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "ccc61ababf98b391af255d8233ceba67696c78ef657ee7e30887f14352f5a933",
+    "2018-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "ddd007ee68b7468a12d240d0f08939efa262e8d96ad7f903cbef62b461a61417",
+    "2018-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "b1955a66efbedfb2e39ad778d6aeacc7ee30cdf420d52ca82933d0833bcacb10",
+    "2018-11-07/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "f4725077e948b6eda7d4cd482a8985037a2f8ddaecc964908a490deb9ac46e21",
+    "2018-11-07/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "00caa6365b9bfb9ee9c47fb7ff5f007c2b51374569abec3f7da0588e94bf0ae5",
+    "2018-11-07/rust-nightly-x86_64-apple-darwin.tar.gz": "b9aaefca51aa2d7e89f5d790e865d00ec4142c79cebee43ba0d575f9f52ee65b",
+    "2018-11-07/rust-nightly-x86_64-apple-darwin.tar.xz": "98b10adfa183eb78ee1d9bb17b29294e9e6c3d450b24d879e8cc1e06a040d516",
+    "2018-11-07/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "5826f958e4826b0bd0069918185afc6db0802e6d3fe72a9be075f3408b707521",
+    "2018-11-07/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "19d61dc9a24560884530da0878978c731fc5157cd3020ca86374a2443e204986",
+    "2018-11-07/rust-nightly-x86_64-unknown-freebsd.tar.gz": "38860320b7e97193493e45d362f34d311d7aa8fface77c93fadfa15e8361df3d",
+    "2018-11-07/rust-nightly-x86_64-unknown-freebsd.tar.xz": "f00d8fb4f09556ff2ab0491375c929e3055a00055d880c36cddfc0e6de7d0704",
+    "2018-11-07/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "c1d7542e90f76d074a7ea925b5ce40ec602c9e3e04822939623a98c4d020ea2e",
+    "2018-11-07/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "5d13203d384e08488bf0df89aff9ca60147f718fb1ec54e0b6d2087eb5d1a53e",
+    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "e7a4629ab15609fda17a9e16cb0f7538d4077f572ece200891726344e314295b",
+    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "e8bba088bdf0ad2d5cd041750ce1799952e79d77b50b0e98051eb87db05049b3",
+    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "25b7b0cef1f802182ffd26e62defbc5f6fc79504739d14627bc74ca1db24bdaf",
+    "2018-11-07/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "e30d4db2d70db25e134e74bec850c3dc92b47ad93e6f4456ea5444ad5be1a1fc",
+    "2018-11-07/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "9d1bcbf50fdcd9912fd98901ec40c7fd5d73ef2262a70322b4ca52381363c34c",
+    "2018-11-07/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "c829eba71823cde23dca085359af8620a7789589c49f0d2057971a255c828b44",
+    "2018-11-07/rust-std-nightly-x86_64-apple-darwin.tar.gz": "0c988a60e72d545b19b5cef616ddd3411a278226abccceca622581871f2b5cce",
+    "2018-11-07/rust-std-nightly-x86_64-apple-darwin.tar.xz": "eff3759e188b9918dd3557d60c0bc35547db4e29182e0ecea9d912627056cd2a",
+    "2018-11-07/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "0d04200b3bc5ad5f939d98f7af083c0576aae11876830492f9964de23dd33acd",
+    "2018-11-07/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "ab53ca9838a360c49cafbe7a87aa5ee0c6d53c3adcbe77f46a25a5c8515391a7",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "ca648e7eb243cec32dc5a1b4e2fe6d67c2a00be56326e4d7aec9f2bbeb4dc138",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "090112897a8b8d0858a4627987bb972d2a407034b3b10eac70dd444aefef806d",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "bd8daba5c2d36e261da6f0ea8b5893e7fe94252eca7478d581c036fc1acb7c36",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "f18e0da5e31157f3636b9a96c8eea02a38714e08ee732b205378ba23c8c13ee1",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "9d5bb908baa470e4da390f5b32f7db2c15fdc347d379b61522a33128bb486b12",
+    "2018-11-07/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "75fffe1929f2aae90ef01efc5675e5b71d979cba347a1b784e405e3eb3a2dbb8",
+    "2018-11-07/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "11caf45fef229d85efb36cdbcf955d95fae648c27ca4ffd153bad316eb58793a",
+    "2018-11-07/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "2b922297ed7543e272ae27e8cca91891e6b65a601eaa072af33566b017a557b2",
+    "2018-11-07/rustc-nightly-x86_64-apple-darwin.tar.gz": "cddecdb0d595cb8b944bf70b2284f557743f5637536f2181ad0036806cf56217",
+    "2018-11-07/rustc-nightly-x86_64-apple-darwin.tar.xz": "86dfc1095a1e859bc4f292e8b198219a2cbb3cdc52a1583fe2b3d1ad8da4de76",
+    "2018-11-07/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "479f58f34616b83c003fa29e68ee84c91ee5521038f255a7cd3b597a2f5082d0",
+    "2018-11-07/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "d19955f9108b432b755ff1fef86a25ba42547cddf97b2b47cac103dc0fdd6524",
+    "2018-11-07/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "47f81ec8c4ebbcd4e948033b5db72c1e9bec6f284fdaa5bdf59bcc92b075333f",
+    "2018-11-07/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "54efaa8dec664914366b7844c1349da4f15a9616268643a4d1ac8c926237efc1",
+    "2018-11-07/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "7f1aa11f8e503e6e9a03b6cd05ab12b46837bb7597167c72112abaf1481e46cd",
+    "2018-11-07/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "87f0fa719f92cfd981c3312d4f4e498d9f271b96cf69259dea042a86144186e3",
+    "2018-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "9b64705de20633c73a39d47deacbacdce11181dc5e06fa632ef08b8a3a7136e0",
+    "2018-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "0f744589b0ffa79c2b80a54cf1e48cad68ff26be57a25cb1ce6ba308586681cf",
+    "2018-11-07/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "bb86c58a5a12922ddd2d19a3cffe9cd8d87785e57f72cdc998e94926a68345a2",
+    "2018-11-07/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "94b1db213ef3600337429747ddbade9a8ce53e5bca59722837ac565fe7d9389b",
+    "2018-11-07/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "4612d2961bc5d0b24863af21fd0764b8ec8d2a843f1a39b97b418bc283b8fa2b",
+    "2018-11-07/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "adf513b01697251a91fb60fd5364a583267e56f4cd5d5025fb41f8abd933812e",
+    "2018-11-07/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "b0677e91bb7c0645844f988e7f7b625768f0a72947536a27fce7f5a9a850c5e0",
+    "2018-11-07/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "c2bca595d19d6828477bb8ed059f60e46926a3cec75ab65f02ae30cc52bdc884",
+    "2018-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "e1dbad0cb0afccdf5e05f97129f9d34bc62ce6475dd8f09fad2d31a8129acf64",
+    "2018-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "2fb07d509d0389af205956833cc654011f92d5efbcf360e56a2eb67a063a219c",
+    "2018-11-08/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "df9cf735f2c0efc48356832b0a11ae3f6df0d78879fb93a3b9cfecb15e79010b",
+    "2018-11-08/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "f869f7e5a3ad30d7532da9eaa49e6b8d41a919e76264e1ab0f8625fcfdc39d2e",
+    "2018-11-08/cargo-nightly-x86_64-apple-darwin.tar.gz": "e0a585f21907bd78820c4fd0ac56625ba10053a9430e9fab014e90e42f4a1fab",
+    "2018-11-08/cargo-nightly-x86_64-apple-darwin.tar.xz": "3420a8aad13492edd5d6c008e2d262f3f7121b3be0f7581935161a81e3fbd8c9",
+    "2018-11-08/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "025741e19216a317d8c2bb27950fbd7c3eef6eae075c606fc4b0622d3a92b89c",
+    "2018-11-08/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "6eb1882493653d29c1f1c360ec078a0c96d6a6a5dc2e52dc0a535ba295f7f4d2",
+    "2018-11-08/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "7e9343a3885caa12c1fb7f3007e8c72ce0a11ea6696839e0882ef7e560aed6d8",
+    "2018-11-08/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "636f7295477283a5d273c804ea20cbe0b4498376f7e6ba2f9022681530662869",
+    "2018-11-08/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "b421dd73cac889804f9d3758f5ef32157885a043abfb21651182fc9f672b7491",
+    "2018-11-08/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "6dbae8174ad2c111f587b3f112c1615f9368b573935b2d96f9f255511aca4910",
+    "2018-11-08/clippy-nightly-x86_64-apple-darwin.tar.gz": "a1b8fa097c8814ea239bc78f13df97a39d7361516b68ef340d9e42d0ee2905e3",
+    "2018-11-08/clippy-nightly-x86_64-apple-darwin.tar.xz": "78aae26348b1240ee042a5257bf398e442136e2341e789fcf7c764654233a3b7",
+    "2018-11-08/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "f863e10d8b82428771ac10a3219094f4252239df68f611a4dfa075a836f6be75",
+    "2018-11-08/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "7c47199498350bfeddf31047e367eca573b2f318fdfe5a23a27795e71249537e",
+    "2018-11-08/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "87cc3be056acb88e08d2dffbe7924aea58e39bb7380cda44e23748f790f15e95",
+    "2018-11-08/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "5e82971cb8f1328edb1ebb9441e0efa83e2c97841fe90d90755f7d705828c3f5",
+    "2018-11-08/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "b1f0ca2c7f5367dc044a3ca1702618e0e58f777369d470a8173355e2f4507127",
+    "2018-11-08/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "25e33715c008164ac393343de2d2f453d6e3dea2b72c91d7855a63c6d2386412",
+    "2018-11-08/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "fe2283cabacf6b8dbcd8d11eddb11a2badb750091ec5b38926ad48d3577da601",
+    "2018-11-08/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "143216c36e89c9798cc06901a4e34c2a98a338b3afb69e1570486e807e33a003",
+    "2018-11-08/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "b173d662715ec4edacdb8e06570cd471a6f63d05b49c6867f95ec366f8a2e0db",
+    "2018-11-08/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "660a4c1fa0bb73737317520e08d7355dd729a0ecf8745eb6f31ecc8ba2ec63c4",
+    "2018-11-08/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "558cd81ceb5e08766ade45cffc98a8d1a179d34f671f9b9518627e8358d65984",
+    "2018-11-08/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "cf8e871e32875977f3e987251aadb6515f216700d2a28809a8d5aa23791e2230",
+    "2018-11-08/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "7d77f85900b0aa276df746bc023b1211c4221e6183ef62663565b65b8fadd9f8",
+    "2018-11-08/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "875abed53ba475492548a120a1386428c77fd6c4db68dc9f3e82ccbb2baad823",
+    "2018-11-08/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "c634eb65a3839b176563823d576b1f4705cfcb3e91b237f2c4f852ff5ba08d2a",
+    "2018-11-08/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "8f44e68438416d3b99c2496b5bdd12840ca19650d01085157f5c61dbd7871254",
+    "2018-11-08/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "20ef5c5f59171df0335846c6c3315c5e3c495775e3c5b1060481d70421153412",
+    "2018-11-08/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "db946b410b301c6a01dc39f8d5e322e48b708208a493f6553690d105d49885ca",
+    "2018-11-08/rust-nightly-x86_64-apple-darwin.tar.gz": "921f19787a155e5240e21fb2bc630e5907b964652b0f7553b64acf819a0a2d43",
+    "2018-11-08/rust-nightly-x86_64-apple-darwin.tar.xz": "aed9bbc3b57ec399da2cea716c65572e863fedc924ff28a94f1ec948ad205347",
+    "2018-11-08/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "46d76bb12cedd53927cb35fb688540010b5152568467508fa92b0745f0e39463",
+    "2018-11-08/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "eae80236d183038d84d18eca258c820348e61c4c9994184c20d74c565c63d0e0",
+    "2018-11-08/rust-nightly-x86_64-unknown-freebsd.tar.gz": "32c28d8e915086406a3493d59d0e3b4c4751f77a3b34d257a3341aa4e5f8ad4f",
+    "2018-11-08/rust-nightly-x86_64-unknown-freebsd.tar.xz": "63b338ef345d81ced00e15d2e1f8a0d844e31cbb498d07d8589af26cf74f7e33",
+    "2018-11-08/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "5f33f1c01720e471b8293d304a01f354363418dc7ceebf206529a34f932c3a82",
+    "2018-11-08/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "cb1f3c8f80922b1f3c537a4c5f6a197f98467dbb4a88dfd22859aa915d8e46eb",
+    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "e83ecf484a848053a8679c8164340f90bd6c5823d9340b4fc5318c6265e544f1",
+    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "4d4405b59a88897959e7c52fc55d8aee3dfe18629698082d213f66d6a8413032",
+    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "89e192bc7e9fad3eea6e24f967b9405b35c677b1fe3a6b8fb4ab4def4f6378d9",
+    "2018-11-08/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "a0336cdf12bf7861906f274b3c40a3ed39de2bcf4d60e528e0b6bd33fccc2755",
+    "2018-11-08/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "0e12ecd9a2bbff67b8d82c15200acdd32d1f91fc1761d0b72fbbb5d32ae629f9",
+    "2018-11-08/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "a9b3c86c766dd1bc12b556ac225d253718e2c78ac02aaaef80341f2441c23603",
+    "2018-11-08/rust-std-nightly-x86_64-apple-darwin.tar.gz": "9d5e89e71f888247093b5615079da538a56c2758eac270173a4f85a57ef92967",
+    "2018-11-08/rust-std-nightly-x86_64-apple-darwin.tar.xz": "997ccf77875d655ce84613167398f97c326c0db767cd5201135144bd4de58352",
+    "2018-11-08/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "e891a3ee103e65e8e337b3c9c9d1e410c4be97b1318f820b591565b5ae6340ff",
+    "2018-11-08/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "8c555f5c4e8372946c6467d9ca0f048a226525856478fec4bc9920ac1d0ce6c8",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "64aabfec15a2b773c27892e58514161cb05ab370e3291beb1cafc7d270772389",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "23d62d899b15f0e813e3aa7651a13836e9374692b58129586568c6e3cbc2e876",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "efb8f6f6aa2c5a3f1c069e05b74fde6a85985837054faf3bc565d839902efedc",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "46d54d13c5b64ece731b8596e4f568289a693831081be1315763799e027e99d3",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "d2629d2ae1dae0b80bff33350f1bd469e145bfc4b935ff4bcb79240ff23ab279",
+    "2018-11-08/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "7649ece1c2d0a0f54c1b69bee6f00182a176cafbf0623e3f5fcf5669b5069806",
+    "2018-11-08/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "494173aa705efeef4df2d88278608bd71b477183d85a670a577051c76c5ee99c",
+    "2018-11-08/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "13512071b6b9ae49c4e6998d7964a3f8e9e3f989ce22769a8756442815a951b7",
+    "2018-11-08/rustc-nightly-x86_64-apple-darwin.tar.gz": "316e7727a136a82a20832a69b18f74add335e9b659fa7e0d8c7d12c0d11224b7",
+    "2018-11-08/rustc-nightly-x86_64-apple-darwin.tar.xz": "6db3ef4c3f4bc83f8eb87c61a67604affedda0ef5c1b21a7ba386155eb0d9d20",
+    "2018-11-08/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "489cb54446374eccc78eca18aa86b4159d47fdfa7bab0ea9a20cb68fa4d80071",
+    "2018-11-08/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "ee25e064f6bd62ecd82a4f725f40d0b1a9be95242ccd8296283c966d43e3eaab",
+    "2018-11-08/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "874b7055e0cb609ce34d38456bda888865c63fcbc7abac5aad147f2a21a7d147",
+    "2018-11-08/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "791bd56b771d30a9155ffb239f0ed9428e3d304571d380c2cc8ce73d5db71a71",
+    "2018-11-08/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "e50e43d71573e069503aa6157d1736d390345006965fa889842835ce80ae36e2",
+    "2018-11-08/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "7eefbdddc6b1096f72d3b0026df261d7a4ee8cfa3108d1b431299afc7de19fec",
+    "2018-11-08/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "4f5f4077d0e1c888fa3366dad638b5e8c7aa032deab83334a170d8e4275d8e47",
+    "2018-11-08/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "eb2dc7919c5b39a7594386ab3fc884a3e6a6ce1d3d9269b3f5e70d704e88ba11",
+    "2018-11-08/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "b6a0f812726134aea52e2b6ad708c0fb1052f80f1515a66cddeeef07052a67cb",
+    "2018-11-08/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "111531539eec807462d8800688e19c2eb869f8053c6c6741daac674da25cea96",
+    "2018-11-08/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "eb444b276ae5f6ed2c1e6dce994e17ebb94b130747a05c402e0c96b2623a554d",
+    "2018-11-08/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "8b52ec58edac917343c52c8d4a0ec755e35cd60a3568a4a1f8820bd3a30dec71",
+    "2018-11-08/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "8b31f7677eb0e7bf6ab145a6347e0ff00e57ec3642db3269763d97020cad2ebb",
+    "2018-11-08/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "e68dd8fa3c98428c49e5034f639a4f930a2df7b012a880cee4330e0536031dd9",
+    "2018-11-08/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "bf4c5913c199a5cfeea53432c880a02ba1ec6b38eaa59f012a909a131cf11cf6",
+    "2018-11-08/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "837ac947512efb18aba6153479ed8eb96530dd59afdf65c727f3fba0fda081b1",
+    "2018-11-09/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "e2db9ce2b561d7fdc456431b661be0b68e0a97b932096595fad273a9dfaa8b05",
+    "2018-11-09/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "431da97f8d3d21c85e3a52943fe0a59734941662dc1e4411e657e6b9a6355042",
+    "2018-11-09/cargo-nightly-x86_64-apple-darwin.tar.gz": "696507e163c5ea342a3780da51efd51633dcfcc980b493479928b9a3e0894157",
+    "2018-11-09/cargo-nightly-x86_64-apple-darwin.tar.xz": "32c7da5a22392e2d1432cc831daa1df45cfc5eca0c379f5e5fb3ddf2d046b42f",
+    "2018-11-09/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "0537061725164e1c344b73ec85a1983966537e7f0d4c231233bd6aa6a30428e0",
+    "2018-11-09/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "ace4326a97d860e2c7608837b5e9acbe267b2d846a99c20b91eac9f9360b243f",
+    "2018-11-09/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "07935c23f2f71e30092672010975ed16d34a9f50a9ab4deb86c9846d79a4729a",
+    "2018-11-09/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "9c4aef5a13551c67f28344761e4f4de1fd874a3be2bba4f1dd72d1e555708767",
+    "2018-11-09/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "0f5448e37227d79689967658252a43d48c596ee875fff5d7a530b20cfd408bdc",
+    "2018-11-09/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "60273c5eaf8ddfbd459605db0b1fc5cfe421342032fa57de9c25e653eb3c69cb",
+    "2018-11-09/clippy-nightly-x86_64-apple-darwin.tar.gz": "42ee57c56b42dd837b9aaa4307cb9f57421cb430264048de9b291733438f6f85",
+    "2018-11-09/clippy-nightly-x86_64-apple-darwin.tar.xz": "19926eb205c954df2a0617838d3f16104d493bd8b758f8c7d16f3beff5ffaa33",
+    "2018-11-09/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "83b0f6b8423dd3061d5d9956371e6665f13bd857e711226f9684e29b88294593",
+    "2018-11-09/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "17be74b9161b78521693c583fbe6c84f172af333e2c0c85ad494b1be47d6b6d2",
+    "2018-11-09/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "0dc28f63ceea25edefb7b96bf5c8bf746b68505307ebd9c38a8aa7b6d3d2059e",
+    "2018-11-09/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "50805bbcb71e6a47cb0ac97808558d0ea63272524599873d84bb440e07720510",
+    "2018-11-09/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "f56e10ae1c09b0356514fdb411a9b38597d824e080e7cb050588fd627c4a544a",
+    "2018-11-09/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "2499a12ed38cb4aeb7d39d26ff837422b961ffe5866a56ffd1417642bf479881",
+    "2018-11-09/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "83188eccc2b7067dcfc960492f91d23ad36ea6460005ac6b91c98d20694e60a6",
+    "2018-11-09/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "18752c4bd3d990f96b84fa96a331c73fd05abfc3f86f81a0909c21ea8d60fa0b",
+    "2018-11-09/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "03e2e4ba7ffabe88b118f1207b820cc6c7ab0d79d478c1687ec5bb1c903b4045",
+    "2018-11-09/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "4bab87803bfe4e409105ba80b8d7d594e224e5fd6e1586785cca5d5492aca9cd",
+    "2018-11-09/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "63a4f2c85f3ef51efb0075944ad0249337cdd7c9593036995f79699393a458d7",
+    "2018-11-09/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "7696c65b45fb61f33bd01520dcaad94a6106631e515aa62e9de538bd316b79f4",
+    "2018-11-09/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "f9ddf5f1e02b800aaa0add32365d62e5dcf590cc130af5b209cdf8520f9262a1",
+    "2018-11-09/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "6e28bbb7926562857555afa62afc280ab2a329b907c106aa6c17aad477e077c1",
+    "2018-11-09/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "8b3e2e2bf77224e181a9b1987bd2ae940a0462f8b0af84b59de484f8fe96ffb8",
+    "2018-11-09/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "af881203b6ba5ee053473e4e604e6c97979b9069c3e3d22002c75660d3378061",
+    "2018-11-09/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "4d0f22349061a40a834ae6a40640c0f4e8a19f068a215af0fb0b9a7250942d3f",
+    "2018-11-09/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "466e8acd2683411d39305bea89162de71f59081b3e3a47147116166d1f08f8dd",
+    "2018-11-09/rust-nightly-x86_64-apple-darwin.tar.gz": "934b83bbfcbca605875103293cf691a56429661e929e1c29fec2d3c5c1d65143",
+    "2018-11-09/rust-nightly-x86_64-apple-darwin.tar.xz": "288c0a24586686330904ee733bde15d9102428d392f42dc5e87b58008d719d17",
+    "2018-11-09/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "6659d7b9001a3613ca6b2bb64e5f6bd67cae51bf02e81b8b96dfe2299a180a21",
+    "2018-11-09/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "8a016c8e1b24cea27869fa8989c8bb1c0bfb1170f65d4f50eec3a200f89cafa3",
+    "2018-11-09/rust-nightly-x86_64-unknown-freebsd.tar.gz": "b50b1cf51e8bd138d55dc77f681904e1b431e7c956951ec603a3d94ff81a0783",
+    "2018-11-09/rust-nightly-x86_64-unknown-freebsd.tar.xz": "b94dbe2f968912dce9e68295f020e7cec79acef66266e5d29095a5b062005f12",
+    "2018-11-09/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "163e0666f2f7179caa9c5baa8b0280c618dc163007a73f5da0a0c917bd2b8902",
+    "2018-11-09/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "710d18eabf3b9498b91f8015aa9df70f6f8fea528f374ed183d6e3921c0b24c0",
+    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "cb12c26ec032ede34f925ea7c57118c8694dee439f0e258f8655b83e08512a43",
+    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "465e6f03f4a5b944ea3421603150f1cc770da85c91054c88ea65790300f67a0e",
+    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "5e0d20f6f2b01bb661724cb5478fddd37c560f2848af9961da44d0ae75029b1c",
+    "2018-11-09/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "dc905978e2bbf5bd7d5047d5fb69c2e6bf1d06c60d9b20a66d15ddd39a958b91",
+    "2018-11-09/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "a0084c768151b5cb7554085b77fdbbc014a1ba246335623a36b58e7f6bb95fb0",
+    "2018-11-09/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "1fed90a8fdfacfd6c7c4ab05204bdb68eb4b377aec3e6dfcc30d202bfe5ad8da",
+    "2018-11-09/rust-std-nightly-x86_64-apple-darwin.tar.gz": "dbc9ffa483484380e41b6514465523f6ef106be5708374b714458d14f76149c4",
+    "2018-11-09/rust-std-nightly-x86_64-apple-darwin.tar.xz": "6201c6faf97046b7287cb13924b2911cb89931dcba531d2fd818fccfc668ae2a",
+    "2018-11-09/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "40e4194f3abd9c1eb97c3783009571f96d83e80018662c4ff6fd60e992b50ee4",
+    "2018-11-09/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "862e3d32bf4e8b9bd862affc41248d76c8d238f0e74ed49d40e55b7b5fcbe000",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "ab8a32d8efb0ab4686526c6cf1380161e87a89015464f5d5f5438c99723675c7",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "290bbd85ff11a6827482a2c094f44948e88622ce25627d9f7344feabad165739",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "1418ba09f97c6ba91e2df5ba0b11cf1c53498710bc6a147fe8f4be455a96c4d8",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "e0a37f9566674131d7c69c37dac8a5ec7c099869151b2287cbf5268d695524cc",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "3262404dc8b0f509b3d47413340d825f99940f954ad4928fc0b39e2032c58230",
+    "2018-11-09/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "02470634eb027e5e7c48f811b1071561e6c62c179b13cd70d89aed591492283b",
+    "2018-11-09/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "167fec713804d8af1fa4f543e79ca5cee259f1b966b8e04c99efba75901f4c8e",
+    "2018-11-09/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "330b5cb2eb0e4770efbbbcd280fb29602e305f86651589e040e7f8e93c80e359",
+    "2018-11-09/rustc-nightly-x86_64-apple-darwin.tar.gz": "55ca5ad85b0afd61a419e374f8e6320b4f4fe30f8092005cdec9e63103812ea7",
+    "2018-11-09/rustc-nightly-x86_64-apple-darwin.tar.xz": "62790bbcb81a283b85630acaf10b98ff1ddd77dc137946164c9fcf059a2237ff",
+    "2018-11-09/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "dd19c5a4b209a9f46dd2f99eb7ec0898bd00accf1c6e8a97222c580bcf62e32a",
+    "2018-11-09/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "bfc0af84374050455b4853fbb18b673715723d464a5f7a36f608f6e1aa83c4c1",
+    "2018-11-09/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "bd6bb0228aeab01f425cb2ad55b2e0409b43e79450c2830183a6878cc2d2bdc4",
+    "2018-11-09/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "1c153160ea4dbab5a2e8b0e8400e846e9876acf6302c130aef639a9f3a028a6a",
+    "2018-11-09/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "2c475f886123353c9388322da6e13a67b6ae902d8c249f8e95fde67429f7bf37",
+    "2018-11-09/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "fb76689bd05b7038de5d055c9f4618b86f347c31b174eea053f31447ef56b905",
+    "2018-11-09/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "159353d0fc3b7d6aea127df348d7e824da79f995bf286df0bf03ed0615b7e875",
+    "2018-11-09/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "bd101f434708042cc2ea20a3be6b031fe6b5be28e35f519485e01ea68001b273",
+    "2018-11-09/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "940a39cc86d1cbb02535065d40993cc52acb223487c9efd4ce396950b6a72ed6",
+    "2018-11-09/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "56ca13ad646d3ac55463594ce3ecab88c38dd29a8a52971bd527c49696d4d9fb",
+    "2018-11-09/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "896305dd7fb4975ccdf54c569faf05ce0ff9a13fb0b226904fb6594ed5e5c03a",
+    "2018-11-09/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "25ec784ac43d88352d0af9afd0792646e2a0c51a04411e7bc1d54b1552cca92a",
+    "2018-11-09/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "7c313ee99e0bd3ac8ec13b576b07e6e64b0eed22505ddef1710bf2c7b1236378",
+    "2018-11-09/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "ae282bd98c3cc3420bfe36513e3c89e6176b1be8a71725305354d9945fdbb413",
+    "2018-11-09/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "4d1dbb88662353ea4bc353ec4d73600d72af0fc51f54dc3f0b8ee0b0aef05a15",
+    "2018-11-09/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "eae75d54d3bf639ea9e0381e6452b956346a56245d39920eed755c7a0197f678",
+    "2020-02-16/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "2b9e7a1be3d4599e22e3070703e76643c12a60b16109f1bcba114d9453d41e48",
+    "2020-02-16/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "db270a9b789d404885f5b6daa3e840d6e42327533e43f83732c141041a29a745",
+    "2020-02-16/cargo-nightly-x86_64-apple-darwin.tar.gz": "c23632fbdc4a64b53bdc6a0c439a5b8a496e4450805b1ed421258822a4124175",
+    "2020-02-16/cargo-nightly-x86_64-apple-darwin.tar.xz": "e94f86bf49f3c8b29a0f5eada5b6d441270182c4b5f1fde9901b5fdda5558406",
+    "2020-02-16/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "f81d3f8baecbe6b461836e667fc6035df50d645a84c58ba1d294a53a654323be",
+    "2020-02-16/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "640180fdbbb48293dee9cf5aa5288525996c64ab5f493a4f823603dbcf773cee",
+    "2020-02-16/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "a2933a0e3092320705a0fa4a9dccf32e6a6566bd7c1440554a2285a98279ed50",
+    "2020-02-16/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "c1c26ce86a927828d56c0cc123b15aac9d362665f65571714d93554d692d19b6",
+    "2020-02-16/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "658813da4742c713a7486e65d258c45492847c0a3508f041da187d03a50be8fd",
+    "2020-02-16/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "4d3c8cdc9a0058e3d16f96b567c9aff78eeae8a92dc3538d1687d3f9dda0144d",
+    "2020-02-16/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "b197fce52a420f4d91c25794c4ffbc20d10a14918a299d1f8e8c93acb415c42c",
+    "2020-02-16/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "0913473ad3619a059db55a4ca26083712067d858ec217ddb3eaef3652e43ee66",
+    "2020-02-16/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "47a8f75f95c105fa77fb2807224041801db639441608512be218c39acedf0001",
+    "2020-02-16/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "5664929c9425ebe2d44045ed63f17f35d39fcaa35da5dec9afb7c29fc312517c",
+    "2020-02-16/clippy-nightly-x86_64-apple-darwin.tar.gz": "d388e393a0cad72bdff876a99b2e5fe9f6c0d2c606a6184630aeda1ef4a06f76",
+    "2020-02-16/clippy-nightly-x86_64-apple-darwin.tar.xz": "fc06e95b59ba8b256bb67baf7c3feae54147a0e9d82185ca9978e38cba6c794c",
+    "2020-02-16/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "783fd1a17cf99c8193a3b884c80768175e7216b3e7c9a38a9fe4348e3bf66bd2",
+    "2020-02-16/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "d80ae4491938dfc20a6350ab55e3063e057815061c4bcdcd3f921b61ea3a9471",
+    "2020-02-16/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "ff5e128ebd9fe15ae3cc4953f937f92338e332054c1deb3d42b967c2e2a345be",
+    "2020-02-16/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "f59cca5a81ddcf725288ef26aeb07fca4bd9f8f8590c24cbe830ebd7dfc4db51",
+    "2020-02-16/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "3e52e6fb619b84e3cb36cc42be3c21599c1e6b72fb8738a5c8703d401f69afcd",
+    "2020-02-16/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "a153668842dce2dcf6c93b0f7318fcccb30267416c1d18c9dab4d640dbada14f",
+    "2020-02-16/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "1f1d448068a8bd58d8ace58ec201d5c55d492610ba74c4a8e0ed129060b290d6",
+    "2020-02-16/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "071b48722c1f2e9c50a19a10a58e0440a5a0c34e163e6bb2f1ba24bb9def2e82",
+    "2020-02-16/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "f0de4de8e364ee8e0aefc07500caca3917d79ceb4fd52a1602b5985b4c40ec71",
+    "2020-02-16/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "cd37143bcdb4c3c4e113ecfbdf04a00f359a5a8024cd1844767971608db74f16",
+    "2020-02-16/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "b9ec36e5c51f2dc1051e4b5831a49c096836f95c8bb87c19d6fa12bcacaaa914",
+    "2020-02-16/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "396e49eb7516114c1b1c81b7bc5536d59ca1a103a8c25197f1d9b18e59cfd0be",
+    "2020-02-16/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "4a2b966614e6bb7a1fc054ce42707c8a2b082b2f28c76c8954a19a65ea35476c",
+    "2020-02-16/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "67ac55bb39960eac54ce94b00feeeb2cfce8aaed873db086e795c376ecd0a1db",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "235fa158239a4b498846eebff92639a87c708056e1a91215377f0d485e354c08",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "323034ed74b989340a927a68596cf010c66110e0bedfe177b7bf64dc275d0772",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "f066cf2b315d0b6edc95d1b5b1b5b7a2275928045f4b2e4329144ca9cee85b6b",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "12f8c28234868cfb2dd92ef2c713f2e98e17a6c979707179d12d7210cd195edb",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "ad60578632fccc91b8503a1baa7f15629c07ffa0572c43a704cc1316ba138894",
+    "2020-02-16/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "4524b099ec9dc18df474b951971a6fd8fad23e772bc9faedd5940f27e1b12120",
+    "2020-02-16/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "9edd6c4c0d1b8626c905d91d36330fd9c2671d33f82d5bcd4413bb8696fb628f",
+    "2020-02-16/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "716773c9a88a67f050543409ddf648373833ba93b26aac188e5753b03125aeff",
+    "2020-02-16/rust-nightly-x86_64-apple-darwin.tar.gz": "608d8747aa928b128b4da9565327fe791ebc787b96e80f09ef84676f3a0a3efc",
+    "2020-02-16/rust-nightly-x86_64-apple-darwin.tar.xz": "4e9bd6e7bb4fc04b5681f41e2b663d2683861a8a958a4a9d46fb5963c3488fb6",
+    "2020-02-16/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "735f5f2762ff94b04e70209e46a57202a13a65a8b12a403b620f0896c4fedaa2",
+    "2020-02-16/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "c5d41b1b76c93de566cca6e6048db7248260dff28fce22d91f9a360c47043a42",
+    "2020-02-16/rust-nightly-x86_64-unknown-freebsd.tar.gz": "69dfcc2b029da84f68c5d543af8262a4735be574a29035d34e452932fcd66643",
+    "2020-02-16/rust-nightly-x86_64-unknown-freebsd.tar.xz": "3d3bf04d8fa3e27fdf38ab413bbf422d110646dafbcaedfef866eeb341048860",
+    "2020-02-16/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "b4f6ce68cc5fde78dc7ab06db6a6f30abde85ba6e5360ea3f75fb8c80232ad38",
+    "2020-02-16/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "e0a33e184257223b9f71c03aeaf14215f98722b8d220ac6bd5d745f7a9ae786b",
+    "2020-02-16/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "0e6b37f73853ac4cde22e883abf4251fc8af2c83565a949159c6c0c41177e8cd",
+    "2020-02-16/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "2c5ee4e061adf5b10899adebbaef109c1937907e47e440393fb30fcc18b77262",
+    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "ef3c2edd450ef3ef214a5cc412de4527631f9324a28168997233a9ebea6f08c9",
+    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "9449da76e8bf54f7d6e4155cfd5b9eab382ba438e97d1ef13ee1a7e09401309e",
+    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "e1093f086fe07fb3bfb9e9a4c5298fa6eb505b9775f7667322de019b18296de8",
+    "2020-02-16/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "edc4af68bd7ff54f392089a19f5c0d55c5145b6cb3c555a6b44df2b4cd71619a",
+    "2020-02-16/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "dcc9ce64c62e2100b35194b6a9ed3d9a7572e1bbf28ca09da687af82ff1dbfc9",
+    "2020-02-16/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "283cde11c274d39240a75e6fe9011bc1eb4512e36d80a7f1c8adfd5cefee4613",
+    "2020-02-16/rust-std-nightly-wasm32-wasi.tar.gz": "6e3c13f44ea6e997b5fb0a3818ee8cb850c9654857a438f6e8df42a6e1decf75",
+    "2020-02-16/rust-std-nightly-wasm32-wasi.tar.xz": "a6ddd9be1a5dc1a3e18a2f0b858b202ed1c4a23311ffbd826f66c668afdf9fe9",
+    "2020-02-16/rust-std-nightly-x86_64-apple-darwin.tar.gz": "d391be4bdb713356fb34cdc03475a830e6bd4476639c46ef19a8a4c05513bc4a",
+    "2020-02-16/rust-std-nightly-x86_64-apple-darwin.tar.xz": "93f70a4ac30bd15970478e735712e83b030288b8a8caa5a8bb4a0b9594fc82a1",
+    "2020-02-16/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "5881bc3954fe5c7a8080176aac4fae95bc079d020c9c68f9fc7d1064470c4493",
+    "2020-02-16/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "56fd2bfffbba897d6a1e74e3fc4924339db9f7a06386a9039e099b3933f5c35d",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "6575eabdfaed4b0490cdfffcbb5860036dcc36bebdabc58d839c088ff5556a6f",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "4beaa1676501300eac24e8890509c6c4e45117dbc26343c395d72efcd9d0ad09",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "28a169e9b0f0986a50254caf14be863cf6f1ed3aec8342a7fa756dc1af76f38b",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "c6a405f981bf5036c29d21d7b7fb037ed9757f32294419f84152f71edc2da8d5",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "fbcba5f59fc47157208a28786a9cafd4046359fc821c568afe798721f5bb4f68",
+    "2020-02-16/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "65f3d1589fdcc0acaf2cb14793b8766c8d0c4b936567de51bf589abca9ef531a",
+    "2020-02-16/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "e9cf265820f69331abc9a7c4da0c26febffd4017cf4e6d0840d4ed22b3dd332b",
+    "2020-02-16/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "66cf7ac5cd7186a3385fa96a4e973ee85ec4e6ae0718f0e8815ba96720cd1558",
+    "2020-02-16/rustc-nightly-x86_64-apple-darwin.tar.gz": "db0338b3e1934147dce0bf6420d9c147caa6aef2db1aca44ca8fef47b7247615",
+    "2020-02-16/rustc-nightly-x86_64-apple-darwin.tar.xz": "f302dda56390b399021c2505ab5aa1397d0103ec4802e30eaf9012f957ba609f",
+    "2020-02-16/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "d51440d4004e49670c5cf803f96aa222c68f09348bfca46f6e0d4c8728908065",
+    "2020-02-16/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "ce69f142787866173c7645f3f8fdf342e402381c46b3c365081a9218fb8de3b6",
+    "2020-02-16/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "c76fa125e6d17b16a96b01a875d826f20849b09970b49ed1183601a0e7803f6f",
+    "2020-02-16/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "3bf24e91c7479684bb9b067f51e868386f114951d7166066d3f7590e8133c26e",
+    "2020-02-16/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "456af585ad4408ab5f0c7500264ebb4a5f6338c0aed642edb81224ec6146b546",
+    "2020-02-16/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "a87d7f154ce039365d0111f8cf1fec53263fc998fc088158eac525ae7d8eee38",
+    "2020-02-16/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "a98a07ecd9d291e3788d7e2d0dce82adb3777570afdfbe5707d05360d058fdb7",
+    "2020-02-16/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "07073b5adcfc9db37d3abee185b1871a22069089b460e23617f407e22895e44a",
+    "2020-02-16/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "76b5fb48db5de274950f86a9b1cb69738311d2302da3e079ec772302aacfd999",
+    "2020-02-16/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "31f740c5bbb871f9e8eb44831bee3f7295692f729295783377461914606772ad",
+    "2020-02-16/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "77b467fec83ea6d8f2b4e4e186806d77ae7ecfab1de618f4a7d857aaa7f6823f",
+    "2020-02-16/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "4fd183c819d408206c9da8ef94467eb886cfaf5afe4c1c37ba8f899eb0b31e54",
+    "2020-02-16/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "eee4d08ac820d85491a9f13909f178dbdcc54edc5d98d2e433a073c6b1aa611a",
+    "2020-02-16/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "9a608b7032c751f3b2956d0d0db94b65be2874969406403c68c24fff3fdd7749",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "a47062919f16888d2baa58a640299a5a9ece3f0d6537dea6e6241ac0d8877e7c",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "ea5c5aad8d20bbadbeab71ab3244ecd5fa6000f0bf2077d40c416f2f5db41b60",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "65513b8ca698f6859af19be665bead97271e7dbac3bc6058256ede1d7340aea5",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "e7cbdb2eca6f3c0d40fafd2b2eac5bb1fd86ba0e8926cbe07499e592c8cdcb05",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "ac3275329a7f08749f8bbd08a9c183e24ad0a58c02e7cf70e81c41030a886900",
+    "2020-02-16/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "6fb5395774c2d8f8a15192e86ebcea0ac847a8ef7d9c9a97f12a8e2cac5737f3",
+    "2020-11-10/cargo-nightly-aarch64-apple-darwin.tar.gz": "cb4578ec077cfc56c3b23c59d4bf219aa05f0dbe5b431792d0860ed121e3619f",
+    "2020-11-10/cargo-nightly-aarch64-apple-darwin.tar.xz": "eebff7ed3267e21be5dea8acc625b50343ddb94b81b2e4413a2fbaf553a729d5",
+    "2020-11-10/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "de75beda2e7c9501c88874e9769101204f1726eb7b26b79c4d8c162f4b2b7eec",
+    "2020-11-10/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "60122a10a0b45b55fda0bf82fd4d94e031babbf49e339b2ab86bcc65d7c8b7c3",
+    "2020-11-10/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "0292763ac22b539d4d17d7696fa649dccb8ba0f90c86f8ffeaac961add976c39",
+    "2020-11-10/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "ae5a4c8eb966cf8a8383911aa8df4149d120507c8cb1c7fe76afee11ee2b78ad",
+    "2020-11-10/cargo-nightly-x86_64-apple-darwin.tar.gz": "ad4add153d93e7db296560da01fe92c8c975d444e33bab4869ed10cdf2023e48",
+    "2020-11-10/cargo-nightly-x86_64-apple-darwin.tar.xz": "7d7650b2e445ecbaba99eda1879273922d96c8ed4de52be4864f5210c2bfdbb7",
+    "2020-11-10/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "ab5bd83e8fdb079f20c1f3623d334972d831bb5a339c8450f82a1034124ff72f",
+    "2020-11-10/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "ccf8c6cfd56aa0893f959336e496f3f0adcc10cfe5ccce977b5b32b748d45d87",
+    "2020-11-10/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "72ab8898aea8bf1f030da12ea3b4d1dbc18e5f7c2df28282fe915390f12d7939",
+    "2020-11-10/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "e02a3d736c0ec9bb97a70eab8a3f77cb7282a0e98317a42ca1752dd6ee280449",
+    "2020-11-10/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "82b6b0c0f20d4d23b769d79b6122cb7a074d9f222325b07503eddd73817452b5",
+    "2020-11-10/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "d94a47dfc9dc38090d4817e8ccc4ff49905f57877223eab01157b623ec2931ae",
+    "2020-11-10/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "bae2a597c7c2ad907d49c6420bf85f91ea754cfb771d39d8b734c8d30563352d",
+    "2020-11-10/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "2dad054524854d159010a3dca47757a72cbbdf7af68ba33310641552c9691cc8",
+    "2020-11-10/clippy-nightly-aarch64-apple-darwin.tar.gz": "c874202231fc418dc3fea539440d413c82d354957b25fb355e8afb01b8624d9a",
+    "2020-11-10/clippy-nightly-aarch64-apple-darwin.tar.xz": "0b241eb0ca079915ccd8a31beee8f95b92088da4376993717092cccc8b4e32e2",
+    "2020-11-10/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "f2730540761a100dcec0c36773411f69e74dc1ca96c67bc0ac61e6567f84a422",
+    "2020-11-10/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "a232cc5cf69583d7705f6a889d7db36551343005ff5096560aafd91a57f4befb",
+    "2020-11-10/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "be671660b1f8d347e69e7ae1e7d86f239b9d865245f97b790cd89738363f79b8",
+    "2020-11-10/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "2d92c001edb6817fc26a33172d25e4378369759d64e34489e2c51f04acc44f76",
+    "2020-11-10/clippy-nightly-x86_64-apple-darwin.tar.gz": "5ddbc1e21dbad3af73d8d0618439ec48b0432b392989f86b9e81d952badb4d16",
+    "2020-11-10/clippy-nightly-x86_64-apple-darwin.tar.xz": "366a98aa25dab0860a8bffe609d1f22f21b8b94c8056c852e182bdb78abdbcb9",
+    "2020-11-10/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "03232d753f7b5d5f384352bd4da99aa19d476e9d90fdb4975fed49f0fb4f1ba0",
+    "2020-11-10/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "f6309f55b1d16366d2eea64e9e79ac8606dbc5732fa96bc4dcd5ff6df26533ed",
+    "2020-11-10/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "ba070cc03d05d50c00c106742fbd376ee770c0b81cdbdde549caba1535f290b5",
+    "2020-11-10/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "9922fffa586fd06889000b7601a4a2499d32f3a5aa293d862374a32946262c15",
+    "2020-11-10/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "02e23757d51c8fcedcedf02ca336a36bd13b45bdad5abb0931c9028e7228b406",
+    "2020-11-10/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "90965a6a35acebfe9128af15ebbe71a6b872d31a6830819ff83682090eaef36c",
+    "2020-11-10/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "862dd065e8933b83c17902aaee3f20a48ff67e034f6b7c7ec05ea49e240d0ad3",
+    "2020-11-10/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "9124a64e61f2a849b631a0625dd1e5e17ecbf4bfbd70c57428007a238c30511d",
+    "2020-11-10/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "e2b1803548aeedb1e6b51724c9cbab123626fc88846eae53adf0a1c55d4a364e",
+    "2020-11-10/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "f321e31ebd3aa8d05d7e61bb22fccac852b393f449dd5eae6a0d81999e16e5d2",
+    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "442255a2859c2e3345c8ceea7a28359fb02d42460ecf51d92395c1dd85c9a8af",
+    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "514df13976577afdc162a28e12ce82ef40927644d1e93345150688f0d198a3dc",
+    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "85de8206f0ea17b51bf1ff3154d9afd6855c54e6b33babea22ec512cf837c283",
+    "2020-11-10/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "6f48deb6c7cc51e4b3dae49981d57d131c7775e20c50e4bec13ac5d9646f0d5b",
+    "2020-11-10/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "9ae35e98f8f930257bb103ae1cffda42476338838f490a62ba9d93638ce122ec",
+    "2020-11-10/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "3f2c9aff147cb093bd09048d38d74e375dbee2b2b4ab877d0f59d6c8fcb7f8f3",
+    "2020-11-10/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "4106227bf29d1dbaa35ddc12f8a2c2f16ef27fe21971f6f7ed0d4356691a4055",
+    "2020-11-10/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "e073fccb87efb4daa410e8d9fedb7045612970d05a595238bc414787f21cd807",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "91dbd775c36f8b29bd688a1e75b10ab065928622985aee7e96848952ab6d85d9",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "ae4e0b647fb8fda82cc2a4079786c663a889d5bd6314e3dd4fc1d35808f20d6a",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "532a0883b16bbaa70bb2e9ba6c769594db35b1aaacbfa9ef06631a91bfe8048a",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "e5176b89ca93834972204d8079bea58a91180ef3c1333deadf7928f060d3ef36",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "fc476f62ae3a917a634afaa3fba83ee756799de11b7bb0af38a9d85e75a1a66c",
+    "2020-11-10/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "0f9e40ddfd9767bd5ebea4af75b78cd8642810e83e6d186edebee74e839959a9",
+    "2020-11-10/rust-nightly-aarch64-apple-darwin.tar.gz": "bcb30524c7f4520bda573d31962ce5b058cd9b6d05db83431b182483071fb429",
+    "2020-11-10/rust-nightly-aarch64-apple-darwin.tar.xz": "980eac0288067d0b310eaf8c9885be267856a83e057d3b01e37eb1bac3183dff",
+    "2020-11-10/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "7d6453eaf2640a9979707e6ef92b8dcfed33bd7bf5a7696d8efdab05bed182d0",
+    "2020-11-10/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "495a6d215a6a8bb427646bd68469ac18ea96b1d5a7e8a9f89d34f739b278cb2b",
+    "2020-11-10/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "b25c99b1b0f8aa36d17f86677b040bd73e2d2128938b0bfdf6cbcb1782783001",
+    "2020-11-10/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "78054cae8383103f69fd10bdf767732fd54d447fdb206daa2c6a1f83465c8746",
+    "2020-11-10/rust-nightly-x86_64-apple-darwin.tar.gz": "106395f200ef0e6d08baad05d5da786dd17c612d25ba5d7c65a7031d52af9bd5",
+    "2020-11-10/rust-nightly-x86_64-apple-darwin.tar.xz": "ad36d6497bacbf1134bcd1bd89ae9070600511e717af4e8f6d82161e94ed9a37",
+    "2020-11-10/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "6a28970950157102e0ea6799da0235483cad141b2cf112718abcaa19ed81170e",
+    "2020-11-10/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "a35958da2fcb2523c34ca393a9596d5f861c02802ab24339d5ad2edf054ed931",
+    "2020-11-10/rust-nightly-x86_64-unknown-freebsd.tar.gz": "dce8b0971da6c265190d0c14cee3e4d82ad24ca224398ef3002a870f3db31fce",
+    "2020-11-10/rust-nightly-x86_64-unknown-freebsd.tar.xz": "6e6ae9b4f647ac559aa3adb4fb67b116a0e38f14b4e1a29ecf31e4338f804a82",
+    "2020-11-10/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "29696ffa840261dec1a27018054599a93f49facfa6813f7ad1a875cfb1fc6fd7",
+    "2020-11-10/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "95a53b52073fd45e3216d922409bbfe34803a05d1347b7da1a7bfbb11f4e5121",
+    "2020-11-10/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "a9f599adc294cbbd73e56efbec0d14306cb2da15f39fe0584969ffca4b00b86a",
+    "2020-11-10/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "869d939528de1d8aca1df278e81ffb64c475d8ac2e83c894df4640b82f63c745",
+    "2020-11-10/rust-std-nightly-aarch64-apple-darwin.tar.gz": "80e57cd44992e0a9a29bb0233a4c7301369c7f00e9a63f89e944c5fd75931d40",
+    "2020-11-10/rust-std-nightly-aarch64-apple-darwin.tar.xz": "0441a39b4843e82aa578ddabcf13e54b776e2ff156ac4f4549d19e3764640f33",
+    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "a4d0fa574f93e530f421651ec38f5374fdc8be20de717c435750bfcf0ae15f36",
+    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "c4acba861dafe976db8b86ebb8838f0daef606642e16cb3a3f1f004e5c7128e7",
+    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "b1921c71b00cc8c8b665275ba4becaef16e860b88d4fcd2c6cae31cc6f929d14",
+    "2020-11-10/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "d2e2cad8e16127751f2b11a907bc5b248a2b287985cd7fc9b108d0a8aefe1883",
+    "2020-11-10/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "636cb560095c23e12d629ea21dc85af954c2fcb2df57f25b40f11826d7547a46",
+    "2020-11-10/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "265f570baa4c0bf51a02b1afc692659550f38d570d9f4ab61d4225a450bc9d7d",
+    "2020-11-10/rust-std-nightly-wasm32-wasi.tar.gz": "baf705571736331dd5449e1473b590477e2a48ad0adc6a897516fb8f1a5780fd",
+    "2020-11-10/rust-std-nightly-wasm32-wasi.tar.xz": "50ce97882cbb5cdcbb204c0665466c44fb03b1b76f4e134b19286491c79cf956",
+    "2020-11-10/rust-std-nightly-x86_64-apple-darwin.tar.gz": "2b0d1758c20fea48e8afa5c9cc2844e9eb5c77376992f2af1e68261e1b0bd773",
+    "2020-11-10/rust-std-nightly-x86_64-apple-darwin.tar.xz": "2324c13ed9030d221bf43ec1b97c5b7a8123ee7fd5fadca72cdcf7c39d8ea7ee",
+    "2020-11-10/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "9e5f1089de87e9d54417038f7d5d30de5e604bf82f5be557361cd02b55abb018",
+    "2020-11-10/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "9d2ec299d0a1b9e123d547af4c80bcf099c6cda937b37d6614c4555582bfb2eb",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "24a506f85e178be0799d12f9354c6129004068552c8f5321a519b033631b815d",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "0ee648a878347b1df982ba3446ae71d07bbbdf3ee5b406f4caee981fe485f3cb",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "367c14b7fbe98e264b0e4b5a9ddaf3f78ce3ce09bbef4c7be33a3f2abade9ad9",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "fea442176c33a2b0c590467c94e43f777f634da632b38215c24ca6a68916f80f",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "b2e929d3821b104796dbc0521228cef25ce6f55e3494dfc7c3a852b6404c4acc",
+    "2020-11-10/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "6842a292b3429b7c0aa998fdbe80c9937e0005fe0bb41ae5affe13810665f5f3",
+    "2020-11-10/rustc-nightly-aarch64-apple-darwin.tar.gz": "a461f2486013b5cec450c8f79230e83878689b803a38df7304adea27b025ef1b",
+    "2020-11-10/rustc-nightly-aarch64-apple-darwin.tar.xz": "423e820d392c1232ea4ad4b86c53a64ff9b7c6fb4eadb2bf49126f4971ac8170",
+    "2020-11-10/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "900170006c4c2d88cadc0d915d410588cb80150817e53aa7fca41a459a5ec500",
+    "2020-11-10/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "4e68e16a657832b62e529f19aba5cd21bb66e2b37d56b64e28e762a006e40f42",
+    "2020-11-10/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "bf8d81b551229263f52ecfdd561ba6698d7030832723e5c3721d5ada5d478e7a",
+    "2020-11-10/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "67823ecd7aee04025965e51262af5200211dd4840935901f75ef7b9f8a6466db",
+    "2020-11-10/rustc-nightly-x86_64-apple-darwin.tar.gz": "7a443dfb068bb7e3854dd6475564da33a57d3f225ce03ad8bc973e8900960b69",
+    "2020-11-10/rustc-nightly-x86_64-apple-darwin.tar.xz": "14a04111c9c1cc171340b601b5aa19bbadce917b3a2cc2429fb78963e00348ed",
+    "2020-11-10/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "e7b325e55d372aaf4be400273673711fe78271b655c0b710d62a972b8044b9ef",
+    "2020-11-10/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "9ed80a0b3992eb3877404ff22ffabdc568448da69607542a3aa946a615d5ca35",
+    "2020-11-10/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "3ef55f82aefad5eac4398977d34b1963feb05b1cd654005d385da26624cb2f7e",
+    "2020-11-10/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "6f7ba84d7452b4f6983ed41d99e3951e89c164e17e1a944b97cd04037454c458",
+    "2020-11-10/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "7498af27587f4ff235b0477199eec4128a65f54d4c05e4ddb9c632685ec526b4",
+    "2020-11-10/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "c6f587bdb58a87b920cf3578b3772be967f5f00a054e36eda4a3e614d82391f5",
+    "2020-11-10/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "ecb5626e23ea84e1b14fe064b6fb1afc145ec280356a6f197ec410c23756f217",
+    "2020-11-10/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "1e38c0733f43ce82541cf5e0dac989753489c5563b8bebff582b3ee8ef7edc59",
+    "2020-11-10/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "e4e992764d26792ba901fe4c9590cbb7a72a8a71b524f54ae7b1312d2824bca4",
+    "2020-11-10/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "cb34f784388dfdc55817583a320639a2a61a7892945cbb7fc8a042fab352c311",
+    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "7ec62c4aaa8a89f94e037c39907caaea942c9fb44e5dbadd65be7b9c8650c594",
+    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "08774f7fc9854dbf8bae282fffbe5b1a2902cf1b89fcae09a1d4fdb36e8c5ffc",
+    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "5324c21a1384ba88a2f2552386050b566a3c48673949218b65e26b6ecbe04c6a",
+    "2020-11-10/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "aa5ffb406e5ea755440d0b41ee4385710e3c252ac3a9d93a35374d0e6af4b0db",
+    "2020-11-10/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "c169fbd9b21ddff9e7558f8674755410d170aea6521cccadd06a14d1091870c3",
+    "2020-11-10/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "8f21ccf5a15e21eb4757cd464691920a8a2753b08872b30c1565110cdb293a42",
+    "2020-11-10/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "d3fa6a30d2be44c636478c0259337c6f449a55bd9f037cbe0600a18da143c2e5",
+    "2020-11-10/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "6acf5d609aa697dc72f36f1ae96abb7d6654d88f1d2d862c9e1cd1a7dec9df8c",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "3681fa62a68c50d0de839dfe424e30ae72d8635e15267042191bb10195d265fb",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "1974b868333ca4a4e3786d57ecc91f2a63a9c141323001a5649035c561c3b5b1",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "75e17c1e4bcfa70669aefda8ba34a7e8d6e0f5d842096b98135f3447b37d3538",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "1e4d24f965b563e836cd90bc0da1522887b6a293ef4d143e30883213cbb3fd86",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "84bc7707f7ce989c1ed452817153c25fc7324d1795650787fde878ac862ecfda",
+    "2020-11-10/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "79e76b85c270ac805e2f252ec13e4376ef29dd80fa08bf3ada08eb17c23124a5",
+    "2020-12-30/cargo-beta-aarch64-apple-darwin.tar.gz": "6c0f23ddbb4e75155d1dfc24fd9103651eea565626f8b4c292ae09b17ef287f5",
+    "2020-12-30/cargo-beta-aarch64-apple-darwin.tar.xz": "d3cf562f39886436089c1a67b3fb3f3f30ec5b9cfb272ca91067143c870eb8ef",
+    "2020-12-30/cargo-beta-aarch64-unknown-linux-gnu.tar.gz": "ae0c5595646ae7a532b5f14720b67a82875b6d4bfdc6c8a2982d7c40e0d9f318",
+    "2020-12-30/cargo-beta-aarch64-unknown-linux-gnu.tar.xz": "0df196cd147e517ab3dcb673fed4dbc67add81048108cfeabee8bdf51ad2abce",
+    "2020-12-30/cargo-beta-aarch64-unknown-linux-musl.tar.gz": "e6d576a7690ec8f16c93899b3cf5daab1608c6e4bf18fdd8462a0a61180e13a9",
+    "2020-12-30/cargo-beta-aarch64-unknown-linux-musl.tar.xz": "b33957f5bf11c06657592e4c5a0957208c347bad7c7979bd6545b63684507f70",
+    "2020-12-30/cargo-beta-x86_64-apple-darwin.tar.gz": "07b59728f4ac5f95ff8fec3813e8ae1afa4d00105e490866373ba99ff25bc142",
+    "2020-12-30/cargo-beta-x86_64-apple-darwin.tar.xz": "cdaaa09367b04c4231b54c6c429129117335f7d91e1185cd57914dbf5c4152a2",
+    "2020-12-30/cargo-beta-x86_64-pc-windows-msvc.tar.gz": "cebcf3f6f2a502ac53be02cfc3522c9bb6ec4954ccf93cc12026028102706900",
+    "2020-12-30/cargo-beta-x86_64-pc-windows-msvc.tar.xz": "76981acf37e0400c6df515e0fc1ff6d759f8eb9caec44d2589614e6ad12d6085",
+    "2020-12-30/cargo-beta-x86_64-unknown-freebsd.tar.gz": "9975b922979a74c48b8461d2c67086565fa84b4f2be8857b5027d9f1db9e7cb1",
+    "2020-12-30/cargo-beta-x86_64-unknown-freebsd.tar.xz": "2e087d04a75bc55ccaa9fa6d2ff97aa79873c4bd2a718ef11ff14ebbc128749e",
+    "2020-12-30/cargo-beta-x86_64-unknown-linux-gnu.tar.gz": "cce34205c11ae5f6c1c2fe08aedf1448d0f7bd8e11d3a7e467c12e46595d5372",
+    "2020-12-30/cargo-beta-x86_64-unknown-linux-gnu.tar.xz": "50fa339626cb8f6b0e520284294dc09df6489d58cf6deb8dcc07cd5dc0072a7e",
+    "2020-12-30/cargo-beta-x86_64-unknown-linux-musl.tar.gz": "ba71eeb40ca9ccd8d8b356fad1b7d6cb7af4f982a00b5feffede345895104561",
+    "2020-12-30/cargo-beta-x86_64-unknown-linux-musl.tar.xz": "d08f36794ab99ef5b28eda908e138ff289ebbee91edc54ee554ee852bfdd7926",
+    "2020-12-30/cargo-nightly-aarch64-apple-darwin.tar.gz": "8ac787c50ad37ab398d504cb915987ca85d87372a224564935aa1203d4cb5477",
+    "2020-12-30/cargo-nightly-aarch64-apple-darwin.tar.xz": "a25dc5632581fe820aad5380b714cd133a6ce372b3e7961f14606c5c2b6e1e60",
+    "2020-12-30/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "81195f8efae71dd6f96bea9ba1881bb647d127a130570289d026ea55a43ce6e5",
+    "2020-12-30/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "781a56f379c25bc01ab7152433f872871cf3af1ac5c331a4430a1ececb6416e3",
+    "2020-12-30/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "220ef2d21821c6c358a1672d4895389e09b78d4ab7270453f48785b9974b1901",
+    "2020-12-30/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "f48fb4219eb2da18bc78e106143d3aa82e9af62b200f4b2ed9eeed8448095d54",
+    "2020-12-30/cargo-nightly-x86_64-apple-darwin.tar.gz": "28cfbe0214e99e311c58ae2fbcd23ccf9d31d97fcae106adf174f8e697416d4f",
+    "2020-12-30/cargo-nightly-x86_64-apple-darwin.tar.xz": "9bd63a967dcbdbbdf6bacf8431389ba27176d2ff98a840f8fc1bcb9921c6c4c0",
+    "2020-12-30/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "80678407f5b2bc1cd01b36fc06105b1035740b9002f728629f3555965d0a977f",
+    "2020-12-30/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "2d825fdbc9abb180cfa1849669189801e459ae82b15d8c588cc17d836e33aa6b",
+    "2020-12-30/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "812501b738c59027b61ef6ac2462f0be76d4a95b9c78a301ef6dd33b225ca5e8",
+    "2020-12-30/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "18745d39c94c05632b4bdf7d186763ff6b23f29cec645b2e7ff5a5c8b1f4f7ae",
+    "2020-12-30/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "3d16880431ec9a218808806d6b768c7e29cc9ee6298a4dfa796f0fd5bef9cac3",
+    "2020-12-30/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "670920e5b9aa15953168d8c1ba55529c07a3f7e7c3dcd3586fe3a0225a51121f",
+    "2020-12-30/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "c4798bc41dc9a65b23962b0250cff14c648fe6804d0b96df9f59460a0741e916",
+    "2020-12-30/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "d1f87f37efbf89e7bbd2657105cd2876d9f79525af50b3eee95e0d91d9bf0d36",
+    "2020-12-30/clippy-beta-aarch64-apple-darwin.tar.gz": "b3535c7e1c72d5380518ab2568762f38c9a359310664b63ed14c15b9ff4b4528",
+    "2020-12-30/clippy-beta-aarch64-apple-darwin.tar.xz": "67a7e2f52ecb01f8e5b8c77dc5f8b3f15debaf00d2a89cd4ae2dc13bfaa48217",
+    "2020-12-30/clippy-beta-aarch64-unknown-linux-gnu.tar.gz": "15330ccfd8462712546e34c07de4f921df74798204d1dcf325e1c2df9f741b00",
+    "2020-12-30/clippy-beta-aarch64-unknown-linux-gnu.tar.xz": "5913e49e47b88973939f24a8568b661bf338773ed5662bbd5829d394b58d1f66",
+    "2020-12-30/clippy-beta-aarch64-unknown-linux-musl.tar.gz": "61d7532e94d1837dda778e0140f42384696896ed7ff22a1922ace833a1cbf2c0",
+    "2020-12-30/clippy-beta-aarch64-unknown-linux-musl.tar.xz": "15045f2e4676c8daf901ed59e8d130806be3844a5a87d28262f3bca8a0d37a16",
+    "2020-12-30/clippy-beta-x86_64-apple-darwin.tar.gz": "70161007d54df7ee2cbd2f6fa115526f9a426c7f4dd9570c97577aafb33ff96b",
+    "2020-12-30/clippy-beta-x86_64-apple-darwin.tar.xz": "fe49f46edb80d956df160dcd2f890b859abe33e0a58f56816bb313c1ac13c05e",
+    "2020-12-30/clippy-beta-x86_64-pc-windows-msvc.tar.gz": "9eef81fc0e6dddd105b871dc13834c99deaefc022a06844b191a6ebf3c266b4b",
+    "2020-12-30/clippy-beta-x86_64-pc-windows-msvc.tar.xz": "edf2f8cff30b23a6246269e9c93c43b84565b003207776d8008fea8340804f07",
+    "2020-12-30/clippy-beta-x86_64-unknown-freebsd.tar.gz": "519b646b3e23c38337e1a50275413580e697dea680a8ef40feb0fb1331ca5da2",
+    "2020-12-30/clippy-beta-x86_64-unknown-freebsd.tar.xz": "392d5ade483dfa24eacbed70fe16bed15c3aef61b37df8e3001ac40266b6ce16",
+    "2020-12-30/clippy-beta-x86_64-unknown-linux-gnu.tar.gz": "73aab1813c75c7efc14d957cbef40bd951e1b195ea2f025cec1fdd100acd3203",
+    "2020-12-30/clippy-beta-x86_64-unknown-linux-gnu.tar.xz": "6e7f3fc574cb7505806cfc288eb76195f2abb04a7ef5b2df8a15da53b962eb38",
+    "2020-12-30/clippy-beta-x86_64-unknown-linux-musl.tar.gz": "fd65821d39cf177493abf58063b2a2592403cadf4d319ed72ba99ff06b0503ab",
+    "2020-12-30/clippy-beta-x86_64-unknown-linux-musl.tar.xz": "fbd25cacb075193a2cc6fe515e8fa066d75481e51a6ae13feb161435660835de",
+    "2020-12-30/clippy-nightly-aarch64-apple-darwin.tar.gz": "15d33adcf937fddd4b27a86b0153d418fd1cfe148e901c11f69a7b62f9025363",
+    "2020-12-30/clippy-nightly-aarch64-apple-darwin.tar.xz": "8dcf66e222d8b6aa9e8f42195ef87d7d9c1c90ac3f521c83f2fd875cab6fbfdb",
+    "2020-12-30/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "09abbf8fa7d941ba4d815476b51ec96a3c138d4193971f1a765c7218da819e78",
+    "2020-12-30/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "5f195f7e122d4f5b30733500be05875ec3df36fd7b7a706689b4c2b72b287f24",
+    "2020-12-30/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "e0e334fc4ffdce118cd2bcafea2cc49aef0bb9cf69e5775cee80c5950bc8f60a",
+    "2020-12-30/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "5f34a7c97f91d0fa3297ac694d5fd67a3792faf42b3b2fb3de414eb92fd08082",
+    "2020-12-30/clippy-nightly-x86_64-apple-darwin.tar.gz": "1c18a16194a89a18ee727c18d655d613e05c3c115f6acb35ab4d2aa03ed047d1",
+    "2020-12-30/clippy-nightly-x86_64-apple-darwin.tar.xz": "d8b5a639109c484f59bee2ab36e469b780f55263e3cf2ff3a551d62d48fb3cd0",
+    "2020-12-30/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "7a417a7e816a357ff09c711fda1c0f1c3b8dab10f81a9423e8e6ea63f1696030",
+    "2020-12-30/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "119874a4173971f5a59b8a5666efc746c01848c7066d8c3665e9a1df92a67b4b",
+    "2020-12-30/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "71d41007415ea347dd347b34468cb307e88578bc095455d7d88e174a8546ae22",
+    "2020-12-30/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "71289b123fdc39d66baaaf9471eca9f6f8227f5df986ed9b2068cc2fed5f1fd5",
+    "2020-12-30/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "6dcc3aca82ff7830b89506386bd212724b265913d553c32c83ac534c500b7cf4",
+    "2020-12-30/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "f7cae1a84824133b067f35bec92cb1daf5432138e2f4181fd8629a1ac4389067",
+    "2020-12-30/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "ec2108da23dfb5f1799a1f42c2c8d6a5d72a92321b4000935d5ab29fcb9e67e2",
+    "2020-12-30/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "df3782e3aac24b82894685f839a2b3e0f6e238762f9aa0a3b138d073dd7245b3",
+    "2020-12-30/llvm-tools-beta-aarch64-apple-darwin.tar.gz": "d6e3e50a19aa45863ba5e37f316bf928f6eca96c3fa749b9ba87cddb3608a659",
+    "2020-12-30/llvm-tools-beta-aarch64-apple-darwin.tar.xz": "08aa9320599dc4c9d1d310f95b2795a81e88c65aa134495f7848063065f7cd9a",
+    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.gz": "e1f3d55116386fbecdcaacb879dc19a62a9c9bb0d06581a366a53e84a5bc4d8e",
+    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-gnu.tar.xz": "ff11938faf99afdb3f1dc9510ff7fbaefb70a6ce561afdd85cff390ecba810ad",
+    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-musl.tar.gz": "f0e7a5df202982f5ec91dd0d0bed875976906df8b64fe56702f452e7bda20654",
+    "2020-12-30/llvm-tools-beta-aarch64-unknown-linux-musl.tar.xz": "0016ab2594ac5df455f6b26596cfd721f15adb7f61b47bb65beac5075c2e9cc3",
+    "2020-12-30/llvm-tools-beta-x86_64-apple-darwin.tar.gz": "b5a1a1b3d2d316e8d66876736462b6c8b08951e7fbfa3568da19caeb976e9fa9",
+    "2020-12-30/llvm-tools-beta-x86_64-apple-darwin.tar.xz": "6d852a526c4a8d46b19c33cff0eb5145ed54474e5792c0c82ce2a7f3c96354de",
+    "2020-12-30/llvm-tools-beta-x86_64-pc-windows-msvc.tar.gz": "a10198ef08e9e58bb1a54ec23368d5df02c87b6618e16ab026afcc5c8f9cef6e",
+    "2020-12-30/llvm-tools-beta-x86_64-pc-windows-msvc.tar.xz": "ebd7b60a66a6172d09400d5ae7d7efe4fface2e7faf1578c7d2e62603de98421",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-freebsd.tar.gz": "79df94c33935de84d0cd0e985c333c2516551a9fab3c8fb7c5b93cf3b0d0e22e",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-freebsd.tar.xz": "1aa9b3ab779393b76a58bbdd4464b2ee3e801175f519d11942b74cb1639fda2c",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.gz": "6e4d8501fc7c5c69b4a5b532021a0e39e125b6fedc12b1afe4ba22d07e0b995e",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-gnu.tar.xz": "90502c680eb959ddd5f20abaacd15e0032df881412fabc036f4a2d4478343b3c",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-musl.tar.gz": "19b0382c59426db81004a4386530fa4e8981dfc2feb5bc8224ad1924e092755f",
+    "2020-12-30/llvm-tools-beta-x86_64-unknown-linux-musl.tar.xz": "bbaf7d95c48126c89330f87d4b2809486293102a6b661e1fc98b8eddd596072f",
+    "2020-12-30/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "8e2f796ace0270fd2fde8bffe4db90fa1b09947032ee705bd99a1628a1138b95",
+    "2020-12-30/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "35ae38e7b07ff235bec6302adab43afbc725e362726bb7bae414ec00fcd6bd2f",
+    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "3f59253b666c05faef7a3b9b1b761ac6ae4f83833996495936629f41fc4c6959",
+    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "58566116a5519664fe1bad18928bab2f08de9a2eb53a65ff5347e808cbaec288",
+    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "e6a109c5d3c90969f37d7f0fbd43346616ba8322dca9046a0ea7d522230f71a3",
+    "2020-12-30/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "812313388ec8a4bd294e38838a911c2ae4dfcfd60a14986caf54490361b963dd",
+    "2020-12-30/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "8aca7ddf73983bf2db4846721787547fed16c2ad4dc5c260f7f05f6b93cea8e7",
+    "2020-12-30/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "fbd720f53fc5baa98f1c3b85c39760ed4303eb0869a725f98b15d57deaf2373f",
+    "2020-12-30/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "f30202ade378ade7a1a4bf23381ae69525154ce009aa54b9d59d6507000bf301",
+    "2020-12-30/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "87a9daf1151e2d36eb3020ab06b5ab609530f03882b54a2b2c595e2dcf978288",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "7f1837f6c8e26232cad456df8ce9104cbc6eea8a57e3290a8c72286c0e9fe803",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "5b30749cf6147a2ae344fcdf7b978355cf8894220601a88e2a20bb73ecb43c54",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "b1ee3b5cafd026432c74ab9eda4f797d1aa55d06a38438f84f29be528887e540",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "6f07c061b369c9f9fe213f7712bfccaf4b43e851cbdc936d1cdb46a0c7084bd0",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "7f97270394c389db0feedc163c134518e1ec2f28910db22ed4fc50a61c2a9d4b",
+    "2020-12-30/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "b31b74eb05dde9df738a9e42cb744a8633089414a17e3aac321190c14f0ef0c0",
+    "2020-12-30/rust-beta-aarch64-apple-darwin.tar.gz": "eb202137d6801bf50c3edc06b5bf16cd5215c66d24790a1168d22fb3a504adf9",
+    "2020-12-30/rust-beta-aarch64-apple-darwin.tar.xz": "614cbf96ea1404d37016e77477232c74905d80ef0338aaf998ba6473ff25cab7",
+    "2020-12-30/rust-beta-aarch64-unknown-linux-gnu.tar.gz": "c1d80d58cd0eb74f3db650285c808d18fb0a195fe7ad6461c38de098ff94fc77",
+    "2020-12-30/rust-beta-aarch64-unknown-linux-gnu.tar.xz": "69f6f3b9fdb02bba15843aa018bb9eca846915458785914427c3f5810835dd0f",
+    "2020-12-30/rust-beta-aarch64-unknown-linux-musl.tar.gz": "a7e852fa55fe8183d749196f72606c1541fb85de7bbd58a73df45454d5cb6e0c",
+    "2020-12-30/rust-beta-aarch64-unknown-linux-musl.tar.xz": "342d83c95ebd18b0474f950f09811209233d55b158c12d3ca5bc1b4bdb6d2149",
+    "2020-12-30/rust-beta-x86_64-apple-darwin.tar.gz": "ed1b3b8f5fe4e73ddef62a54ec41dada5fb2cd2519f5c5add06be6ea57c38d49",
+    "2020-12-30/rust-beta-x86_64-apple-darwin.tar.xz": "f3cd8c848869c90ceb1c8d7166e4aa25efbbf29f42392f5867ba46c8614370a7",
+    "2020-12-30/rust-beta-x86_64-pc-windows-msvc.tar.gz": "0192de1b6cb415683e231caf3817127230828e6256150cf0a0c8f393cec50650",
+    "2020-12-30/rust-beta-x86_64-pc-windows-msvc.tar.xz": "ca6cf89d6b6e488a83b30436e03d851a76e213cd9126cf1eaff04892e6a79387",
+    "2020-12-30/rust-beta-x86_64-unknown-freebsd.tar.gz": "23515e664a0a87bd217bbcdec8785f52485ad8f74c7ff84b6949c0a16f09be1b",
+    "2020-12-30/rust-beta-x86_64-unknown-freebsd.tar.xz": "9f9c64050742e8d140e769a30e21230cfdcd947d942320166a8d5cbaba20bbf1",
+    "2020-12-30/rust-beta-x86_64-unknown-linux-gnu.tar.gz": "5ebe5cdf55eb79dad2c34fc770c5a35a6be2ef2a72865db291932ca193467b6d",
+    "2020-12-30/rust-beta-x86_64-unknown-linux-gnu.tar.xz": "e1c7fe23790fe076f39e28d1158f47e0d7d25569fd9f796357b001f775be82f4",
+    "2020-12-30/rust-beta-x86_64-unknown-linux-musl.tar.gz": "f33120cbe25113f956c035b3c2ca532eaf810ab6d85c6df69fff0eb69e1547f5",
+    "2020-12-30/rust-beta-x86_64-unknown-linux-musl.tar.xz": "751921a5b8e9949123e20300200734d23363f08fa4863782be268ee22f0d73cc",
+    "2020-12-30/rust-nightly-aarch64-apple-darwin.tar.gz": "4cc5ef6dc2e7524da659e416b68b353f61576aeefccc33c0f2564699d5d0cf91",
+    "2020-12-30/rust-nightly-aarch64-apple-darwin.tar.xz": "168ec56fcfbd94dceb829816cf59b92b345d026e3bacd3168695a1fc014a56f6",
+    "2020-12-30/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "1539f5181c1993abb7a43b14dd1294d88453e48f8670c4574e0b5e98e6df28fe",
+    "2020-12-30/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "7d970f790187f651d01c45cd94ae67184609c625e26d382266de92efea659b40",
+    "2020-12-30/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "7ef640112eb50bd77c7203d5fe56bcf3b2fba130e4acd5e707056686431a93a8",
+    "2020-12-30/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "acd1ad1ae2dd768db3aaf6dabe265d04895166bfd6b123d7c7fa610d038a7599",
+    "2020-12-30/rust-nightly-x86_64-apple-darwin.tar.gz": "2b5b885694d0d1a9bdd0473d9e2df1f2c6eac88986e3135e6573e1d71e7824dc",
+    "2020-12-30/rust-nightly-x86_64-apple-darwin.tar.xz": "6a0442ea4b07dcf230a32ad398372ca6cab82152f3404a0a49b8d75e744626b8",
+    "2020-12-30/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "2c9086371cee98ce95cf10098cd655b2e33dd70e8e250759a1e8b0e8c42d659e",
+    "2020-12-30/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "dad1551f2cb12113424a82a6eb7cab1abaeabc4550a80bd5d918f7be6c3dc5a4",
+    "2020-12-30/rust-nightly-x86_64-unknown-freebsd.tar.gz": "79e5492d9a5f9f04ec5080be1fe305a3d7adde330f5c3fb9d7a3bae52720a027",
+    "2020-12-30/rust-nightly-x86_64-unknown-freebsd.tar.xz": "c53dc053e677f66aea4a00d2e826a9a607e300e8185259c56b6d72bdd040c781",
+    "2020-12-30/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "1a6b541f2d0ccda148a60d749e974cc545d9765b71d8dec59418b493f05209a2",
+    "2020-12-30/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "910e0be04862f41fe3f7a4c8dff2da8287029646d3fb25ce58caf38e22c285fe",
+    "2020-12-30/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "fe9c7f0c0898b1f54d0a3492450580d2abb7682de74a9964e60eeabb7761a3b1",
+    "2020-12-30/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "4ed386e2b01f3a672be3eb8aa1f8d1992d5a65a6347bbe5d3541d98b570344e4",
+    "2020-12-30/rust-std-beta-aarch64-apple-darwin.tar.gz": "0065919e445e3eaa8d70561b949697b8e3af9beea62989c9ffc60856d46a9da3",
+    "2020-12-30/rust-std-beta-aarch64-apple-darwin.tar.xz": "36a2d577855c6118ef646372c5ff31ce945a14048129fc388c88699cd0d88683",
+    "2020-12-30/rust-std-beta-aarch64-unknown-linux-gnu.tar.gz": "426bd1cc7a0e94af5decd643d08c54fe9aab29e638cd79aca21ccb05ec00eaf8",
+    "2020-12-30/rust-std-beta-aarch64-unknown-linux-gnu.tar.xz": "fac8fbb710ddfb2d7a4d43b4ec5cdc75aca7eda0269b3fe42c4ee2a3666edc20",
+    "2020-12-30/rust-std-beta-aarch64-unknown-linux-musl.tar.gz": "d9f779f46c182b37b185113f92e8a8a17ebf3b5ef4e11e137980fdf7139ab506",
+    "2020-12-30/rust-std-beta-aarch64-unknown-linux-musl.tar.xz": "924427304bf90d6b61aefa86418d9eaf16a3bc6097772c2873379fbd6603b41e",
+    "2020-12-30/rust-std-beta-wasm32-unknown-unknown.tar.gz": "3cf97eba1da6d14160e82de4c0302883fb2eb9c65151dd2a148c57cba430f5ec",
+    "2020-12-30/rust-std-beta-wasm32-unknown-unknown.tar.xz": "1e8392d05da4db07988fd1ba47f8abbd0ad120cbeaeeecf9a216f2db23ef0bd4",
+    "2020-12-30/rust-std-beta-wasm32-wasi.tar.gz": "e86f3f58cc04bf4c4f9d94ac11e7244510a35f89795298658de2153a7fa60f86",
+    "2020-12-30/rust-std-beta-wasm32-wasi.tar.xz": "8c5372f9249c9d6b24276c18f11e9ba4ed942b2f8a272624dd423230c9999a17",
+    "2020-12-30/rust-std-beta-x86_64-apple-darwin.tar.gz": "12f5a181b6102f75e85b71259283d852777940cf82d1681fb19005b589076a83",
+    "2020-12-30/rust-std-beta-x86_64-apple-darwin.tar.xz": "37efc372e40cdcaf55e1277c51e449e3463bdc6b0c7dcf8220c76233d0250b28",
+    "2020-12-30/rust-std-beta-x86_64-pc-windows-msvc.tar.gz": "a02da2dbd7f3d14e4a2083a497aa7aa884b99e6ea941059102278dd2325c5b61",
+    "2020-12-30/rust-std-beta-x86_64-pc-windows-msvc.tar.xz": "90ba8dd729d3b9966a30fbcfc851faddba1a602b7a480199dbb7fedbd9058a88",
+    "2020-12-30/rust-std-beta-x86_64-unknown-freebsd.tar.gz": "379f353e27b8218ed6bb54f1ef16314624705e9b28f5cd6047bc25259aeb0bf6",
+    "2020-12-30/rust-std-beta-x86_64-unknown-freebsd.tar.xz": "6bb842028d940676e68756c3391736e7b71da239fcdadc01f34042ad6a69463a",
+    "2020-12-30/rust-std-beta-x86_64-unknown-linux-gnu.tar.gz": "6929f00e1cb93b16bd2e3d76029b297f099818183ac2d7ff23eb532d4c31ebb6",
+    "2020-12-30/rust-std-beta-x86_64-unknown-linux-gnu.tar.xz": "a84ec15075f5d22c11369f0eac0e55d5c0bcd4e7f8a2e6686d20b7fc79681734",
+    "2020-12-30/rust-std-beta-x86_64-unknown-linux-musl.tar.gz": "789ccd43b76e3f7af1675d24780281191be48991a2b2a217acd306b534bce4b9",
+    "2020-12-30/rust-std-beta-x86_64-unknown-linux-musl.tar.xz": "a152c990bb6cee8c6de77f457edcd76db2616f5fb1c9e89074b48c0b338f2edb",
+    "2020-12-30/rust-std-nightly-aarch64-apple-darwin.tar.gz": "a01bcc6eb93b1883bc57739959d6f9e13fbb80e1867310272cdb1a1de496cf73",
+    "2020-12-30/rust-std-nightly-aarch64-apple-darwin.tar.xz": "d2d5a385c31ac792877269019e7690959822941dec2fda6728b99b766db70298",
+    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "3997bd9e5057851b9e49ebcba5886ca98bf736c062c122e677fcf40aa7ac5416",
+    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "c34db21ad2f1faf98490e4146ac542f52f6a8eb7ba301bff9f7adbb8477ceb3e",
+    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "628f5ef4fd2e8b8d7e429a431127cb65321a69fbb69ed07b27df6ac4c8850784",
+    "2020-12-30/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "535cfe62ed7491e008e5c08e2a5a1810fdb06be0989bf533f1214ac032b8fc04",
+    "2020-12-30/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "b1669be863b7f419254382e9e3820e9ef0d69c60fa45f91d0625140229725484",
+    "2020-12-30/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "b393bf6a4d0634b37a298d0df7a6844283320cb6ba104f64b16dd31c18e5f962",
+    "2020-12-30/rust-std-nightly-wasm32-wasi.tar.gz": "8f2b0a30cdf50d748e57d23d94d54a4e175e864296c8048c8454bb6198b16fb0",
+    "2020-12-30/rust-std-nightly-wasm32-wasi.tar.xz": "ab30d42b00ac47baa7b7791378a0cded339154c9275aeee6e69244c9dedf7eae",
+    "2020-12-30/rust-std-nightly-x86_64-apple-darwin.tar.gz": "17912a6a5aa56daeb0aed5fca8698bacc54950351d9f91989a524588e37e41ca",
+    "2020-12-30/rust-std-nightly-x86_64-apple-darwin.tar.xz": "ade2f312c0dc0526d50e5f7cd332b10c8ee6b31f6b60fbcbdc2b0b41baedba06",
+    "2020-12-30/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "4d2585cb12606f217150509971850330cc1b7f3e1a9c18ce03fd3b981021fa1f",
+    "2020-12-30/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "d21da30018b065a833c02ca06f7b1c5f01db02e0624d2a5dca78cf5875930d06",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "ac517f0ccc4b30f3a296a25a8b17f75f877052cd56ae5c5a043d88c0f5de972b",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "5d06bc96644f01863cf95acfcf369c5a0bdb91a4c7b7b67e2306b419418ac47e",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "5b1bd5fa31b9190c66b3446629c155d4896cffc8fb1f9f603a2e949162b7f791",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "51580acdef9186ad04068eadd4890ea788964705196a4db2e806413776568a00",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "3802d2c7271cdd3fc35921b0d9f999b9b34ac9d888b62085b976453a8b113700",
+    "2020-12-30/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "178c2f559b78bfe496becad4b6d2c3ae60ddef1a582fece4f2e3212b246f20cc",
+    "2020-12-30/rustc-beta-aarch64-apple-darwin.tar.gz": "20107f4541be8822d428c402e010333f2f00aaf086d03b4e35ce8d1bd5c33d5a",
+    "2020-12-30/rustc-beta-aarch64-apple-darwin.tar.xz": "ce8fd903c567b0be9e573030eda5b25e6772e656cfa5c9c6e34050ee4af661de",
+    "2020-12-30/rustc-beta-aarch64-unknown-linux-gnu.tar.gz": "29e2808cadf8da481a0ace30bf107372dd108b0475706cbe2b9cdd4ff27e2315",
+    "2020-12-30/rustc-beta-aarch64-unknown-linux-gnu.tar.xz": "16253d17a0577996ff083db769ac8734f9ff52b2b250ecbfec2f11269df67fa6",
+    "2020-12-30/rustc-beta-aarch64-unknown-linux-musl.tar.gz": "035bd303601f588ebc23293e9c64050f7053eca1fb2f3266971bff71c4cc3a1e",
+    "2020-12-30/rustc-beta-aarch64-unknown-linux-musl.tar.xz": "98c12dac25af127000d67b4245d1f45bb00c96961e8e16ed30befe0bfef915d1",
+    "2020-12-30/rustc-beta-x86_64-apple-darwin.tar.gz": "d65df5791d79e13037672d22055ec24583195554cdf7c3c2992cbcafa497e98f",
+    "2020-12-30/rustc-beta-x86_64-apple-darwin.tar.xz": "aa0a275708d880698a842545f4d9836dcd1f7a8a71e45fe5d9933d64a9d0b094",
+    "2020-12-30/rustc-beta-x86_64-pc-windows-msvc.tar.gz": "7f934dd412207c0d776fb4e8ec4c5f4426e92b2a1854416a8ce7bbc2dc7f5908",
+    "2020-12-30/rustc-beta-x86_64-pc-windows-msvc.tar.xz": "0f396792ba0142b27bdef774226168ad5cf37e5ffc1e109065099bcb5cde8c77",
+    "2020-12-30/rustc-beta-x86_64-unknown-freebsd.tar.gz": "19818ab53bbd94c6d1723a52809bf1c3a271e258664ea2b3b7d00161965e058c",
+    "2020-12-30/rustc-beta-x86_64-unknown-freebsd.tar.xz": "1350d6ca6dfea5b87dec31fa980b26397f81c135c04b488766efc511845f74bd",
+    "2020-12-30/rustc-beta-x86_64-unknown-linux-gnu.tar.gz": "4f5ac3311c913b79dca1a02cf42fd7326c63d53ee252447b61f113c043a82b5f",
+    "2020-12-30/rustc-beta-x86_64-unknown-linux-gnu.tar.xz": "146c4451a2c90b5faa1f87ead68eb5c5cf57191bba20caff2795fefbfb39682e",
+    "2020-12-30/rustc-beta-x86_64-unknown-linux-musl.tar.gz": "d688cfe617d18c132a051afe42ac0c759638b1d2b0003fe7970becd1cf30c8be",
+    "2020-12-30/rustc-beta-x86_64-unknown-linux-musl.tar.xz": "97db6477f995c8e34bb8779c8e72d573c1452182f6c3df4a243bab0a593ee5a0",
+    "2020-12-30/rustc-nightly-aarch64-apple-darwin.tar.gz": "4610961ab77e1bb54bda95474b1c1f25f1fc5c1c103bc4f54758e5b2a5454d8b",
+    "2020-12-30/rustc-nightly-aarch64-apple-darwin.tar.xz": "dbd08d51af84b8ec15a7387196d96984df3a742ff55777674db08912946b9d58",
+    "2020-12-30/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "c9997c01769a6371200e20639fcae99e6dec3d9062f65b2928429e04d4cb7930",
+    "2020-12-30/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "e146070df907e8ce7411bf731fe82fc780053a0a6e89b6326a85e814523cfd69",
+    "2020-12-30/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "28a24668966faf46f0a79034446e54e2b86e4968e1a3a9381dbf5d9e916d8d9d",
+    "2020-12-30/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "ebd206c00dd21d69455779be03283c90a508af08a3ae4f2b97188c69329ff99e",
+    "2020-12-30/rustc-nightly-x86_64-apple-darwin.tar.gz": "cf2f06d6c8d784a469561f6323b8b923fb6ad3a7c55c7ac90d5619b9d443ae9f",
+    "2020-12-30/rustc-nightly-x86_64-apple-darwin.tar.xz": "0cf080bca9975b9d4adf603b8309f8b426e270332a302f7af5d2c3cf52dbb73f",
+    "2020-12-30/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "8df3729f3b09cb39fc4b0ecfd90551625941d508f7e776ae4e16fcf02b0af4f3",
+    "2020-12-30/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "fb0eaf0f81e832988bb9087db8110d66ff3a6250a07d20a802bbf864d08396cb",
+    "2020-12-30/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "f3818645265c3a08cb9fa04d1c2d42be72116974c9c34515feb7d5788e86ac41",
+    "2020-12-30/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "05449e1fee74c445be3c7dac2419f5647614a5bb6d91998156e590f3b3f19a84",
+    "2020-12-30/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "79fc8d51bb6d298d292045eb77e1b2d0f7f97886604599a3e9dfc0c6956e49d7",
+    "2020-12-30/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "e4247903600f291fbca34c8319bf7ca91c28fc51438b5d656d697a2a0d7ee06b",
+    "2020-12-30/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "2627e995ff9d7e72ec46d9161d3b8f78d264671c507f10337f9ec714171dba5a",
+    "2020-12-30/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "996acbdc1cbd5975b70a49ff34bbb3b28b88ccf1b7d4f5e99fb6d23d557ef228",
+    "2020-12-30/rustfmt-beta-aarch64-apple-darwin.tar.gz": "75c957da65d459a02f29affd8fac867e14eb8eec98531fd2216ebcb54a5b6407",
+    "2020-12-30/rustfmt-beta-aarch64-apple-darwin.tar.xz": "7bc5e10ba9cf388ba6a3153d07d806e144f807ddacdd0f5d3aed1c5f9fd804d1",
+    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-gnu.tar.gz": "b34fd3a8e80969df9ba71ef5b80f143b4e8f325a91d98b00db1ea86879074b22",
+    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-gnu.tar.xz": "e0265cc1aafed74d50024914e0bc4b6952bf9dcdc35a57fa9adb2b7dc0a6b1c3",
+    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-musl.tar.gz": "10353a1a4c052509277625702e6f36a3561772760671728b406cd0d5c1f46e1a",
+    "2020-12-30/rustfmt-beta-aarch64-unknown-linux-musl.tar.xz": "d3d8cf68216f341ff0f14302d17a57d2ab1b54f4f73d2666aa6017008f184ae8",
+    "2020-12-30/rustfmt-beta-x86_64-apple-darwin.tar.gz": "bfe5ef2349a226fe54d87658f55dad90b99ee6e36de4f5d1e381b1ca453e1919",
+    "2020-12-30/rustfmt-beta-x86_64-apple-darwin.tar.xz": "2022217d3f94cefbf3081e1fafaccd78d85f99ba6e384e9c7a179bc40c6088e9",
+    "2020-12-30/rustfmt-beta-x86_64-pc-windows-msvc.tar.gz": "ebac84095df62d8ed6b41454c07f043477479a1770cf156a5c9f351bebcbe6a4",
+    "2020-12-30/rustfmt-beta-x86_64-pc-windows-msvc.tar.xz": "f3fd225b3c34be7e4faa3c7856f0f63a10d3bee775be8fc343d5f7e95ad7153c",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-freebsd.tar.gz": "bfe8a34403fb19d88eb2b4528b3836a645239d239bf56cc9b916aefebd0199a1",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-freebsd.tar.xz": "0b693f075167d6bf0d9eea7a626611abc3f61ebf340d84b2f9cfb62bfc29a4f9",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-gnu.tar.gz": "78ac7e3178068c6828765c295698cb79375266cec95b097c4603f8582bd24379",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-gnu.tar.xz": "dcd8dd0cf7c75b633729aafe4f975ee216616d7694dd28c2599e61874c3a53f9",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-musl.tar.gz": "6d8f4685cc8bcee32c7e5e3b7524444d90c88486f81905e109fbe5cc47f99fc1",
+    "2020-12-30/rustfmt-beta-x86_64-unknown-linux-musl.tar.xz": "e4c60907d1d1c94626433cf95282ca5868b5bdcae93e57aa2b5a66afb0b1f789",
+    "2020-12-30/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "0c3cfa89787cc9fcdee39acc0b5c5cf3ef084d85fb0e2716926813852fb96a3f",
+    "2020-12-30/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "d4c19e1b69ec129cd3bcd51d48ec87d592f4a0dbb46aabd2be18321ed435f44c",
+    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "5fb27d5f31411c242a8046de087b3dbd73e5829d7e07493858034139681c30c7",
+    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "6b66414c1b985efe043c205c0b61ed31dae8f719da44eb36ce3019e4312a54c6",
+    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "19f6b831df8996666d9277396650909b06396fca3b37eeffbe0c763472cb076c",
+    "2020-12-30/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "8e7aa0b434fdb6db7e90a0181e8aac274d56825f2d9e3715c85607429d8ccde4",
+    "2020-12-30/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "c7da578f3b70dbfa0ae1f06370c7c9f22a49127fed8a99b69dc9ac6e42491bb0",
+    "2020-12-30/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "271b4b360c58cb64ed37d4e42a0f324d27571fb8527a083eb799e139888c1ab7",
+    "2020-12-30/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "ebae20dd198a36b657aa0486e6b557aba60c9b4fbff25c108246de312fd2963f",
+    "2020-12-30/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "9d82799c981f7f3025ae9f481243e57e5830ccd01444b62815af1ea02c804d59",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "2e0f2e4adcc234d29859aa38088a02be2b2bb0a7e43863bca6d436a6712b8b3b",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "7579e233e4073ba4ef71e2122b3cc1d6f9f46569b3b93509b94e0c0485024f72",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "0fb77ae8a33fb83ea496654a52e55ab5245206322f09c1d396e0c5833a16b856",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "a1986dcf76763b04f546a28601f49a179e15e1eab056904f7cc08d93e8c7bfd1",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "a93e4b51ca3e87661edb62d8ceedf20446e7cb2fa700ab9f8cf765db6e5f9407",
+    "2020-12-30/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "d8de00be6e6c7569b62b8feb70a523726d43d61e9c3dcc76abf4ff3c541d6938",
+    "2021-06-16/cargo-nightly-aarch64-apple-darwin.tar.gz": "eaf4540191cbb0627b2f6bb4cb9fe94351bb7601d07cd2795b3f1386d32dca76",
+    "2021-06-16/cargo-nightly-aarch64-apple-darwin.tar.xz": "7785d6bb6c8c084a118a095efe222371ef84902c298a762d7ab3096d2637b869",
+    "2021-06-16/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "a46dd7f7d4532df2944056efab6b0f510224497be0993699ee59188b03b462a4",
+    "2021-06-16/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "24b02f790067a19a264fb500b7143354b695c63700eb7bab263bbe9e864dce89",
+    "2021-06-16/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "11213aac3d92a05799892e94bcf632ea35418eb600bcf7ea71f9c8216c2cdb3b",
+    "2021-06-16/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "70f1ecd1fb88d08e39238a9765980bce2311d11dc95593e9869dc1f3e2e846ed",
+    "2021-06-16/cargo-nightly-x86_64-apple-darwin.tar.gz": "09b55140b655ade515b4890c966e2f8b23e68d96a2deb557c23d520315dc72cb",
+    "2021-06-16/cargo-nightly-x86_64-apple-darwin.tar.xz": "89bd47747559ac02e9ff1c6bd94ae64d3ee8b44cdc0ea3851ce0462518a278e0",
+    "2021-06-16/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "6180250887125396cb2dfae079bbe9a4e71e8432034f7d20428193cbbe4ccb4e",
+    "2021-06-16/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "fee2a72b77b331580f98ec4b0f0a68a9e525a4e53deb545efab6444cce347c5d",
+    "2021-06-16/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "8d54457bb1d21dfe85889fa29c3fa8dc40d0a9a54b47ac853aaa2136efec8fca",
+    "2021-06-16/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "57c3d844c877f1783aa444a09f0032da9493f79d1bae6730734300396a8e8581",
+    "2021-06-16/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "4566ecb0c1b3131f44a14b1851702e6a6bdd06f80fbf0d5d768770a97b10cb3f",
+    "2021-06-16/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "8b95214c04567b26bb572c4d4e5c3ea1841dd4384c4a1d187b321504c274e650",
+    "2021-06-16/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "9b491cb6472197db1f435e30c7b133f4da12e602d77e8ab82859c3181b214b90",
+    "2021-06-16/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "71686da1a6e61b6cc95444f543a4d69a66fb9ff76e554f83c09e88252de3a833",
+    "2021-06-16/clippy-nightly-aarch64-apple-darwin.tar.gz": "4241a05e0a53c9385f83956241131c7c7ee4b75b5ce403f992dbd3512c8996e7",
+    "2021-06-16/clippy-nightly-aarch64-apple-darwin.tar.xz": "f5e284efe33957fe3ecad4eedfda3787803bfc22a8e75013ae91cfc84e18f073",
+    "2021-06-16/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "c942124cf5d48716e0cc85c8c328e6261b8903b4d86254233367de74036258a2",
+    "2021-06-16/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "9302f53ccbcf333f15bc6d82c29613c7173a28d04ff9f79abaa36f9b32434cd7",
+    "2021-06-16/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "87a5ccb283f5cc5a35271d0de17491e37c1694ab6b3015291a37c1b18cac3f49",
+    "2021-06-16/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "9fad7583fede9a8ac7a823fd6af238b5b2e11676f6181a3df89d4c76e9e0b373",
+    "2021-06-16/clippy-nightly-x86_64-apple-darwin.tar.gz": "fe4b7a3f596a118682d9b8fb58ddb1f9b222e679dfd8ad5072050aacc30280d0",
+    "2021-06-16/clippy-nightly-x86_64-apple-darwin.tar.xz": "78fe36b9d768b3a9433e3654f1436eda10ee8909341114c9f7cdd8d7c8e2efa7",
+    "2021-06-16/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "1605953eb558f6feccd13e13dba581c4336129f9714464148c0958b22cb12521",
+    "2021-06-16/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "a5eaab6aee710a0d6214a36df7869b095bbc2356cfe894574bc363d822c18719",
+    "2021-06-16/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "2248da8e036e410c124bc24564bb99679f05beff2ab1a6f866cdd111f43ca65e",
+    "2021-06-16/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "6aa4e352b3128c4ed39a96ff7b6069ea0cdec0de4d66597a174d0dda53fa7c6c",
+    "2021-06-16/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "3308e33e1ccbac22d03a279bb5112d5e089b482b096456e1cee550df651e558b",
+    "2021-06-16/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "fc7724dad1892dce7ae1dbd566752d2743d91c6d3377044e8a7dc1c6d5825b97",
+    "2021-06-16/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "928916f1e52107d92e40732bc8dc3162be1a445974249d5cc1be8c4be5f83dc1",
+    "2021-06-16/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "dacfada0651d3e600cf84dee0541069ad316364d0d27ef49ab619216f769ae72",
+    "2021-06-16/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "9ec6f8a300c7a5d49eecbce1f6a705edccb3b2197691334df4f7cb280e10c701",
+    "2021-06-16/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "6f53d7ca8c65e064af001d4f203a5672e8ce2b1c6e455ab629989b0fbbdf23e0",
+    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "66ce674917f40309033e8bb4316577679baad14929468c5f023d81b4225a6551",
+    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "a9d69370de96e2227d48f6fd1cf1de946a8e59dfea09f3c7c07b9cb9501ef4b0",
+    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "a8655b9e3726920a705081fee1add02c26fcbd4b3bdbca52642ad74b16be24ba",
+    "2021-06-16/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "30914f5e855915c8728772aa87d7051f29816f3140a16e741628c65b7aee2c21",
+    "2021-06-16/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "e1aa13d71478684f83af6b3211b88cc2b370ac84a9f140a78af483c0aa235761",
+    "2021-06-16/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "207e2da62eb1249d40aec05a868176afcfe147d31c67b40f6ae4f5a32c18dfea",
+    "2021-06-16/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "3cdd8e14fa4b31ba16aa6b330165babcca86082397c73262e060b19e4b84d871",
+    "2021-06-16/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "dc08be077a48f9bdfb271e358f579393f9ed57ca813f4a580c7264a47006feab",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "0bfe1a25041d7c74485691106b7ec72ba6c6178bc0fad780a57d8df1c21acd71",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "258556fe3379e3de915aea82ba31947760e243ab9162c9d3db275b0f16199e00",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "7c42d2707ae20d8d8cd4a441c60bbb180ee7bd326fecb884220859dff1b26bc3",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "35ac58e194df494492b960798b98dbd5bbdf8ba2a58fe637c26ce3ef20c62038",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "47728492d7d58cc125db0fe4bb8141e230404fab52fcf898178545de44b341fb",
+    "2021-06-16/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "eaccd37df3f687bbc1aeda634c75739b6a689495cd58977c808c8425a7ad93dd",
+    "2021-06-16/rust-nightly-aarch64-apple-darwin.tar.gz": "9883ee9b5b5d4833ea6ad001b0205fecf536db3fc9b19931229922d3af8abf59",
+    "2021-06-16/rust-nightly-aarch64-apple-darwin.tar.xz": "442cf985fff314fe0f2c5ae6f45c74de402d6e5753184a9afe1d728f4e331362",
+    "2021-06-16/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "6540dd65839da5af9106652c361b696b9ac1fe4a14f4ac5801d8d6186b6b031e",
+    "2021-06-16/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "f1f043b648474bf9b31a71532d88e0a4fcb5d05011a9a32a8a10a591adae1b59",
+    "2021-06-16/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "134134199171087947159c446e2c73ef2c5efee20b55cfbe20004c80479b5b29",
+    "2021-06-16/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "b67c4a8ddce620eb846baedc150eb446f0f1524eefc2a126fae435b39b131dba",
+    "2021-06-16/rust-nightly-x86_64-apple-darwin.tar.gz": "5cc5e38ee2ff4c8acc0e57a3bc6e19bbc679ca4f6d4737c137882af4184435d9",
+    "2021-06-16/rust-nightly-x86_64-apple-darwin.tar.xz": "7a0dc5b9de20908160032d8c5cd2b4baf4585549df20ddd28cf767cf8eeb70b2",
+    "2021-06-16/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "0de02a0fbf7621da7902cdc10a07781a8cebafc71d103ff7e2e3e6fe10c43d8c",
+    "2021-06-16/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "c14a4ad6b904a751595c82402ae11049f28a6f83cdfa43e8b1b5152d687e24db",
+    "2021-06-16/rust-nightly-x86_64-unknown-freebsd.tar.gz": "8a6245719a44080281713cad744bffd2a7e8ad4578028ffbe1c0999e782c8d66",
+    "2021-06-16/rust-nightly-x86_64-unknown-freebsd.tar.xz": "af5cf706c235d948cf0dec5b6130743680cd74eea1cdba0c49d76b21b819de69",
+    "2021-06-16/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "c3af6083060b123102a073028e0109e1585df6ee95003b70d8763f2aa470b3e4",
+    "2021-06-16/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "7ff69964751295ec29cce5262af1214f142c44bf097480f438a4778196733334",
+    "2021-06-16/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "19f50a5db4699a9dcb67a19cb6b1f559d3e39ce81446d42bad43fa02890cfdde",
+    "2021-06-16/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "3c747f89873dd452bef3b7120fdc596fc0cf3fe0292314974e586a81c5816243",
+    "2021-06-16/rust-std-nightly-aarch64-apple-darwin.tar.gz": "978397a6ceba7117b89ce5a9822a2dc39b566084950c56954e0163e19afa3bb5",
+    "2021-06-16/rust-std-nightly-aarch64-apple-darwin.tar.xz": "8a24b214d00eba0de8225901898a3bcfa24e5bcc1e543e7407feea170bd03950",
+    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "d6369fa8ba1d649d08b38681234d6aec0f3871e71650ebcfcc59ea7c1bce2ee4",
+    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "e76269ab5fc2c56f633d5fd1cf1d44013d803ad6a7a61ac0182b20456f9e54e2",
+    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "9fb786450e61f6e978efd2bcc238f2cc593b9057e8448feea032b435bf51d8b4",
+    "2021-06-16/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "75ee2f0c7412bcfa6ebf56c05eb79bce57c9a4688d039727efcf374d27371c36",
+    "2021-06-16/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "d53156cf7f97293ea0d2b3b08537b1b2c3b52cc91c5a8bf28e14f69a2bae73be",
+    "2021-06-16/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "acc188893f72413cfe0b6d30fd1e03242c70ec763d065e28ef7b2d2c5fdce66e",
+    "2021-06-16/rust-std-nightly-wasm32-wasi.tar.gz": "88dd233aa844d0fb9287576f35d628c617b54da7da04338a14f7abd5aa738a75",
+    "2021-06-16/rust-std-nightly-wasm32-wasi.tar.xz": "a0ece4f495ed213b20a8473dd6fc79a2f95d10ec9096b529b2b83dd6a4bf244c",
+    "2021-06-16/rust-std-nightly-x86_64-apple-darwin.tar.gz": "60ecd0061a48198e2d890fb736c3059104ac4e88932f7f6b7e1cb59cde7de110",
+    "2021-06-16/rust-std-nightly-x86_64-apple-darwin.tar.xz": "38739be9c43eecd52195b67e16e395fd613d0e4bf29575d225ec5394aec17e8a",
+    "2021-06-16/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "a9b5cd681e66a826fabe48f38630994710f43e3fbcf73c65c59b222a23fd1f4e",
+    "2021-06-16/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "a84a0759d43609fa807e42a39e112d503ed5809650d0656190081c7cfee5c1b7",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "e5758800722baeaaa0f1b61818564e8a21444dfcbe9602b142d0454218e68d82",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "ede9d14ae68502b0d63a88eb9a95e61ae2e1ff98362cc4fd81c0a138c7c3d986",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "d863737b021c1ae1f1e0bafebf61088232a0c76d5665ce86a6fac8ca95c7bb22",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "449c65fccdcff9366113ad406270551733b4b0413f49b07960d19f5ad443eed0",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "7be512172a022f7011be352e90eb4106344af13e7a4d6b831961fd66f2f83581",
+    "2021-06-16/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "f9d955e7269f7f698c8a1443de6057e237ad66bfc31e89b6fa58734bbe0441da",
+    "2021-06-16/rustc-nightly-aarch64-apple-darwin.tar.gz": "e3dd00de0ec202c385c3c943dbec7157846314e04108c9496935ea4e273edda8",
+    "2021-06-16/rustc-nightly-aarch64-apple-darwin.tar.xz": "d43e08e98b9a84efb93b9edceaeb4a589abe0e047bf8cce8f740e346e63fdd2e",
+    "2021-06-16/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "88b9470cc39c51f1869bcaea2738a71c32baa4f76099dec77d4ce343b486bf0d",
+    "2021-06-16/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "00ee9000c966df94f7f4589c16a54222d2df601e8f0b16c47c0b81f0ae0a4436",
+    "2021-06-16/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "430e9c095cdba5341e3eb1d9bde03b90fd8dfc54a38c951a8e209b5013fc9e26",
+    "2021-06-16/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "03bb071754ec630b4062507c928bdc5c97f0ab0420c42e705ebd867d2cadc131",
+    "2021-06-16/rustc-nightly-x86_64-apple-darwin.tar.gz": "438e0615f993ddbf518848705c01fbae26f36139e7b48d9df5d1403586966f9d",
+    "2021-06-16/rustc-nightly-x86_64-apple-darwin.tar.xz": "d2fe00761258bd619f7e370bb12512c433a0bb76f6422721efed419751db93a6",
+    "2021-06-16/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "f54e69bf237c882c4d0ee730573e3ebef5eddc4a03730406cf082b43eb4cd008",
+    "2021-06-16/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "f6587f00dd989d3a7d0c2b24fd1e4de7ff9c3e8c0bea3a043822a3b89c429157",
+    "2021-06-16/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "6fda58af80d7c597d178b2137adecaf4e94c289f7f55464de0138ce76575987f",
+    "2021-06-16/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "7fb8a158cee7c85a7418ba1ba3d249a86e5030ed896430208ef34afbba191b76",
+    "2021-06-16/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "44a77db517c05e7b136c8f683e7a9c076fb7c5f15c2d2076a559398a4eeb33ae",
+    "2021-06-16/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "b0d02e5d6536f53e10d3e6bd8598b599ceac2a468bb09a4d18ac76f5299f5763",
+    "2021-06-16/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "6eefe98ce50f897fbba0bee21efbc27c76adb108189872a384683bccb4b0aea9",
+    "2021-06-16/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "804cc9f43afdb17f3a291463287a0828be59c4ed547b87f26481cfbb18596ac8",
+    "2021-06-16/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "ba8c2c5a171cb4361667584229fee13b1cfb5a901f00747f13c3b2af4fe72dd9",
+    "2021-06-16/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "dd8bf9c3066400484f4be57287517ed7cef0f95bc3c49576bd95536a41ef6a9a",
+    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "7e11932879ec3164e3042b1544259f93591cb36093f1f0e42324c480da8a58c9",
+    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "511e0b9518f775ec42fa7c87bc194ccb382defa58250ee427ff1f81d151be3e8",
+    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "519e3efc3026780dc0ea3a3020b441a22ce7c497f0f9252aa6a748f2567f1e66",
+    "2021-06-16/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "09661f5142ebdac0f29b7160cbd4b525157609d21984377261d24518fe2db121",
+    "2021-06-16/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "6e005433e4b5a46347b6ed28371fb97694087c4599447a04a7fe684fa22126a6",
+    "2021-06-16/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "9b14579833c0067ace06809e1eeb667135613f1b2823edade59f38ead95e9843",
+    "2021-06-16/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "a7606c5ddfca15e066bc844372e81912b256595b8bdbdd3ebea5622cf33bc6c0",
+    "2021-06-16/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "b2650235da2b6d8af4f0227a8d33f30fb44f2068e8c1f8c97eb06b71b8081068",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "239953675a43453195e7f6d7a106a3b65baf57230df0bb0ab19fb6839cf99d32",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "f4cabe7bf466cd3ebc72d3c1f6a419be34eee02f674e219e4f046d7ecde88294",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "3edba45a2797a3361e575e7aca34284c5ed8154f8849e3da49b59e45317dc65d",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "32d531ff4af4868deff5b999948b5a0c99875ecd38c11d07468e2af675916131",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "bdeca48139be92c824180e29b790cdb58a4d1e3c15b4c65e9ec93aaae46853aa",
+    "2021-06-16/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "3aaac8838a7ecaf813713363586be98eccc0014effdcd6a1dfa3d21caa994fbc",
+    "2021-09-08/cargo-nightly-aarch64-apple-darwin.tar.gz": "712aae52f55402ac17ca017dd337ca1aa13f063ecc666fc8c16448f42aa4519d",
+    "2021-09-08/cargo-nightly-aarch64-apple-darwin.tar.xz": "6cbf2c7a63c6a1bf89aecdd3f49bb67e4ab283f11ac22e58e3b8136e46f12949",
+    "2021-09-08/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "814ee506cce957c7371bff4961fcb97cc6ee7fc2da4189175be61a4990130824",
+    "2021-09-08/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "3188a51d6757036da4cae86ffb4cdbbc7d0974715347b5f50390f526f319ddd0",
+    "2021-09-08/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "65edd1914dc1f7118f70a722cd7f555bd7e9afc8a1ebb447036ef8948d842742",
+    "2021-09-08/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "9e6148839d2be31a190d075afaf97f23b6c461ad799e9bc0c1527fb004c544a1",
+    "2021-09-08/cargo-nightly-x86_64-apple-darwin.tar.gz": "2c539e3a02521842316202cabd37ac580e5d95ee48531435e49628d34217a8cb",
+    "2021-09-08/cargo-nightly-x86_64-apple-darwin.tar.xz": "e82f1181512b8ff88e25a1e542bf95fff635ae87045d41a7c90fc7bf24740658",
+    "2021-09-08/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "64c3ab2850c4039c58288cbc402243914eee40d35218665e6a02c8b45efe7704",
+    "2021-09-08/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "f8af6072a909103cfdf6360a8a0f62a0b713192ff97e28edf3ed6c23c421b4f2",
+    "2021-09-08/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "c119dd05ee04dc1a0bb414f30036cce9dfb0456eb974bc991acc51122528dd7a",
+    "2021-09-08/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "ad401ac565705fc1019c27123f805db73b50520450bfeb5b0ff555fa58dab6d2",
+    "2021-09-08/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "0382a83f1a93228e8fc2c68e396032f61bb431a73aecee75d461b2008c68a33f",
+    "2021-09-08/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "9ff23d2cec0630f0c836ee5d9d621cdf8fe44a55e47a08ef5f57c34598b5ad96",
+    "2021-09-08/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "bfb2a9ea032c591f1c9c36cd2590427c684ebc95b573d919d477b6bd57d5bd37",
+    "2021-09-08/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "eb33a1d7e98ac9d4ad1cf9402a7e6c98ce6e3f6c58712f115894f633f1340095",
+    "2021-09-08/clippy-nightly-aarch64-apple-darwin.tar.gz": "7dade8377af304261199dadf7126afe0e5e50173a89e805567f9d833be59c37c",
+    "2021-09-08/clippy-nightly-aarch64-apple-darwin.tar.xz": "786aa3b9368a108bc574dd43574fd00dad68e1292ca2c9c631502317aed7e0e6",
+    "2021-09-08/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "e36dce42b32982a550a0a575fe827e16e2ba6a53fc850a99f55d8319031625a5",
+    "2021-09-08/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "e06853c1d8603970f6fe073a15ad8e67b85e06c70639b60b97d7052909948749",
+    "2021-09-08/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "abce5645da1c5eeaa193d986f76531e5a3031210e3d94b66d32deba6f15943f6",
+    "2021-09-08/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "fc80124cd059f4b421e4d66df51b9c1e828dfbd75c8a18d1377179a30a61ff02",
+    "2021-09-08/clippy-nightly-x86_64-apple-darwin.tar.gz": "5064e135a17afa8540b6073fda18f686c5bc6903e800ce2f508cf33f74b5b701",
+    "2021-09-08/clippy-nightly-x86_64-apple-darwin.tar.xz": "61fdf831abd3e82edf34063f4e2b7734b998bdd8f9fa026cfe314de0dacd0e4a",
+    "2021-09-08/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "b7a6dda0b9da65fd964c01ddf16a7b5a309673ad50095bd2c6efe4f62371a075",
+    "2021-09-08/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "883666f466cc538cc9cfacc79e685eb945f65949d988d0e2aae23ea6acc81927",
+    "2021-09-08/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "8846077e6bd3f96b87b0f341566d51108e4835f23c639e3d95fdb58d31d12033",
+    "2021-09-08/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "58f2c3e205a1d156f68952dae37ad33e34cebc609b2dcf31f049664b02959d53",
+    "2021-09-08/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "577ba7ef53a84c296ef1244200af68523708e2ec0884f7e2f7978dae320cb661",
+    "2021-09-08/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "098c795c431654b856038b5edb520e62d136e11bfaba00d057bdbcac33654968",
+    "2021-09-08/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "28365e89efffcd0cbbb7da8d922ebe5c07b2f991fef2c1d845f9f7cdbb014d45",
+    "2021-09-08/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "88eeb37e4e639e1c1e2eaab7794bd5f06441fa6185c1d6b4cf5f06d59035a7c0",
+    "2021-09-08/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "dbffc97784c96ba75d6da460d965bd705c7bee737f1d73a0bccf815cc046260a",
+    "2021-09-08/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "afc9f8b2e5c760a5315ff1b892b18c7af3ea7e5bc670abec3949605ff87e9dbd",
+    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "bc789aa0b012259baa8b5540aee96f1074d9ad6368a5031b556093da61fcd8d7",
+    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "1f6548686fe0364f2946f661083bf79d5e87557036f5b5b4fd6f820f95f73152",
+    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "ed3019654dec2aa14233b9fe1a6c934d913acfd798725591ff02d97e10504be6",
+    "2021-09-08/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "1d4aeac67367aa09ab8108041a80098541f24a7698564d14d7e84e3358264ba4",
+    "2021-09-08/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "b419d08a367fe4366202106161fa1ccc4dfead9639e582b36c71c3405dc58e8f",
+    "2021-09-08/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "c3eb4b616ee88644555a09d7a3cf7e9d13c36e2aa5736248f952b791229c7087",
+    "2021-09-08/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "213cfa58059ba87e650acb240f6b1f9ed6948687fe12a236b16d0abe3e293fbe",
+    "2021-09-08/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "75cbd54fc3a454d8416f18b20f2be8fa38dbabfe57f9b6fb9d90fb0fe2142f32",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "cef580a6e8efcea89bbf40de422e04c36546462ef9e90727da7e339bc9acb83c",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "070c86bf59ac938eccdebcf2b79a501dda88e3d1fed1e90be9d63e944018390e",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "4a5ff52134c2dab1746c9d3d84bac92b5ea4fbbb4067c83ae20524eaf060e6db",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "0032b82c76aef137fc09d2260c50273da744971be29288a8ce7586a7ad3a5163",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "f20f89d4f5c49e57c950770b9b83581534b9f64187f718b8392ff58559b72de0",
+    "2021-09-08/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "ad20bad3f85717373e5a2fa53217a4590c74ee6ea4d13173710a82b30725d170",
+    "2021-09-08/rust-nightly-aarch64-apple-darwin.tar.gz": "67f875cbaeb23dd0aabcedd0c80809cbe9d0799f6316a0b37353d16921f3319e",
+    "2021-09-08/rust-nightly-aarch64-apple-darwin.tar.xz": "a8f225a51809a23d7fb626b47720953dcb1a06e2a09e159dcb0a52fe78501734",
+    "2021-09-08/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "e27d7a5cdb7076674d885ce034ae243fa77f7d1210c83d52c8f8e4c4be86d204",
+    "2021-09-08/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "5d7d6de53a32fe25e31745e6aacf50fdcb164133380656384a5e6506c137aaf0",
+    "2021-09-08/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "c4b9090ec6793d96443ba51b0e531d99e7dfe715e2a506e28aa8e070c4811050",
+    "2021-09-08/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "7baba459a0b079a4012da7c07e7e699726a9b2500a5b5fb322d279d34b6e323e",
+    "2021-09-08/rust-nightly-x86_64-apple-darwin.tar.gz": "50e5552ae8c20b056b122d2bbc45030f10772498b3bf88b6c539c9bab9e4555c",
+    "2021-09-08/rust-nightly-x86_64-apple-darwin.tar.xz": "ae23ec7f72c4900e6b96a1ede40388defd7714c5c8fba4177f73471d67ea9988",
+    "2021-09-08/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "2ba241a6982360ffabbc383f91a642dc42c59770253041d8634255543a84d5d3",
+    "2021-09-08/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "e43c8800e1f6bcbf7f885a32e8da394ec3af0651327d16dac84d1b0304db7cf6",
+    "2021-09-08/rust-nightly-x86_64-unknown-freebsd.tar.gz": "da6ceabe8dbbd1f92e0dc77a4a98ff1745bb21ea714d9f4eac090626d5a480d0",
+    "2021-09-08/rust-nightly-x86_64-unknown-freebsd.tar.xz": "c005aeee72af1e1021b404a0cad37690231a1c7473354c392b1dae234a0a6ed9",
+    "2021-09-08/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "ea4960a18a13815736fcfa33886fa9de8f07ee758339050ce676ef81e9cc0f0d",
+    "2021-09-08/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "fb5a8f267693ae1f0a3b8e6093d7774e96edc0d9b9c6b4ff7919684053088dcf",
+    "2021-09-08/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "acdbb72ee7e579940df739755ac478e3a386431aa606a9ab08ad1c870a24794b",
+    "2021-09-08/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "16812bab269c71ce3259c97d5dfce4ed54f317e9ec3d9f7e3660552308cea6e1",
+    "2021-09-08/rust-std-nightly-aarch64-apple-darwin.tar.gz": "8a08b1862d2e69d249d67fb5669983ae961bd07b9bfc80585ef84269380a317f",
+    "2021-09-08/rust-std-nightly-aarch64-apple-darwin.tar.xz": "26c8273e545eb8fc1a48a2828ba79767961c0d3941a64a17213cd2f92357782a",
+    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "0f2fafb6f4c4693380b3e8eaf4a08729b511cdb1f89c4976c2944b4f87e48b66",
+    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "2d4627169995f68b65d2649420edd565d3be40b395553613da41a5efc28edc96",
+    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "4b2c1b78637bb0ddb7f5e2ae16119f84e00f16e874955c34dd3684e67344ac99",
+    "2021-09-08/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "ec82506ae65e1b114104e5e6b49f3cd3c38f0098d83f07878cc0ec154335a0e0",
+    "2021-09-08/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "ef19646fb38abfde637fbd619c4cc4b52826fce09074f427d3cdd7d5bbf89167",
+    "2021-09-08/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "e6c277f45f1b653624884b67129d5bcd384ac58792200101b02d679b78b1102b",
+    "2021-09-08/rust-std-nightly-wasm32-wasi.tar.gz": "df7cf483b11358850a2f0f9d6816b8ebcf3813ff4c0cc75cc99171200b2f866a",
+    "2021-09-08/rust-std-nightly-wasm32-wasi.tar.xz": "84d159f234115265f4ce6ccf59f260518df3fe9efa20924cd4fc33e6c6e3ca78",
+    "2021-09-08/rust-std-nightly-x86_64-apple-darwin.tar.gz": "4d13a115d70efc84daa181bf7927b4531c5e40cfc1df8a99c04c9ebb4010b829",
+    "2021-09-08/rust-std-nightly-x86_64-apple-darwin.tar.xz": "31ce70969890db1ac958e203b53d4b6ddccd51dbc4197adf12f22f0d8c63e987",
+    "2021-09-08/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "0c93f9734b776bf7c2e150fedc2811db108e732a4f3328aedb038969b435c071",
+    "2021-09-08/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "05fadec9c3ada141b0bbd406e8460f47c297421cb387a59fc45231488f449f09",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "64ff9746ede66362f44aa5de62541a85a196e639a2cfb5d60be038579ddcd367",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "2708a34802685bc4fa3fecfa65efda726e05f1c6cfdbf3b6f7c29e85a1fe75bc",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "b6d1ff428b1c0591ea7375f6ae3421630d4b6da7e8cb6bad071284b5d563abe8",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "9a9150da9c5171d0f16395bed3de1e64f8da5befb42a658602155a3852257f7f",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "1cb7c1f28e4fa5096aaea77e56006a1cee69b77c5fcb1fae993a961942ea16d0",
+    "2021-09-08/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "30d2594e2d4a997f21edad14a9c68221163514e323f70ecc05b56e1c906c17d0",
+    "2021-09-08/rustc-nightly-aarch64-apple-darwin.tar.gz": "4de0dde4a4499074c9c4ca3a9617c89376ccbc21429ce2af94147570844f5436",
+    "2021-09-08/rustc-nightly-aarch64-apple-darwin.tar.xz": "99ca6d26ca903d23a5620219734028d7a672956cad3707e58a5467282cc20721",
+    "2021-09-08/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "a34ca09afb230c0852b1765f4477ff1135f66cb4c41fe88ca79901c3adf30aca",
+    "2021-09-08/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "ac40f4e8bfaf1c47af164827f1002586ebd7db694e8668bff567a4fb4c786ca2",
+    "2021-09-08/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "9594f62bd1e209725302318f372ea2c28cbd83ec2b29c60e5db933f60674b447",
+    "2021-09-08/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "da3109baef5ee2f3534cdeb9e509e0ca0fa22f3c42d82268bd6c33b1ccf8c7f6",
+    "2021-09-08/rustc-nightly-x86_64-apple-darwin.tar.gz": "1a7eccf24dd1baecbe07c2999c917e54e7f213496a2ed542fc8ba5afbb43d1f2",
+    "2021-09-08/rustc-nightly-x86_64-apple-darwin.tar.xz": "860362cf2333b234980e26210f0748db474f8f1895b6c3e61f02df0418cccc9a",
+    "2021-09-08/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "15667c4fe1d810b3b1979c19d1def41dc5484f7444517c4277aec2154404face",
+    "2021-09-08/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "4b3f057209f28d06074f3f94e03fd333328fa0ea58624f4eb4b2957aa7811dbb",
+    "2021-09-08/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "13b46879f9eb1a5c467458ab1eb3a65d295d9834f3fec42f0ad4a273d9fde926",
+    "2021-09-08/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "c2e96034f324f3577634d1638aa41f952d0a6e4e8ee31c943dfee1a6e9b5e789",
+    "2021-09-08/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "73891cf0b7eb252b6b8486ddaad91f7ce4b18950befe7853bc3d20d38e5ae069",
+    "2021-09-08/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "e6d5b782aa5509fb7d5a45301af2d3d9ac24f70313769853afc17976d8bc40f3",
+    "2021-09-08/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "ba94c257e93dab13beaf0a78168de64295ee0178fe76a8be10e18c5fb5d7c5fb",
+    "2021-09-08/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "ad368ca102719d8327d334804fc89c79836f076bed75acc2faa0451507cb7c96",
+    "2021-09-08/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "691922fb32f3da37532bb9be974ad1717af521ec2b71bca4bbb5e57f3c4cc3fa",
+    "2021-09-08/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "2c9667209094b7a603d50d3dc684c505b2ab855c64dcd8b23fe09248a6e13cee",
+    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "98b2eaf259a1bfdc70e40a52e891920dec7fc6132ad8d2420f91655c793ea340",
+    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "a97c1c2646f9628fcc92818d21f4925568681976727686701116d0e6a71693a7",
+    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "a4df0726fba466a5180471d3e63735c2b5ee9794e9f42026b1e8ae404dd43ab6",
+    "2021-09-08/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "92846ab58a75bddc0270c9f42234a6585edc9a382e2018baa776aa74bb13e444",
+    "2021-09-08/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "20de8ad3aa7507dd9657c4a4b959c38cc7f732a87bb757183033f78a96288e45",
+    "2021-09-08/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "99561b207ba61b455d1522d95143ca4ccc6474187be2f38f1ebff2ed63d0092e",
+    "2021-09-08/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "0cc0f10763b73c5e4c8bdcd15a563d7e9d705b192ed6e8edc50dd6a71b874761",
+    "2021-09-08/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "d734aefabe95fa03710dc75e9851c8f2e654f19cec1381ecb18281837d19db38",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "e1c28472a81312560ca36719f0b61b7212a07d63e85d745f97cd8e3b9ea8f191",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "4d6a62738f842e54666c608a466c64f896097ffa65d10d30361704e4b8496eed",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "a7d579672b94978e8427584f7e9d2b6534f320719252db46fc6ee85082d646ff",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "6ffbdb558b9d25e9d923534413b25dc99bb5b9cc92b4774d5255cf70ec20b20d",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "fba0e7bc1401b830223b5207b63808e28403f48d1591c7d47c1681519c1883f7",
+    "2021-09-08/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "644b3acc47cd7bbbb5405683ce94e7f32a8313ad265da753026bdb6c3687b608",
+    "2021-10-21/cargo-nightly-aarch64-apple-darwin.tar.gz": "6eba28dffca35b3b8809c0f56e93931ecf75b539d3ca0f048607047b2f3a9588",
+    "2021-10-21/cargo-nightly-aarch64-apple-darwin.tar.xz": "5bfc6bc7df0bc8fadd9a120347b0055a6aaf473b29ca4b3b783d1e7e78a1d5b6",
+    "2021-10-21/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "c91ab0b98bdb80b9136a06e8d6fff33641fad1c9a005559c976db57a5939bb90",
+    "2021-10-21/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "cf7f3d04d9ae0fdd0d195250207e3e6a969cb79501b6c94a84658be4074b02f8",
+    "2021-10-21/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "f0705d665f0721e64673ea8f282980e968fa1186793b7d6530415e0bd05e1711",
+    "2021-10-21/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "8099e5df6c3b4e1fb1f42b2a90bfa318e0a809c18d291a6ff78a6e91ba246a2c",
+    "2021-10-21/cargo-nightly-x86_64-apple-darwin.tar.gz": "84d04dd97de2e288d7f449006fd81a930ab1d9fddc20299c9aa8f9bcf1b5cbcd",
+    "2021-10-21/cargo-nightly-x86_64-apple-darwin.tar.xz": "48a187df00fe8eb3460c00dfc5927fe18028d5fed0250f1ee71b519f0d95ebaf",
+    "2021-10-21/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "2bdd1823caaf95e2bbf8942c35daeb9aed2bf69534bfdb18f2aa8d1e32a0741e",
+    "2021-10-21/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "34999ba4d9bc1845abacbc7e0dfe2a80add0b663de4529fcf62b92cbdae27db7",
+    "2021-10-21/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "e578efd5bb719ef96435e2e24969f968ddc00ec1515c86a7fbd01a650976e028",
+    "2021-10-21/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "6eabe2152593cbcfd771ee540412127fbf7d8bc822a6d71f8876ff220f718e0f",
+    "2021-10-21/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "7fc7f3649de6d8aea2304f286d2d1e5ef279b38d88d8fcbb8b81b1a355201273",
+    "2021-10-21/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "a4ec66b7d12b8e0c081692db92f3dcf8ed9601f2461e5e8431423655bab70a84",
+    "2021-10-21/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "b022b8341aae8c7d698d44a9f69439569385fb6a3c6e5783cf68853513023c10",
+    "2021-10-21/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "5c8d507eaee5c6c41dfde05a9a24d0157d0bcc93449a27ff10b29a7034c0ce77",
+    "2021-10-21/clippy-nightly-aarch64-apple-darwin.tar.gz": "ee11bef6780c3c326ba39c4fb2de53c7b82f3461ad50131811919067bdbc6d21",
+    "2021-10-21/clippy-nightly-aarch64-apple-darwin.tar.xz": "6b7b392dd7ffe48b67681780c81fd51bb545ca18e1d02a6cb9ebf54edbf76c96",
+    "2021-10-21/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "3e5b3866242c1c3405ab102c205d07bb633fe1884a0b1ef72e1deada91143fa4",
+    "2021-10-21/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "f0b80af6bdb8d68f9c783d383df6a31dcd69a448052fbfb6cd7423c708cc3523",
+    "2021-10-21/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "8666c8dfd127d69531f723210e23675fd372bf72c2c4ea3f853f00e6784c17bc",
+    "2021-10-21/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "5de9e7321d3d48ca8fb0bd185403f7173fd93df187c6f6e7f34c28fc946cac34",
+    "2021-10-21/clippy-nightly-x86_64-apple-darwin.tar.gz": "0bfd130526f021f8ee9c003895af276c9978f9da7a03e50d0efe59a73bcda1e2",
+    "2021-10-21/clippy-nightly-x86_64-apple-darwin.tar.xz": "2c1d313f8a3ecff32d1d231b6ab9fe509499a331c290f106a0a84dfcc50dcc0c",
+    "2021-10-21/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "713491e5f7d1a6bb8bfe5433706515fd639b359d5a589ff3ed98a23c187a875f",
+    "2021-10-21/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "972aa977f85c4f7bee6a2ca82dd8532faa5e27e5b29c40c9b4b797ea3cab5746",
+    "2021-10-21/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "6db6b98be1093fdf97a11cec2a87f30c27a10c6e7e96652f7b758f2d7428832b",
+    "2021-10-21/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "33137c0c0e9d53a69196f3de5504afae3e2b0d124ff32457ee3ed44c52166bae",
+    "2021-10-21/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "8deb9bc3831bb90cd49b9ec8763c5a98349b5b47b6622634e64d8d58a2bb33c0",
+    "2021-10-21/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "d4f8f8f241c037107636675273ad0a7215864d412d5bf85194db1fb8b07d6df9",
+    "2021-10-21/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "effdaf877422d4700dc2ebba543c4186a5e281336c8f415c20482e75abc7f602",
+    "2021-10-21/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "5bc19489142d592c4a7f3ca87d5414647e954f72b0fb232781784091884388ee",
+    "2021-10-21/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "d6a2bb9d9c097fd3ff15477a95edb77aa6efdae12c5964398e232339b15a955e",
+    "2021-10-21/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "05d4979e47fa72674203d9d582826d8cc634b203e54d855132f63cbaa91458c4",
+    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "8c9d5b9fe646fb39448addf7ee370cbba2c2a229189d38443b17f369dac2f405",
+    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "25463cd60f7158b87b728d714c805e908213554dfa5be59d62fcd3224a23c4de",
+    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "1dfa08db634e1276d48aa26e5dbc50bf2fde3f2f8ae52dbe5f8ec8fc80bacb76",
+    "2021-10-21/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "bf3a015636ddb2589e3312a76c19010f16945be2ca4fd8d900f6e58a421872fa",
+    "2021-10-21/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "b2331bc949012a35da7c3caccf87dc41f176ffec3c2101f5f2dcc9f83d733483",
+    "2021-10-21/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "363ea1b6553d92e41f852b78695981ada877d8810a9a1ff480dfc8e69d77391f",
+    "2021-10-21/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "d6aa710e9cb1a8c5913acf2addd40a261f68063e9983441d4396f4443657e467",
+    "2021-10-21/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "b0e0cf970157cbf14fb0c968bd7b3c3581c13987596469beafad5ec068aa2c87",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "85a642dbccf6f8637a5a1ec63e92d61040a9c59319ac1f9e713f5b891b26793b",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "c05ca2e37e6ce70845d6fc3584602a9cecabd9624f5721b68354667a13d7baf3",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "fa9532d8bd4cfd19626c700601cb73011b00cdd4325c5f5417004a3124d277e1",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "41932030f2e02cf456e2b381c3c44bc249c1134435db280dbf81e184f3af3ed7",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "ae10630bd5117da9f5fa5eea27b5624ad864d4d47a291a1f77ca5508c9691762",
+    "2021-10-21/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "c4c5a3913ef8b94e90dc2fcce0e87072ee44ba5a84e304cffee475e391ea9815",
+    "2021-10-21/rust-nightly-aarch64-apple-darwin.tar.gz": "5716c620dc210d2575b95f43e7dfe5100f2a8c21651fde66217a506bab96d640",
+    "2021-10-21/rust-nightly-aarch64-apple-darwin.tar.xz": "58fc0b5ba996d7c45e07d9abf318426d5ecb8121b3e601dc79b8ce5ff62e8b66",
+    "2021-10-21/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "b375f0cc8e83dea3c8a32c843492930460736c8bdb6ca3db93e7fa563f312b20",
+    "2021-10-21/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "fa3e615ca9163fc79f524838dc06c3925a803c3e8de382b261f4ef51ee1bd4ee",
+    "2021-10-21/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "ddc46ab912d69fe56cd68a74123a08404ce5f0f74551d4433e8632b45114b0dd",
+    "2021-10-21/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "26a8e79e447f21fb5a52d824da6259694b1333efa730aaffba3ddf877733d9b3",
+    "2021-10-21/rust-nightly-x86_64-apple-darwin.tar.gz": "75b66db55f4b0df4592651fc573e4251fa45b3b48b2fdff5a86186f138ff081b",
+    "2021-10-21/rust-nightly-x86_64-apple-darwin.tar.xz": "0d99781e8a8a59a6a630c288cbfe7d55cc47f4b45a3d2f0223b1cadbab40d60f",
+    "2021-10-21/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "b15a584bfb4a55719a91b33239664a8eeb55e7f7580e53d947c78bf95b8a034e",
+    "2021-10-21/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "0fdf48db3d53c75f8e39a4ca355d66b7744314e1590637c196573cc7b64d06c5",
+    "2021-10-21/rust-nightly-x86_64-unknown-freebsd.tar.gz": "74676a2604ca5032307b0dc7865d1833ffde41440d649fd8e083b39e291dbb24",
+    "2021-10-21/rust-nightly-x86_64-unknown-freebsd.tar.xz": "5cd2e1f04f430b89ce0a7c81a5760297f44f99813773f0db9262f6a0130cdece",
+    "2021-10-21/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "778d604ebb1407b59f3d331d986b2d5ead609b2cfe5db6f0ba098375eaee021f",
+    "2021-10-21/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "9f62775702799ed4acde4c691ddced70d612636d8ac40e74dacc646468948be1",
+    "2021-10-21/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "e7b285da594860356b12d61a5cd6da54e3bffef52b1b5a4f8ffeb1fa86736343",
+    "2021-10-21/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "916956b5bda3ca3b45123933906a00a760627ac147d594be6a570ce4b4e22427",
+    "2021-10-21/rust-std-nightly-aarch64-apple-darwin.tar.gz": "28e2aac0c80e4e62874fe4a97fbeea9dc4482e74964eb1f4e8a83d7531be1a58",
+    "2021-10-21/rust-std-nightly-aarch64-apple-darwin.tar.xz": "ad6d1d75f14ca471e3b6194bf23d89e7cb56ca093976cb0052a171dd4221b4f7",
+    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "c810f89068c71626ba3326b26cc24d017a76f060eadcd84ad0152b66031bd9f6",
+    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "df7e1c09a9755c509163e4e6d161f3897178c4dd27be0ad6e5961d67812a6241",
+    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "212d4f2928e14280bd2ed7a5f35e1a731521da58823f186a685db53711d5db8b",
+    "2021-10-21/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "efa19fa28b735721f86cb62dfc802335e0e4ac734c0ecbe91de20ad2c1e52cb0",
+    "2021-10-21/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "3db3ab740447206c71e303a9098a0eac2fa14117e4d6e437308239e0d469cb3b",
+    "2021-10-21/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "859461de63982c2d277f815a32e4e8ee014e1fa5f8d4453bbf15ce06d112c952",
+    "2021-10-21/rust-std-nightly-wasm32-wasi.tar.gz": "be3ccf5a00e7698b152df33d31406a533ef3fae545d4912e6c3c85b40afd4e25",
+    "2021-10-21/rust-std-nightly-wasm32-wasi.tar.xz": "fc6cead2d784deda63f84414dee8fbf985181a1e35506675e79967cb2b8cd32e",
+    "2021-10-21/rust-std-nightly-x86_64-apple-darwin.tar.gz": "73a686b2577994bf641a6422338a0cddf4250058df74ccc7540bc6026c53bb3b",
+    "2021-10-21/rust-std-nightly-x86_64-apple-darwin.tar.xz": "b2c96ae168b661ae1ceb787ccd071ea1785121b9fc3eee483d31a86ef7953510",
+    "2021-10-21/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "1d7f65a9b63a1756d5915c8305930eac747dce5da8583af00f9cff8b803a33ad",
+    "2021-10-21/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "f1ef85ade7edab096872b5aad4ca9f8ac5ec675cdaf15817bf99df17d00ceeed",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "2903783f094fb121a9171d999aa0d73a255fb5617e4cdad5d8470183758bbb23",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "b909eff37a41bf997cad567c5e7836940f51afe54c6544ef77982db9eca5248b",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "ea390777b60ccd6861e7d163cdf0c19be0b19944039f1b52283120b598f56258",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "477209d05b59db09ce9e416979364c13dce26c346a2568e2104b4e9fa3e697fb",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "182d763bc6e727f98673ab6ed9d707841e2ea8dd4571bab4f289afb5006b396a",
+    "2021-10-21/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "98a1c13ea54c69dca3f8c49e6919e964118b98b408d4af2b75120a0fd643be12",
+    "2021-10-21/rustc-nightly-aarch64-apple-darwin.tar.gz": "1b6a6bf8652751f5123cb7741466cec2164302f3306da92241b2b64103398236",
+    "2021-10-21/rustc-nightly-aarch64-apple-darwin.tar.xz": "550293a2b7de4d77071fea88b4f8bf6e6353e6a5e3bc106ff54cfcf62497e5d7",
+    "2021-10-21/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "60510d5d77b2d55e3b676bc0e478455452133f3f5dc3c173ba3d251c6b780ec3",
+    "2021-10-21/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "3929ceed3b627889a6335cac5d334c5d080ae6a76b1da373c79aad7c953c01ef",
+    "2021-10-21/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "eef17c07cd783c2a3556785245280b3e0a56290ae4620ce324dffd88caff9785",
+    "2021-10-21/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "c4c33663cca3e7fa562dff2b95a4cd0ba5730d0ad1165e4a9e076ec380b8bb8e",
+    "2021-10-21/rustc-nightly-x86_64-apple-darwin.tar.gz": "9218bbf8d37c9c6a015abade1129a3b5d37453f144b2999b2f6b569044982ac7",
+    "2021-10-21/rustc-nightly-x86_64-apple-darwin.tar.xz": "3f6e46afdb9e4892af6398eedb0481f126b0612ddd277c72f9b974d7e1d05e4a",
+    "2021-10-21/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "62e82a4283298165a0a7d656494d9f6da83cf44e098c337cfd7032acf96d0ebb",
+    "2021-10-21/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "efbe3e311e249a5f5a4166249cea0b26c413a9a46bc29dc7c8b35f9235573473",
+    "2021-10-21/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "af6c9b69129a4a81fd79481f16f9feb1d4f726859b8d888cffc6fa8231a67c10",
+    "2021-10-21/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "27766f5c9002b45bc014986f7d0b63db08a6329e34eabbcf34d619edad1543ce",
+    "2021-10-21/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "0bf65939240f9acbdb08cc4d22b9fb14357d29ee36f4bfc11d4ecc87f07b01db",
+    "2021-10-21/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "32e6a87d82b71e920099b7d2cbaf84f719fcbed0eb7263686a1d04506595ba11",
+    "2021-10-21/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "1a9bb9f7cbb5465de5976e75a730dc88a4081ded1f9fb54af1fa514a15b88732",
+    "2021-10-21/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "f3c755125254c81a4f7198e128efe5d216246d5c74192bc5a625be962b814155",
+    "2021-10-21/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "51d764ca7e1c60fed329b1cbbd2a6a56e5b41f7b728a170745f8a4b4bad10b52",
+    "2021-10-21/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "7842b3f13a0363b5ba251bdb97da21ed7909329f43efe0fed962c02f40740e2f",
+    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "2ff4e25789d019047ff451faaf44a67cd155b4c0ec6834487da6cea950bdc2db",
+    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "bd4b18f8b97d4bf4236f7226e60ee5eca88c9dfb67131926433e4316aac9a945",
+    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "ad433ebb84627c18d4c8b13623f52c46b23f628ef9a3b12e712381c504324960",
+    "2021-10-21/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "6c9b2a4380d4bc1915ac6c7cf949be20f51e08db22afd032b2898ebdcad1b258",
+    "2021-10-21/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "589c1412db27f90407147ce3acad3afdb1769d77c1f31156ad6101c317f28490",
+    "2021-10-21/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "55ae02b4d99eddd0286e8cc5b77522d868a86d4fc7fc2a92ea88cf75f79df47a",
+    "2021-10-21/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "49b0163001fd7dd7395f89b408c9909c5b33c4f3147902ec2f77e567bb9d6b9a",
+    "2021-10-21/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "27cb54b5580d8dacf88b6a5c94cacdfd9fd232e387712b62f35e9feb04e9d8e2",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "d76aca59bb56c6f2e01ab5da9461e058814ba2fed6ebc3abb6bf55ee44a241cf",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "52fdb604a22fab066609c48aba5e5857a3b99414cd376ad9cb5c1e56146018b1",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "d53c942dc0628ec0214f0eff51ebdd8c70f2bff1293909c908e063c9153144eb",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "9ae03aa60e3c415a0a1d4b198b19fb5528fcd302c8db012b784905ae6704d9de",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "21b3db961750e8a6ff83d2773e0feb86292fd92fbcda9f3362976b04b9069254",
+    "2021-10-21/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "f60e7dc66b182be2f8b0d6c77364fa181932da51f45f3d8d3b95bce2d620d6b2",
+    "2021-11-07/cargo-nightly-aarch64-apple-darwin.tar.gz": "1947ba0d6b97e097bad279bbbf891d7a65d3b1611280dd88e82fcdb9f832cb3f",
+    "2021-11-07/cargo-nightly-aarch64-apple-darwin.tar.xz": "dc750f7222f7d6f6e3bac551588dcdd33ef020a97ca65c0b0fa3379592096967",
+    "2021-11-07/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "fe70a3e01abd01738c51479a7bc834392005cce661969088dac220f1b5fce31e",
+    "2021-11-07/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "3233ed7e3eeca9345c292c0bebb22341deff46d045efe539313e90b2f6311d82",
+    "2021-11-07/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "987df6c4597a26c1a9bc0f195312cc96dcf2fe1f3651e91bea72a34f6dbe4d82",
+    "2021-11-07/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "181f1bf57e1149f656208b23d54c145082c8a3a74916838e2b6ae695face6dca",
+    "2021-11-07/cargo-nightly-x86_64-apple-darwin.tar.gz": "968790a3027da539c57caf194b8feafc9b01d3482566d58f2e012e8d00c28265",
+    "2021-11-07/cargo-nightly-x86_64-apple-darwin.tar.xz": "2c0ab6620cdf8a1ab66d1cff5f4b22860ecf6b1cfe06bc5655cb624c8cb328c0",
+    "2021-11-07/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "e56ce94434929c1a4eb2bdfdcfb19e4194ff177c1d5934403deadd3db4304f91",
+    "2021-11-07/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "306ca2174c5f83200f8d1ebf71843515173c7bfe8d267825c3218aed6ae7287e",
+    "2021-11-07/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "51b2935810f845a9c85c51344488fe403ce13d49196135318373888726752339",
+    "2021-11-07/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "09efe1d378129951fbfb36254f88e0292626f3de9fd69feb4faa1f3834d7a241",
+    "2021-11-07/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "66f027e3245c2fb444a272c9429c6b6334da8afe1ed87ac5ecc68f357cd37c82",
+    "2021-11-07/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "1a011acd1a3f8145aec817808fa778cceec0c65a0ea8ce2bd492017507b5dd9f",
+    "2021-11-07/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "f6b4e44c2abc28281da5e03c0a957b8b54e22de34f6cab94894efbace7343c02",
+    "2021-11-07/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "ca2099b7d16b7df063c7cdf27f403caed00dd49108ad96153f3d4e0cae0cc668",
+    "2021-11-07/clippy-nightly-aarch64-apple-darwin.tar.gz": "f16cae78cd8cadb8389817489283a572021a5f944e80c5c328ee32a83fb869c7",
+    "2021-11-07/clippy-nightly-aarch64-apple-darwin.tar.xz": "4f71ff5a856ac16ad7ca6663198c58191b5517ea348aea84d82949ed2e4f1df0",
+    "2021-11-07/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "b0cf7f65fb5a903e62551e49b9341690b4f800552b34a4709ab8630a5cbdb71b",
+    "2021-11-07/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "20e2f0259b0bace5bbbbca9df41dfbbfe1a5764e8b561e3fa65e10f1497a1b34",
+    "2021-11-07/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "b320ed68f8af98cd4c857ab7e3b2e3bed38f580ed6b72cc0f71e90e8dbbfb72d",
+    "2021-11-07/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "a276c594879d167d9bf66882741e006db20e309905594112e45d473afcf7124b",
+    "2021-11-07/clippy-nightly-x86_64-apple-darwin.tar.gz": "40f91067724c983bf6061a5db4ba90bd620718f564648287ec52b348d76d012c",
+    "2021-11-07/clippy-nightly-x86_64-apple-darwin.tar.xz": "01649987b07e04109fa69150f45bcfff49a30c1b3fed3a5d6c964b696f2355c0",
+    "2021-11-07/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "1279ba3f78951e5f2180f3f07fcdbf4eb561ba5cddf84afdf53ebdd4b8ca2e24",
+    "2021-11-07/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "cbfc1294eb2b4a00d7c046a30f44746792de42349f2dd889daaff7e72397b35c",
+    "2021-11-07/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "3aeedabc9dcf54048f59a8ba9e695495ea3f570b88df98ef03c8d1247fddeaf8",
+    "2021-11-07/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "78193c8e37573e0122257c437b49f3b332d0db0d7679f4ef9364853d6c98b510",
+    "2021-11-07/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "567b3a83390c893077b540cd07f4798d8d287e30025f437ff4e21609b1a773c1",
+    "2021-11-07/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "d03d8be1ea01369684b0d8709606d3a9e504d87fad8b5122190cf6b6245dcbb2",
+    "2021-11-07/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "a97bddc05146f2c55016af4cc53cd06786a01eb111dfe139bc421eff1c54c645",
+    "2021-11-07/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "e96c665c6c08c25367db2effdc3e8c9d49ff67950cdb66c9b80c866ab74201b0",
+    "2021-11-07/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "f3c5c93432ac2c7397ba5bf598f36a9e05ccec1ba8646e7127dde13741e91e78",
+    "2021-11-07/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "20dc766f97f55f908f4275f4dcbec83a449ac79cee4882e08e5416acaae7f365",
+    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "efc96c6a6d7cb0cbe254f1486c5b9678078aca950bdadfc36d8218fd0cd739fb",
+    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "c9143e7f9bb8714e67dd0a2f094eb814be415aab387d7d621beaf94e6ae48439",
+    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "f760aeb71cab8abc582eed5766433a7851be2da80d20b75dbcae5df0d3c3be91",
+    "2021-11-07/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "b3cf46886613ee195355afd367b34e829f339cd0c2f8d1662a30d3d8ebfe83d4",
+    "2021-11-07/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "3b95d04628e75c2ab43298db610e519fe4c00057757bce67461264e2479d265e",
+    "2021-11-07/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "7fca2a5e48d295aeb6e7daa1138e9d95447297253864c344e79db0e31ebecc05",
+    "2021-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "26a88a8d0e0b2fd9336b85e8a8cc7aa0aef72efca48c0acabf40a5f9f9b9902e",
+    "2021-11-07/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "6d651e06199c61e8c91f0d06ebd52976886f59363e2ce377cd16af83f4ff6815",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "064b8fef9689bb51cc6358e3239920117aa518e9d375be48d3d7e17ce4b7d2df",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "d12f3196c8dccf0fa8d2b0f4cfe317abd0e2998d25d7061ed042a9ad5594563b",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "a72f3f2034921baa4e8d2af412532df45d39d163ee6af77c1ed5da3be32efccd",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "99628ca80ece129a713ac0b686ca0dc1115aafbfaf15bf45b1d867fe38ec5030",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "da704644570b177093eb13486b3f34a6aa7c8b93fa565395eb15ad29bc75fb15",
+    "2021-11-07/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "119f7ec2673e8b51b87fa0cdca2df05d20981d65857a2174382491e7cad67eee",
+    "2021-11-07/rust-nightly-aarch64-apple-darwin.tar.gz": "ec27e6e751bf24916e53e3d601bf4e406e624f4ed894aeddef6b418622b41316",
+    "2021-11-07/rust-nightly-aarch64-apple-darwin.tar.xz": "1f96a8c3b72cf9fed3ac81831311a68ec669443ff19607d63116109d858014a6",
+    "2021-11-07/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "cdafea25f36d618d754ddba007ffa0cc0e52df60c160187f68f7d41a91efaa12",
+    "2021-11-07/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "22472088d378e4434b808c3c49686a04c856ff765c76981ca27b7eca163caef2",
+    "2021-11-07/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "b204d0979da8fa81a5be832868df4ccf9031e9582d2a9720bd17be5af845c055",
+    "2021-11-07/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "a29847f7da534ca68fc5473fe4575c883a1380858ee04f10ee76172718cb12ce",
+    "2021-11-07/rust-nightly-x86_64-apple-darwin.tar.gz": "fca7b8c128fc2c0b8834d06f6ebf78e4d2030be83a87a08f2f9f5247d2be8470",
+    "2021-11-07/rust-nightly-x86_64-apple-darwin.tar.xz": "865137f75cd6bf7a130e8e225df64afae424c2ac7ce9463c848cb7c00c355643",
+    "2021-11-07/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "bf441a201b48d61a5908952367f830fea0642993d518972fd3acff62b6c1e321",
+    "2021-11-07/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "d2ca09cc5c869f6d16ec04524db4619c94749f7c70125100bada236357d77849",
+    "2021-11-07/rust-nightly-x86_64-unknown-freebsd.tar.gz": "bd0791a44cd3c8f2274b42b9206016ac948cac97b642f0303c0f19e0fffe6089",
+    "2021-11-07/rust-nightly-x86_64-unknown-freebsd.tar.xz": "80de71f0db59d2c66fe9834d52e74335ddf55554d42263920460e9a5108e6bdb",
+    "2021-11-07/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "ece5f02e4c1cbaf6801fab787d834166aee7676f7c3b2272ff9810d6d541af27",
+    "2021-11-07/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "e10e609cb401f113c1c4efe3f4507c4e61ae1c11da4543e46a7421d314c24b73",
+    "2021-11-07/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "926a2b44e0c2f093e62e696b6e53e3b5a9d7882e8c426cfdb364a3e2a2541ebf",
+    "2021-11-07/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "807f69fcf8a1df7dbaccbfec5caabb06a0f0fb49ac3d290e6ed64bfce33e65d2",
+    "2021-11-07/rust-std-nightly-aarch64-apple-darwin.tar.gz": "478dd2f878e791185e565f9a6a2ae0e7a35c472cce873e50bd6b9cf56b364a38",
+    "2021-11-07/rust-std-nightly-aarch64-apple-darwin.tar.xz": "a1ce7197a34604172e3cbafcf22beae591774fb42978e6501c0071d78a4e3206",
+    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "31e933401b920a16b797f8ebd3f7cdac43647db5b266f8e812a847f34f167b66",
+    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "1ef6af35e4ce4c32f3c7fd30c5416dc4eff99bb2cbb156e3f0e305654325b6e2",
+    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "b27f126391825d7db36ccfb688ac3c1d3ded91b9b26446dd1da7ece05347f96d",
+    "2021-11-07/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "575008d1e9010710b935d6cc1864351bbd60927665e4bbf1a0390c434ff6b03d",
+    "2021-11-07/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "da22f32ed22a44d1cf478b52e062494ae063cc3ccd06b12964d6000cbae54186",
+    "2021-11-07/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "58abf39b0e663a03cdbbd55077bac4dee606eabecc1502e01dea24cd83d9197f",
+    "2021-11-07/rust-std-nightly-wasm32-wasi.tar.gz": "02fa9f517dea1f31eaa6366c3de5bea2a6c3c09f16758e7a70518727d77191d2",
+    "2021-11-07/rust-std-nightly-wasm32-wasi.tar.xz": "f6edb3a8d9cad814464ac9389144022607bfe9f547179d6e4ebe9c04302ca111",
+    "2021-11-07/rust-std-nightly-x86_64-apple-darwin.tar.gz": "983aa9ada64afb54453b39e572f5d622b2f390dcbeef1002aac1a5d11a50b3a8",
+    "2021-11-07/rust-std-nightly-x86_64-apple-darwin.tar.xz": "90fbbce64e0eda69dca0953beba37f28ac547292cd1ba5234ea2818092051059",
+    "2021-11-07/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "408884156e55fe210880e7ee7612a5bbbb2300e4dc4d1ee0cd3726a1225343ca",
+    "2021-11-07/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "8ebca7571b45ae6f40a469b6b1b3c7ae21e45f5692cfb3520fae16e82537bc92",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "c42b5c495e216764f56e538f0cd54fb6cdf193cd3348a7f37b157f27f440ea43",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "90b47a4e5947f4323c133bc848ac3adb7c16750a9e3c5b6bebbf05f7cebfe0e5",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "218743da51034586ed84ad43f95d95a38805403f0e31faaf247eedba883fa8b5",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "d130a1c12cbc9254eaf63afa1024ed1ce2d9d609cfb2ebc738bb07ac160cfe7c",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "f5733b29a9c1102355cde885cebf5da42b738632e7dc5919e246c34551126c50",
+    "2021-11-07/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "ceea4c0232dea58635d697e496433ec571a342e3460e1ebcf57bfbf8609d24f6",
+    "2021-11-07/rustc-nightly-aarch64-apple-darwin.tar.gz": "ccfd72ed6a189c490d22ea91e53ba7d217db123b6c4015de94ac88973a4f031c",
+    "2021-11-07/rustc-nightly-aarch64-apple-darwin.tar.xz": "e85a44fe9ac7ed3f80e8fc0e5312e8ab132c389f910f1c754c17694b57edd451",
+    "2021-11-07/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "3f5a445397f8a7dece4195b7c181398b6d7c06480bc59ce92058c97f68172353",
+    "2021-11-07/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "a14836b4cce04635c5d6a1d3bd06cb37b07bdd430cefc241591280e3909c01b2",
+    "2021-11-07/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "5588596a3ef4bd938802349faf64159fb661f04717fef2d08acfc50d35de4673",
+    "2021-11-07/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "a4bfbe1fea7625b735804592326a29a09d74d6b269d122825df10e045f0e88de",
+    "2021-11-07/rustc-nightly-x86_64-apple-darwin.tar.gz": "c3df9cac3419633ae1e9b6a41183a413a3a722a72124394d441d5c914aa9f91d",
+    "2021-11-07/rustc-nightly-x86_64-apple-darwin.tar.xz": "e21556c0841684727cbb869ad25c4eff437713702f2cae5224584a847ba330ce",
+    "2021-11-07/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "e218ed52bcd57b25a0eeb8a9be4fe954ea226f785940409cc6fc378ad8f25876",
+    "2021-11-07/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "b66147223c441e564e792f4a52293977e005ff976f2c59df35b0c19bf833c45b",
+    "2021-11-07/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "c5f2cc78f5f59179e0fb3770e58eacc44eddcb0c3b2c143b8681776b4caead88",
+    "2021-11-07/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "9bdf8811e5e3b89f8c0dbf81e1967de4015c68338e01fdc20be7445146f86ebf",
+    "2021-11-07/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "e7e6dbc8291d283a890c994ec9507dfce25aa93a47b2cc213f845b3bedcd2002",
+    "2021-11-07/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "a769c89d60869e43aa686b35edde453bc9fa594f4f6defac11d8469f9592b496",
+    "2021-11-07/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "95fcbd60d484725002c1d20134160201417cc6715ba4e320fa30f95afd95b4e0",
+    "2021-11-07/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "a59296b0e9c2621e154725b23d96fbd842926f527bc1cef32a883cf0ec0a0465",
+    "2021-11-07/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "3493f540161825feb81d022bfb6f84f2040f5ad014640e9bfd1a4b93902113c4",
+    "2021-11-07/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "171cfffe916354dee2ea93338ab2d3b27250d5d80fc422a42f2f3519c63b803a",
+    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "58291d3b3045b3c2f156d7547db3d5c117840663a6d10425580fe2936c1f7f9e",
+    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "60d7ef1f0443923edc47b86b15b1d1437b50f961ea396342d656448723c99b17",
+    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "85178f75658b69291bedfae0d7c27505f7b0aa0fe53de3922d2f3f671d601e13",
+    "2021-11-07/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "4b7d0ced50df1da2e71055a8e6d90af8a2c32b266d81fffd31e2f9a603e07d46",
+    "2021-11-07/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "71bcbd9b0e8417e8cbcece46701a3e023eaa596377bfa66507fad0ad383cfd46",
+    "2021-11-07/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "94eb1cb81d0cb2b9d05a06f0a2cdcb5b26ca0065180447e282a35534e411d355",
+    "2021-11-07/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "c082bc7eb8d04e4d7025e23b443b14aecc5d504e3de21c1c110c3e04d05d71f0",
+    "2021-11-07/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "6f43ced0bdf1f74d8cf279d20cadbfa4c4784dd6cc28813f7ef853458f9f03aa",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "21815c052a39c5c5d361bbb473a2c36125eb657598359f6b343e352c278c0543",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "ff5a7e6d2996bdcd8963b99d9ed8c516c573be8881284e50697b093b667febb1",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "102e7e2300fd6dba8aaee468b887ea7fdc43f39f012db2815040586959f6aa36",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "7a01a68ef11ce353e32545853ac97eee77648e8aee1d26403108ddf68e3acc35",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "8ac20334b400e0a6e4b487e3536f7236f9238a45d63f490baeda7c47fac72504",
+    "2021-11-07/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "2ae573004ad28697fedba75cdf65790199b8bb4bf9623093281802a604c711cf",
+    "2021-12-01/cargo-nightly-aarch64-apple-darwin.tar.gz": "424a002ad3d9b2974aebf3eea8400081e3aa66b1b4aea0e8b12534b0d6857bde",
+    "2021-12-01/cargo-nightly-aarch64-apple-darwin.tar.xz": "582a33b9f79e1786da7229652630d05d784e04fe82258c7930785d9c6d287a1a",
+    "2021-12-01/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "56ef3a6f98e063b7297f5a92ac9aa20fd8d1a235a4879a10c3b8a0ebe2e57245",
+    "2021-12-01/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "cdbefca2aab3e19508e887ed66783d704000832cc2b1d962a59d6ec3e5f26034",
+    "2021-12-01/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "71d08d9ac3da4c628e91b0e9e0b34ad55d2f4904953003ea96d2b016837c5f1f",
+    "2021-12-01/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "fa83f10582f909903e0bc0dcd67c1b547ee6f3df59053ffca13ff8b073e024b1",
+    "2021-12-01/cargo-nightly-x86_64-apple-darwin.tar.gz": "4d12c1d9034cf759c15d30d768a3010504621f5ccfc22026bf6591afc16bc780",
+    "2021-12-01/cargo-nightly-x86_64-apple-darwin.tar.xz": "bd82a0284921407245d01444e18436fad9f6836ff5a2ac1f1fb4f4437b28d80d",
+    "2021-12-01/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "06b258fd6c10aa97bcfdfaa9e6d728b7024f1ca9bb4b69978ee433710e1235b6",
+    "2021-12-01/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "da38553654363c868784f6e579dddfe21a34d7b5eab26f4dad5a7709eacdbac9",
+    "2021-12-01/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "924f3f0b15d8109261c4a28050e64eaed0d5f2dba9865920d7a3f94f613d2517",
+    "2021-12-01/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "a560b3c2e320061dc497463f880f503cda03dff77f4219c7c1ebf59435aeea2b",
+    "2021-12-01/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "0757e9d7faa9b601b35294a44b6224087f6df384e157f8a80a8bd7f609532987",
+    "2021-12-01/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "64b738b823e2fe91dba33eabc02c96871ddd309d56d4173d2caf7291a4e2cf6e",
+    "2021-12-01/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "bf5bcfbe47ccc49d830623a57b723a3c7436637c36d84b53f597d85ee1132cba",
+    "2021-12-01/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "2e86420bc605f227a4ea584539e62c338836d867e71e4003aaa3d2f895a85e3e",
+    "2021-12-01/clippy-nightly-aarch64-apple-darwin.tar.gz": "bcfd9191c6cc2b779ddb5c5bc5ceaf3fb8efa700123c175a0944662809357efa",
+    "2021-12-01/clippy-nightly-aarch64-apple-darwin.tar.xz": "cb6e9712dfc36065fe93f4baee85a78494c0fb4c37a9384fc26ba18376a70a23",
+    "2021-12-01/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "4903c94d97700b9ad70689fbaaaa939a2f37d4736cf87bcf900ae5e909a6917a",
+    "2021-12-01/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "b54dffcb1994cd999186402d38ff8d36b3fdfcb2c0a85928c8e31f8804fa4daf",
+    "2021-12-01/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "7453115f2b361db826c5a6def06bf9531876cdca77f9b3a8339c0446d0e88c8a",
+    "2021-12-01/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "0f6597d30bc5666057e738cef19717531b902dce69447fea460838434a9b1924",
+    "2021-12-01/clippy-nightly-x86_64-apple-darwin.tar.gz": "b9f69c5e50fda9d22d029f51e181971f9d7acdd81607fcbbec8da87ee2678acc",
+    "2021-12-01/clippy-nightly-x86_64-apple-darwin.tar.xz": "d6e1c670ff656902fbba794848aa48916a2a5c69b5cd6dc983694efddd0fac3e",
+    "2021-12-01/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "fe56e5385392eb7109d2450eeea78a744a830f0df4bc08cef62ed70530c6f7ff",
+    "2021-12-01/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "edf0e2e88df31ffd837a99b0b83fbc50ab674be8ab4e12b1ad9f01fd19dea20d",
+    "2021-12-01/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "2fa59d32937de93d322a0c3458c6f732950bae75f7487ce10516b2a2299dba3a",
+    "2021-12-01/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "1321b291b8c75aa804befcb283d7a0869e02361cec6eebe2bccde57f21ac07cf",
+    "2021-12-01/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "238167df07be8b65f325d7409d3822c42832db3afa289fd303619acfa62ebd4d",
+    "2021-12-01/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "5c594d8c4bc6e26fcb7e7ba29e5f07868285f83851dcab1320127ca46a6f7e1a",
+    "2021-12-01/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "12cc9629b9fcb7760d38b38ddb19f6ab173994fa19bae9ea0ef10e560b36e9d6",
+    "2021-12-01/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "fe84be1bb47b14342322eb7d5ad7ea4e6e131f8cf69bce2c2dcf1fd6045190cd",
+    "2021-12-01/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "3889ad569be62d99cd0f1de0ccf404a7176c862ef6e001130438d86067aeb266",
+    "2021-12-01/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "f9792a68cefc32dd5442b0db96dd2bd24aecce437a397109e2faf65f03e7247a",
+    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "d0e4f1e40c769376728fe5bbe1f3e254959c33513a18dea1e111cd2e2d2fe8c0",
+    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "fd9dc24f6fc626f8a68f08484accfa8e57eb34935db5d825a592a444ea139312",
+    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "2960b9000f0c32deb12096e99ae26af4f85d2313c0227a95fae89637a10850b7",
+    "2021-12-01/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "602909ee390ef1c6de67b58824b2e90715e99d2daa865195018a7914b7477b20",
+    "2021-12-01/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "1ac4f401421e7bc34a5c17aa5f8a0802f5e1bdb9341d4969ff058ae387e95eb4",
+    "2021-12-01/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "04da4118b86dc4745e44d6e3efabf574d9279a748283cf4338bc9357c996405e",
+    "2021-12-01/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "f7bc73ef6cc909ad1a20a9c91386ebb67d0dd3b300698ed50a3fe314921f636c",
+    "2021-12-01/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "505c3ca200b5be7266e4b4902886f158575e32e4709d9b5ea4de2a731b1a68fa",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "9755dd8b446a7fe327b28e699b43c64a8088e87b7f501869d8bc77c7bd17e80a",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "180f6a85122399fed6f3e863ea6d52e9d74611a1378e6f3e096fc6070301c6ec",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "845265609040d3a620e731a8d1f0f59f231ab6699ffd6132411437aa9b3c3060",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "12082ae503aec039c5b208e0c1904b6368bb836bebbf7849e5b60875c1260c71",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "68660d1226628edcbe80baeacc075d8d4f9c6ea87bb22fc55b6727e6807e5d6d",
+    "2021-12-01/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "b0f20d9fe22eb8eb9d1243d2abb0ed9a470062766f883b9bd8458e2575ee5cc7",
+    "2021-12-01/rust-nightly-aarch64-apple-darwin.tar.gz": "c304a7a154b8bf44ff7a338996f1dd249678871bf1d24977e8763912197f89aa",
+    "2021-12-01/rust-nightly-aarch64-apple-darwin.tar.xz": "4757ecf06c42d347ae2c49fa263d9ffd3213455a77101088a7df76b35210c3a6",
+    "2021-12-01/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "b0b3dbde13f8cea3086896efe8402b87cf281260ceb4bf8d3f1bfd1216a309d9",
+    "2021-12-01/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "60543aebf87862b1c587000ea9bac574193cc8f48db5ac2a0499c0d62f9cf54b",
+    "2021-12-01/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "3e210d5da0384b90e90933683ac19ab1d2439c6b920db8c24e15faba484c86e9",
+    "2021-12-01/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "7f8defd22af5357a73bd43903581d8d784a5828a30c8839e45d02c587095fffb",
+    "2021-12-01/rust-nightly-x86_64-apple-darwin.tar.gz": "720d6058352322f1d59683236f0d5092d90ed64ed3f41cee80aa55d3d5a8c7ca",
+    "2021-12-01/rust-nightly-x86_64-apple-darwin.tar.xz": "70842d01281829a95910f9e2465da3df1ff8e479d824b9d38e1d09f124121561",
+    "2021-12-01/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "e4e42a29016982376a9e178cc83874480bd300e5fc6262ed3a1034ec0b80349f",
+    "2021-12-01/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "893645660902c826b7096eac6da05a16fbc64e5ada2136ea922c4ec1551ad4a8",
+    "2021-12-01/rust-nightly-x86_64-unknown-freebsd.tar.gz": "a85e08ec1a52a6bd496400de638bb2e57c7f1192c740e03a776a11e1e892620e",
+    "2021-12-01/rust-nightly-x86_64-unknown-freebsd.tar.xz": "c67382418dc32171183044fdec97e5eb7d18aa7c622215b691c3a3a4f2356725",
+    "2021-12-01/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "ffcb8b45a95221f8d77bb93faf3fd0e2a7f18e6759e631a45295883f996a4d40",
+    "2021-12-01/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "be63e8dcbe4541de0564ae0207dcf3206e6d23da72857153d0be3c8c6d7e5efb",
+    "2021-12-01/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "4d98286d2ca36cd348de7a78c8a127b6fec181e1b00fd045be0ad4fa2b466e83",
+    "2021-12-01/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "1941a71395b4afb527c01d70735db4598fc18b45da835685a7c00b5d46af481c",
+    "2021-12-01/rust-std-nightly-aarch64-apple-darwin.tar.gz": "907bd677f494c0858803bcb3c00c1da60b9ec0ff25c71960a896dbf89a7a61a5",
+    "2021-12-01/rust-std-nightly-aarch64-apple-darwin.tar.xz": "f33bdbca6ca44d8815c095295f33e3770c5070932a94421a4ac4bf9d8c4248a8",
+    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "3ae916ceef3364a49c3eb3e936af95aec043cad8cb293fa3f7703846728cd398",
+    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "0475980093c91049d06850781ff7ccd14537a51db21a1e21d4996388d16cc61b",
+    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "71421760124795171964945203719f7dec1924beacdb73b9658d01c8cab37b5c",
+    "2021-12-01/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "232ae5b96a3f3d0f3bafb400f4734d98e6e4804e4d3813a66326727ccf9aa8ad",
+    "2021-12-01/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "e24999e365a8701b8466d2081ec61589b1c4a9333256779b60594688999d2334",
+    "2021-12-01/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "b9dc27c0049c4d248604a72c5b02cb8e6184df731658be202c0b516f9b0d1a9a",
+    "2021-12-01/rust-std-nightly-wasm32-wasi.tar.gz": "5b31eb7ef9c580ebb751f4c41851ef3184261e2fc6c3481567cbb36a816681f1",
+    "2021-12-01/rust-std-nightly-wasm32-wasi.tar.xz": "d1cc6d3611e3ba66403fa5744cf75f768c2141335a0529873530f56e17ec2912",
+    "2021-12-01/rust-std-nightly-x86_64-apple-darwin.tar.gz": "fc84ac87b089a198731e82a203d38a3a07b72e3f7399b0b47c1d0ec2be576e0d",
+    "2021-12-01/rust-std-nightly-x86_64-apple-darwin.tar.xz": "df5dd77644ce2af8671cddc3ed3ad467582fce0c951c872e724fd2ee6d6a8de2",
+    "2021-12-01/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "9b6e945d5a42162b5f3ec792015084e4f349a338605478630b874e9388662300",
+    "2021-12-01/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "79c435b14c16a59d648965157c1898866025e8f53800496c36b41898b3e7247d",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "7a03e9faefc1f36d6b6c240371c7db539593cfbed47ca6dc141e3a0c2fc71bd5",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "58873401465af65dc965afb53a47dedf532af271fd7abc6791c4a541fdf9344f",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "003b3e83e798d635206ca06c919696f2eea7277d9721c8623272fa33059ec2ab",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "7f781fecc40e63f48ab323e70852ee4f4f2fa2d51385952ad9aa2b219408ffe8",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "f6c14b5df1fa6341a1b5f4dfd53c2795e2f7c43fc522aac57d055143ebe5e06c",
+    "2021-12-01/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "0cc50546acf46cde19a55b556f404c13e1099d474b65fc003473fb048fd04997",
+    "2021-12-01/rustc-nightly-aarch64-apple-darwin.tar.gz": "ec3af041e4a8aa4bba5d8565502f983f358d9884cce61911e70bb2b12a63f9a5",
+    "2021-12-01/rustc-nightly-aarch64-apple-darwin.tar.xz": "b7cb70d88d71a130eca4e1ba9d2a2addac88c5b7234865d30f1a8e533c633e8c",
+    "2021-12-01/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "0f863eb5a00810f140bd6a10ea74e9a2011e852958ac8f8ca50940325864afb4",
+    "2021-12-01/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "9dc890ac42dea58dcdecd1a47f58ad4c78f1c63d9b11d22c05c430c853ca84d3",
+    "2021-12-01/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "e0432ff13bdc00a36fa1fa20b736a385d6803795855214438d256f0678edbc94",
+    "2021-12-01/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "934ea175723b8d092139c1021a0f7cb705ddd9efeaa1253537ecf89db9d41ba1",
+    "2021-12-01/rustc-nightly-x86_64-apple-darwin.tar.gz": "6c1557e71cf3aeeb244855c32a7ec9b0297dc66ba57cf17af4e16fd1388f08a7",
+    "2021-12-01/rustc-nightly-x86_64-apple-darwin.tar.xz": "c056c58f326b613ae38a215db12b3ea1c64ca9f92c9aa1ea6c56ccb341661b99",
+    "2021-12-01/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "41aebe787fb1a5699f0dd224e9e47270133fa4c971faa97cba2ac609c24828f6",
+    "2021-12-01/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "ff17a59dc8ddaebfecdf67dfbb74f7966ce217dd3ebcd4939e98652775244794",
+    "2021-12-01/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "33a34b95e7b541b51e5ca6f0c0096757c9afef0a0f71e0f7320352882937d240",
+    "2021-12-01/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "d09fda76e44c7c3a8f26572c078568a9c217c7b2577c20447182d55ddc29aa85",
+    "2021-12-01/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "3b83f5195aa3a73fc9b17acdffd67ff6198f26c075d8b1e6c82a8bd717c3a031",
+    "2021-12-01/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "28f5e0d0027575c05ace8f2c61e63543d3fe26d95056848417ad5f2d0d659ec1",
+    "2021-12-01/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "a82281cca27567897b58b85a3dad0888b6ce13d7987fbff3397501469bca579e",
+    "2021-12-01/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "887ba60af838ae4a750121b1dbbb626ef42178229085e029aaa497ff0706c161",
+    "2021-12-01/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "42a7f5965d0af7df73c7629e701708ddd59f9a2a3fb4b8656c78d5b0dde0c0ef",
+    "2021-12-01/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "bf6031c57bdf468dfb88c705411f610cbbddf1d74a2e8483ab95482530f9858c",
+    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "e8cfd49797ac43557ee2eae7543d95c1f9ef5b2d651ae026152b0ee38748bc9e",
+    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "1d188332ec78fddde736fdf54022d3199f9bf05894aba58553c40579918b0478",
+    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "c4b392988b1e6330a9275248118a348ff029d83d37ad948c568de280c8fb016c",
+    "2021-12-01/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "9ff9ddcdc6d6a1f0a8262c583cc3dda404013cd6a07b0dcc2083269ec601a839",
+    "2021-12-01/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "6993786d7fc1223be21f0b11cfedc7cdbc0cc951f52445e982445e38dc4a5f0d",
+    "2021-12-01/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "13ee165896154e979a3249a88024cafe17c20b1e259fed90bbbe57c11e697ff5",
+    "2021-12-01/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "d96a8c2622b511179a6c1b4a00e9aeb015d9ce33de40788358a6ef7e4b50215e",
+    "2021-12-01/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "7586cf2d1464285a20e43053bffcbd8b05165dec9c4ba6d56f1f73944a58e745",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "5ac0969e1c2e3009f739ea5cb12b87808045f43a0635ee8ddec0b2b04be00814",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "60b7407fa2e90fcfa346a4e5b5400a0b537266eba37c2df01943ec766f383953",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "51f23dd0f8e14cab67f8bbd3a4aa142988ca0ab1155ddd2f37a22576dda6089b",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "6f98060c92dbb1dfe502944dcc01da70b471aab9c7c6f77591c44009c65d9cc2",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "a58f271f8859c79b33f8b30a33cf91879a85f740c3f8ec99c75f21933b220b8c",
+    "2021-12-01/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "785fd4c846b23acc198e2eb0fb956fda5bf6c662ab0e43b31271e7d459b0ce5b",
+    "2022-01-12/cargo-nightly-aarch64-apple-darwin.tar.gz": "28b2465970234b721799d0d7893ba3bd82db60dbfe9fce3ee280ba31e0cc05d3",
+    "2022-01-12/cargo-nightly-aarch64-apple-darwin.tar.xz": "f9eadf05af68f843eaabed2efc69097195af2b6c7f18047584457a9af4fb715e",
+    "2022-01-12/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "a48f67a2e9b3158579abe99218029f7add37927dd96b7ee297b19d898264c82c",
+    "2022-01-12/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "7074bab3186577f7381f3d392c7cadd6f13dbec8757431530f9c5df60a06030e",
+    "2022-01-12/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "20ecedf9cd58870c315bb215529b70d5d7efcc3091cbcd933097dbe3de643395",
+    "2022-01-12/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "f37701238855827578778f6f62acbb9afddda5358dcbbad82217b49b2e2ce8d8",
+    "2022-01-12/cargo-nightly-x86_64-apple-darwin.tar.gz": "2960a0f4ea742d6c1af1293f21d6b88e5d1d87fa5cf12950a44caf6f3efc31cc",
+    "2022-01-12/cargo-nightly-x86_64-apple-darwin.tar.xz": "1dd2921d993016a3fcd76b5eaf67bb0d880c68ee78b740b30a635cfbdf003486",
+    "2022-01-12/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "58b3c44263e2cfdddc6c71604c0a20f730363ac29e7d2f86570a7910f753ce6a",
+    "2022-01-12/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "2b3bc100ea7533aa7503ee68cd8920ac80fd0c6d9b34b1a858b8467f75d45cc6",
+    "2022-01-12/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "fc83fb1358e6fe796879077ac8b79168694a6ddd2d8a0b90ef8bcdb6fdaa6aa0",
+    "2022-01-12/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "6b4b15449230d7cc4b38826a12e1d741e14fd5ac9a27d933ff2b5756fb42b378",
+    "2022-01-12/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "2dc110d1caca2829ccaaf51cf4e553a1f5954364b7087c881efce52d18580817",
+    "2022-01-12/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "6c6fbdeeecad683bdba9bd0296921242d9924d81a873af586afdbad4dd530dad",
+    "2022-01-12/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "36b1c88f08eb35048937ee29a681405852198cbfb17fb29117f27ed185d2aaa1",
+    "2022-01-12/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "166f6243350570608e1f5b8bd1640cc7c6afc6fee2993e28de3f14f368c35f72",
+    "2022-01-12/clippy-nightly-aarch64-apple-darwin.tar.gz": "22518551453026be28657094dc4d364369357bdc59c1ac8c785bc67d59f24acc",
+    "2022-01-12/clippy-nightly-aarch64-apple-darwin.tar.xz": "5b1fb2d4df8742f0dcf42a7b4db376c1b724caa3667fc677d90d6dae9fdd9c48",
+    "2022-01-12/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "f89ca2df2eacdc7466feb2d502f81d3640bf1295d590011385366e331bc862a1",
+    "2022-01-12/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "3532234610c3253ccfa3e3ed9a534f5610c83342cd4938c7e072906c0a2ffd78",
+    "2022-01-12/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "e310f7b854e365c63e9a9449802b428cd9f21af336fa763c311cf8a541977f8a",
+    "2022-01-12/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "ad8f90785bf4aeb42a6cc4cd28fb729025ed19ca9586ca8e0392f8b3e310d7ad",
+    "2022-01-12/clippy-nightly-x86_64-apple-darwin.tar.gz": "2daeed49f7e7e85b2187177fd1d18e14400a0d38a5a717620d4af92deb17b4d2",
+    "2022-01-12/clippy-nightly-x86_64-apple-darwin.tar.xz": "66b38db76d50b5a1b8480298b62a83925bb4da2ed358c371c90660062de0952f",
+    "2022-01-12/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "86e92e3f785272c354c548cf5220dd355798b786e0e8630cadf7fff3b4aac3e3",
+    "2022-01-12/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "17f524c67bd794aa72be9474ef62fcd8f7b1be9cf4bbcdba9e79b4392b6b60a1",
+    "2022-01-12/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "7bc87fd4a2ea153342a6144849a7786398713255c0ffc94f17a62a1a5ea36387",
+    "2022-01-12/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "c7a776ba6f3f2d2fbf4b0824fc6f07dc2b79755f27e22073a7b65f368e29f7fa",
+    "2022-01-12/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "1d244ea2f27d4fc7447d4126b965620e6f6cca916db15a8f1f5df0f8bcb6e4f3",
+    "2022-01-12/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "6b44299d3a4201d7b39bb07a627321966747f7cbe747163a3fc65625ad27b110",
+    "2022-01-12/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "b6e157718df8219bfe0c2cc67182d451b644aa7f8e0a3060f7676c4a53af0df9",
+    "2022-01-12/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "bfab1555ab2f6a5f448d345a9e7d593be1234ab8b11588ddc7080ae2e646ff08",
+    "2022-01-12/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "4dea9eb7156cce2856f06ce58b76039edf5452dc2dcfe1dbf2ca3e4a2a4513ef",
+    "2022-01-12/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "eb60a819f5ae662c4743fcb8a30629355c5bfa7823381881d4ce3a01e80d2da2",
+    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "c8a61bf792a6fe1a2e10ccdb1684059626cbf077b6d82883549e0a824ec00fb4",
+    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "bff4b7b04067e7b8dd760bbc52298227f79f0f4821f474ff75a26d342b407a71",
+    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "e49c63a89360598a1ccaa4b4d452d6fe4f4974b70c1774125b7d0864984af4d2",
+    "2022-01-12/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "3477fa8a0556ed272ad7333fa01de1ee820857ac07abff843ee36cc16f3ddc34",
+    "2022-01-12/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "efee2f08143fbff836e6517ea7457468da07380dcdf8a3a19cb9eb7b3b36da7a",
+    "2022-01-12/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "57a37b6066e814248a4e82246236adcedc9bacd7d51e82e8abc4b5e686fd7f11",
+    "2022-01-12/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "d9748a16a855057201581ee1a3f6105ddd00511bd3129ca1175139f686b0a1da",
+    "2022-01-12/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "a0f7c23311e80eca3256f5ae5def2be4502d1941e64006fd4b830ebd40e052b2",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "73dd634e5b9361c52fa1ad9b3ee1126b5ee5f988165eee6e47f7c80bb1d02f79",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "e27beb0e6095e16791ee426d1383fd1d0fe536993387b49b89846eccac54785b",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "dbea5a53828f590af592386d880ada84c55a072d5c2cf2148a0aec16c86afa45",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "9f6fe3eb6c848688c09fdcceb3733895da17569c95515ea1016f759a83dd16bc",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "f4fbe5809cfc6271297de76f78bdbe0591fad5daa747a78fe43019d088048f61",
+    "2022-01-12/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "b2ab74540feca55336d1ac7e9dd34b109ae316504034642e98f96d3a0c3a1fda",
+    "2022-01-12/rust-nightly-aarch64-apple-darwin.tar.gz": "2976b38351b6133dd20f940210a9d7a36da7a63b4991f3dd7a977629a4e30a19",
+    "2022-01-12/rust-nightly-aarch64-apple-darwin.tar.xz": "fc5041a029cee0829bd8e3e72fdef163dcf6944c8f164ba11c01c2e2fd7197cb",
+    "2022-01-12/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "67f91c94ed84cdeeb5c3d09eea11a01056befe6f8f199974c779e4a7c5580f52",
+    "2022-01-12/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "f34cacc6123bbc26972cb0577afb4220f036042a477902de73a4d00ead8daf16",
+    "2022-01-12/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "d976d6d7d102c6dad026680cabc4ed44e21405f6afa28879ec24a78ccf9232da",
+    "2022-01-12/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "1953ec73b732c00855b8d66f5eb534c2105ca54bff0d24c2903733f863b7bc38",
+    "2022-01-12/rust-nightly-x86_64-apple-darwin.tar.gz": "49bed5d3078cfdd9c95184909f80da529edf83c4b256ef2191dada8a22ba2d03",
+    "2022-01-12/rust-nightly-x86_64-apple-darwin.tar.xz": "5da9164649244fbfc23b16cc9e71ff478181c1ed7918a643987e405e99072c81",
+    "2022-01-12/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "b0ee56ad0245dee798bd4f268fde3bcee58b081c0ed16e212773f273e04e7b40",
+    "2022-01-12/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "f241130d5921a42ceea2fe978bd9d1adcedde15ebed40937d55343a1bca24eba",
+    "2022-01-12/rust-nightly-x86_64-unknown-freebsd.tar.gz": "7ba2e7f96735a9021de7f6817be33c8f9c269ef8666cc8267682b3dd3044e5f1",
+    "2022-01-12/rust-nightly-x86_64-unknown-freebsd.tar.xz": "65731e87db25e167bec62bb846335bc0bde4d2dfbfdb4719d9ced9b21b514c45",
+    "2022-01-12/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "414208e1f535d760faa1b8074e20b32f1b045f42efda741677bb718a80980b60",
+    "2022-01-12/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "4c6ccbfaf43be73455b4f80fcc476388fb91c478dfba497d8114b9f4a6beb9a5",
+    "2022-01-12/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "d9b2a94d67e6484a17b6f128cdc2ecc081068a7730b93cc480b9886dfbdaf523",
+    "2022-01-12/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "6dcc4ccbe545c68526507bd422eac210d53f0b41a3e89e783e1c3240e20cd832",
+    "2022-01-12/rust-std-nightly-aarch64-apple-darwin.tar.gz": "eead24d761bfa6ef0c926d59ed2cfeb51dc68fa4c13d59672289a6cc5795d990",
+    "2022-01-12/rust-std-nightly-aarch64-apple-darwin.tar.xz": "db6f78037643e7973b079daece66b7e7f03d39167e09ad85dd5637f6bf1c1076",
+    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "80ef127c8e0f8b2a9d4d6dd6c59e3b27c07ba7234e3fa2d8155227bdcaf18349",
+    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "f068009d8032c1a9c5636b9cf55efab94ba3d623fff3df047a9b6930b6718f69",
+    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "9716a07e0255737c1a5882cc8d053906bf82fc2cad0e86184d7dc12780811136",
+    "2022-01-12/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "0cff1023958352a5b17147a088cec60b79c246be43f7ab7977574a55d2a177b3",
+    "2022-01-12/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "52f08158233d16c2b6b26b009f438ffbf2d60c4acbee4c8dba0718d363112637",
+    "2022-01-12/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "950ef94153791c56eb7ea64ec21275d6308a3b365fe7a8f6573a3f3ad9afd6d7",
+    "2022-01-12/rust-std-nightly-wasm32-wasi.tar.gz": "318294f44e7dfe947445d03fe048465fce57a8acd4d39c45b04d64f8c5681950",
+    "2022-01-12/rust-std-nightly-wasm32-wasi.tar.xz": "2bbe79691b60be4fc976f6436ecee93d1dde4ed6d440028ea91e751e7369a422",
+    "2022-01-12/rust-std-nightly-x86_64-apple-darwin.tar.gz": "32a2f359a66e9257afb3166c3f3d03b46cccf15d081ff1962b6b6dc7589d16fa",
+    "2022-01-12/rust-std-nightly-x86_64-apple-darwin.tar.xz": "1d3b4e826dade5c02ede0e82324906d5b108c39fd46263f54bcdc38c3c90bc6d",
+    "2022-01-12/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "fed0b46a7278a327827169f0dfc829ec3d11ca64c86b59b73e9a5164c6d4f865",
+    "2022-01-12/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "ed64d40e1da5c8a9f9a0bea44c38e13076e3ea9944bd108f3758db4927f89e1d",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "ad8c17b3a32d325a546bf22a6a5744e6dd448cdbb103c8687c9a7de622317474",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "17317f7bf98e7eec4ab9a962d959fee3d4a91798f51585df9c9b0d32f76cad5e",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "a0574b2ae49a860d69f66d8060ef42e764be73ccffe3ecbc1dbd5bbdbe9c06d4",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "8be8d2ec2a3284f2a788e70b6b801da560acfe856579e7b1c8412635caf0f2dd",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "ca442e0a9ca4c94ced9de08ece921be187ecc1b540518be76a7029fd7142eeb6",
+    "2022-01-12/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "1a3234cb2687bcefbc8602859fc281b32a5f65345f1b40739198aeb414659689",
+    "2022-01-12/rustc-nightly-aarch64-apple-darwin.tar.gz": "dc5fa145966daf5ec010e0b83f3b115866683ac418667e39663ea13a8e490d7c",
+    "2022-01-12/rustc-nightly-aarch64-apple-darwin.tar.xz": "ec11aeee47d0ccb3c2664b709f8ec871c9c1de981e06c1757da237c40dd4219b",
+    "2022-01-12/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "d6183b88df1f868862bd3cf138f25179ba2fdab7f16e2d14577ddd56731ea18f",
+    "2022-01-12/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "0cea5d65c3e1808161ba35892995de19832d08649bd6b5156508446d9ae83c8f",
+    "2022-01-12/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "1915a5b04ed3cde9f2566ca7f5205e37b706fc5cacc9ac64b7e6d818d882f39e",
+    "2022-01-12/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "34edea8def2b370104d6643d32de60d88f3b2c73ec03d9c46745232c8445a493",
+    "2022-01-12/rustc-nightly-x86_64-apple-darwin.tar.gz": "c51b1b7830d302fd352d4e105282da0c2aa01d98a7d8c0b0018db24539f2fb0c",
+    "2022-01-12/rustc-nightly-x86_64-apple-darwin.tar.xz": "10016947d399d6520bf0428b7438709bc9018607fc7bfe851c3ac4811a125dca",
+    "2022-01-12/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "69edaeee958c53a2ae99813994f60b27198538e288217bc30862668975e01144",
+    "2022-01-12/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "f91d46a0ee939caff451e95b40793b3c20c25e1a08d0adfee3f214a932a6e981",
+    "2022-01-12/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "cca63c6998d9762616c74518dd870fe67432fe0442003211ba58f0f1e3953e46",
+    "2022-01-12/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "40f7364c3e8db675b07ddee29985d90c86a46a194476212ffeb10401eef9ce1e",
+    "2022-01-12/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "4cc6346b16182c580c1fdee2ed35061d57140422d6e13f04b0f21db4ad9a9105",
+    "2022-01-12/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "f4525cee1f1f8e7807ed6d82ad3ab8d6d3e44c5f6e2231b89b246445216ea637",
+    "2022-01-12/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "1716aae4bf44c58ffa91121661e78fe112cfa5655dd2e98675e2dced7a4818cc",
+    "2022-01-12/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "7b9670560c74a9c7e9a465f70147e703028cb8674f8d8e36fbace3d0b9fbbd2e",
+    "2022-01-12/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "458b707f541a604cf4463a99e7c9f6dabb5222c815b7278735a8147ed6a6d8cd",
+    "2022-01-12/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "d84161815fe934bf53cd761c23b3f70653321c8678b7ddb34bf5f8f0b3c28422",
+    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "edb9f32b1d8228362a17ffc83d47479bd247000d50f9cb4c0fbf4570557139c2",
+    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "3564c7bbce8b1c1608fb8dbf0ba1ede74326f1015652770997338debb39445c9",
+    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "34299938e1f5d06f048b992f5bc57f17b5d07d7417dceafdd67d64f893c609ab",
+    "2022-01-12/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "56ada61db3232709d38b668bd631028959d583b1356ab53634628c598227598e",
+    "2022-01-12/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "eb6716d438d6923cb8b6cc1220fbfc30cca77548c19d1ec4656c4041dc680b73",
+    "2022-01-12/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "86b9148c84762a4eeaad20d016d80f3f09676dcef8c60105b48e5a24139186b8",
+    "2022-01-12/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "a29f9343d63ba3982eb3c783777430a864eee8bee0191c3899f7abcddfb0de0a",
+    "2022-01-12/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "f8459e21508d45e0ee892bf94450cf9adf29a94ca3f78ea22ef4c581ffeeeb6c",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "b53e01c1d038ce6ee92bbedd0d4c5ae9942521a36d937ec9cf43caaa73278eb8",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "298966702d8f19124ceaed36ae5a6498a6c0485e75b021471e48802f0c8e17c0",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "edf5018504be0d79d77615a0c7e029a378446e2fd1a5360d86d97196519b510b",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "05081809bec9dbb546faa6b80a261a14e281da1acaf1087d68cd38722591f1fb",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "237bef02a341db60e3af388feb7d7351d13da9728cc8fa10bda5631f812b2a58",
+    "2022-01-12/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "8d8915649116549fe5777414ea35c68079dd2e009561910d2ec8abb99719a81b",
+    "2022-01-19/cargo-nightly-aarch64-apple-darwin.tar.gz": "e0bbae6fe4ea276773d426fb171fdca151c8877406476ef9200fbdc296d2f2ab",
+    "2022-01-19/cargo-nightly-aarch64-apple-darwin.tar.xz": "6fab4f0b37c52ca6bd40c0701363ee9b95a63651dc47c86c5b5b05e6da4c4294",
+    "2022-01-19/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "1fc5a3fe7ae76b2a332c95357f1b01c75341d022d66b918e8b2d9500fdbac74d",
+    "2022-01-19/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "c0940ee6dc82947d756ab0963609a587057fd499dbeaee1cc7ed87ffccec39c6",
+    "2022-01-19/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "06f0c843e0694a9fbd6f52d4257cea7a9ce7b0cfc519134cac03f85ac103839b",
+    "2022-01-19/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "b5b9bf2d638a3e6627cec0d9467b4e246bb6fc406a3a3520e42455341bf3488c",
+    "2022-01-19/cargo-nightly-x86_64-apple-darwin.tar.gz": "55e64aad2d07a7d1aecf3fe417039f20ef5b794e7597be0d5d0ab3098b439b39",
+    "2022-01-19/cargo-nightly-x86_64-apple-darwin.tar.xz": "424a87698837e8f4257b5125f2fa299e3b479816fc54cf2f8e25b25b70fda299",
+    "2022-01-19/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "c8f22a3ce1edb3632148b0117198947f80f1173b5e034468d039db9734d727ca",
+    "2022-01-19/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "091c9661baf43a0975cd20b130232747a49fb16d413004fb8a16e51722dc677d",
+    "2022-01-19/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "f088c70c08c55564c11a10698881a7317d44e934fc4054e65f45c4e721c8c663",
+    "2022-01-19/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "1b2143d0ac19c718d212c7777600bc237c525a86cc135d02e3507c8aff7e3848",
+    "2022-01-19/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "9dba5c80dc04089d3fffbd2bb066721a2ea3a4ef5772620d64083dec6fd7ba9e",
+    "2022-01-19/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "a11f0be1e0466815434c7a552e02f4da8ece77213372f05186effb9cef53f671",
+    "2022-01-19/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "0019a2625020210edf0df9f77a805ee404d59c00bea1013020dfd9d1f63a428b",
+    "2022-01-19/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "fabf20da69d66f42fb1fe3907e13b47f620b9d5c1531b242f717c8b24fc30153",
+    "2022-01-19/clippy-nightly-aarch64-apple-darwin.tar.gz": "3e552735b0f7edad6333514da898a374f089045918916fc86ebd6d1b2f146813",
+    "2022-01-19/clippy-nightly-aarch64-apple-darwin.tar.xz": "f2b39b0f334510b74a2831e0feb39e18236d237aee22c680c1514fab51d0470b",
+    "2022-01-19/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "261eaaf4cbe038fe99f437f41a6479f1c85178b68b86ba322363c3a988a41df5",
+    "2022-01-19/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "c4f0bd4266affac7a36f1323bacf933a230a772bc43d8425097f8e23a37c5cd4",
+    "2022-01-19/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "98ab9cbc764859416b199498cdaa29f3e0530b9fee37a00194575102d1d18614",
+    "2022-01-19/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "2c9a963834851e0a7b6306de2d8e6332dac71ee1e084d4cb54382ad265b3735c",
+    "2022-01-19/clippy-nightly-x86_64-apple-darwin.tar.gz": "57bbd4e12dfe619bb38ca51e0457c7a0458ead39a5f8b8009e82c3ff782ef534",
+    "2022-01-19/clippy-nightly-x86_64-apple-darwin.tar.xz": "f9e2107e19594e387ab1699a0d1b5824b8363d9b079365f7d8fd73244599cbac",
+    "2022-01-19/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "f9415462ee2982c546bf4cdebf513292dfe380366604b0da3533ffcb7b062f58",
+    "2022-01-19/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "65fafd833e8d30809dbca3936248a9c6ce1d3063facde75b348b981673c7608c",
+    "2022-01-19/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "6732077fb8ae4cbf038c7d56ad2d73e08dc7fe214618c1b8048d5886a0e38782",
+    "2022-01-19/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "08b6e90b9a695c06a45908fff73ac0b78ac211b3b19e92b5c817fd85b4b3c197",
+    "2022-01-19/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "8a84d8d4120ab3a9a1843fb4b343531ce2f66e472f2bd9b4adb6e825c336130b",
+    "2022-01-19/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "ffd8d86c89b46a727b506dae13a7844b35b7b90b9da80b39614f3323dbd13c1a",
+    "2022-01-19/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "1472e5cd4b2950bd22a2e6feaafd01f7a2a8b726f12d6152b262474fa2cb57c3",
+    "2022-01-19/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "524905ded80a0e23182c196942eee3ae1e869bb910fbf60df4dd379d587c6cc0",
+    "2022-01-19/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "669057387a1515c3c4529786f60b9a25ac5c4eda911422fb023b73fa8a380a36",
+    "2022-01-19/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "1ca39a6810482a580a6852e5618b6dde156207a06e8de5dd9940afdb071c5ef5",
+    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "7afb1e98626316cc1de6b62edb319b5f006da5c24601bb657c5cf567555b5730",
+    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "0bf7f3b38c5a4ea6885d3044bba22284873ccfb68e3b34022f1a746816f03ebb",
+    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "e9bf498717ca2e8c7620957a5f7846b53dc09a7c720e8ec31e67c8da25fa59b0",
+    "2022-01-19/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "3db7d9b91a89acc5bd233a16b5368782e9b7ce91542522638fa826ff9080cdc6",
+    "2022-01-19/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "de72f572574a1238dbec6ee6b5c48e31b6770826cbcb6ecc61c568587c82ab66",
+    "2022-01-19/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "54c650856bc4c9d7aee25a09ebb9cb7e49b946f1e518a3740d04330fd69f6b07",
+    "2022-01-19/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "97f9c947d726b72ab318705b539e11012a73a08dcb79e00c73d680d9a5166882",
+    "2022-01-19/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "d153abc1dcbb310df6dc63201d8dfeecf0b2ba84d2423e5bfc26ae91b60bed7f",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "2e42c56a825fa9bd640fbb3bafecb02cfe68877e09d1c0ddfdff794e4571a2a7",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "eadccc89f1fc6b6717f5297cd7000a98ad78f2397940ebfd9e3845dcc9d29510",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "bfd89e74330fc0f9d61b75852c96d644fe5ffd90636e8668f10480e27cb8593c",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "3352692edbb912f815a9787aad53e8dfcd3cb607b2fc3987712d6e2de184b925",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "5dbbbbee7bc11793c320608b5c88398206b8803593e8906ac03b5651bb7b7a6c",
+    "2022-01-19/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "e5db6971b1da77ff6c8eb39ec6b44a0f3837a014be7c3d4efa493da6ed50cd03",
+    "2022-01-19/rust-nightly-aarch64-apple-darwin.tar.gz": "9a0a4323eba39da2c0ae9dd99eae994c90019b11e1020378781fb41521799b92",
+    "2022-01-19/rust-nightly-aarch64-apple-darwin.tar.xz": "d60d919e817c321a4aaf6486addbcad1ddafa9b80bb02a74972143b470f31431",
+    "2022-01-19/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "c71d05f5ec4d1d118bab9b3155086328093b5b620b39de3e541294dbb64d4ace",
+    "2022-01-19/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "3bf003e28ea542aae52d49a7274b7f6d94a9bca0aa68c8cda42fd54241035529",
+    "2022-01-19/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "9aca1ed8d3283403931991b4c46d5f57a0839bac3ac5283692ef67938d291470",
+    "2022-01-19/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "22a35fb2dddebce60ee2b65df3e18d18be329026a50b721e964141b283a3339a",
+    "2022-01-19/rust-nightly-x86_64-apple-darwin.tar.gz": "1102c26afe2de2c73079c30b038ac203e1b2d647383338f91782196b05a11116",
+    "2022-01-19/rust-nightly-x86_64-apple-darwin.tar.xz": "c6d22fee2d6dd0a045c45511b680fe08822f4fc2b8402299e27034cebff31dba",
+    "2022-01-19/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "bb63d762cac5570f98c4109c7d4cd86d5912b46d0779f44a27fd515e1b723961",
+    "2022-01-19/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "77e12e1c6c51565ccd40273178da6c79eda952136669789fd5e76e12e6496d8c",
+    "2022-01-19/rust-nightly-x86_64-unknown-freebsd.tar.gz": "726dedec423c51031d5d481aa90f04cc68ed52f45cc33320a6932e02adaa8256",
+    "2022-01-19/rust-nightly-x86_64-unknown-freebsd.tar.xz": "7bb23bea39b649afc6f9b0a4c2102dc36098fb300a526852b640dd83de80d7b0",
+    "2022-01-19/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "db2ec42968696da58de511cb088ea0f879cc64551a8944e5673f73df0e252b7c",
+    "2022-01-19/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "9cb7421a631b82cc8ef6d2a7aa2b7fc546245adb192bbe171131c6511095606c",
+    "2022-01-19/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "49e42ceb3358ee50863db105c680bbe35aae62b0c27d21db4124b29e82203137",
+    "2022-01-19/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "7c92e1fc713b4c7b9de4d4f93fcf277776a90a0f7ae5e5f6d3933c6037f9eb7b",
+    "2022-01-19/rust-std-nightly-aarch64-apple-darwin.tar.gz": "2640f188bda156f0c530c558e02b06dd1b362c7c0115ef8d9e585d451fd92c55",
+    "2022-01-19/rust-std-nightly-aarch64-apple-darwin.tar.xz": "e0f4d539455bf70afd36d014dc857673ff99121110e38059668a518719622020",
+    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "500e3edb2fe3776ddbb85cbbfd3cea154f969d9b7b76df208dd39953a96d04db",
+    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "63002d6aebac2564a395de0bc7d123a1776a4972052bea0f897b3f6ba13b997b",
+    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "1f93e986d03402e01d70bb443540049d641aa3bdc7376691ae4347addaf17642",
+    "2022-01-19/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "6d1ec629f71a40e34e723bbce41748467307cdd56b8de68f5fd385499b663667",
+    "2022-01-19/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "419ecbb51cecc803299d3868b34e78cf08c589b9ce89edc58e9eb99a12140682",
+    "2022-01-19/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "6c994df9b78071798b4374254778eb29db7d719531a3868d19ad954311af0d32",
+    "2022-01-19/rust-std-nightly-wasm32-wasi.tar.gz": "4a267c1c645e8269bdaf29b6edebe88bc2149217e9eaf0f9f87877c67540e9db",
+    "2022-01-19/rust-std-nightly-wasm32-wasi.tar.xz": "eccdaeb0c7ac3f9ee9da317bbc962da8351d7744de402a6863428b7f87215113",
+    "2022-01-19/rust-std-nightly-x86_64-apple-darwin.tar.gz": "b875843a7a5ec1b7f9a45672e44495b17972c0268a20d706610ee9c6ee12e408",
+    "2022-01-19/rust-std-nightly-x86_64-apple-darwin.tar.xz": "9173094c15a444f50d93399b9e502d58222fe6e9d644257ff921838b4cec6116",
+    "2022-01-19/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "316b1efb302c7f58f59aaa822fe07e809beafc4ab157d0dc53b92786292f7a4a",
+    "2022-01-19/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "8b69099b5f137a63d821a91499bc0460d4f4a19fd39489b412c111cf18e7adad",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "632eba5d1ed2eed44fc61a1a69014e756426cad86accd2c372d44e07c764d1b8",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "35e93b70630d1172fe8f5f947c060ee6beccab253a8d1345eebd87d15d4b6c3c",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "f1a26b04468f05a0239ff7d9bf4991ff6150650dfaf4d0a68b51d2146a1fe7e5",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "4d77623bb4d54b3355daa0b56ab3291b84eb75ec4bfaa740cd4b1a8baabd13ba",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "33f9b31abca43c27afe34800fcfa87fb66a059b4ed9a2ff6ba9767e0609ec2af",
+    "2022-01-19/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "7c87c74c154d670a9e39cad55296881775ee43a46c7f63c31d63e475158a7d76",
+    "2022-01-19/rustc-nightly-aarch64-apple-darwin.tar.gz": "d1036828856da3195883e4c56b6596a08d3ed75ea5875cc26642e5b3b8caccd1",
+    "2022-01-19/rustc-nightly-aarch64-apple-darwin.tar.xz": "bb436eef8daaa2c7fa2042fbdd3f5918f3f4da0fe4494c231daa5162ab3bdd5c",
+    "2022-01-19/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "3f7edd43d97a6c63ad43db071989ed4114dff29c77b5b7ed7e1ea65339e170d0",
+    "2022-01-19/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "e8ef950e6fd7de66380e5b7b7ce25a0e753b77fc5e4807edabfde8fe836f5760",
+    "2022-01-19/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "9d5d70aa8942786a61e4f7026abad946f5d965a99f44fcde54d5fde286461f52",
+    "2022-01-19/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "5cceaeb17a5da7e8814bdd79c84d92bb8539368d56b7af65728abfbfcb23742f",
+    "2022-01-19/rustc-nightly-x86_64-apple-darwin.tar.gz": "0bb3422db5ebdbb36bd487ab6ec0b0bc89c960bf5b8bb1fadb9a7f3b827d0672",
+    "2022-01-19/rustc-nightly-x86_64-apple-darwin.tar.xz": "9d5319f40656ca63c5d920628b39dcb4701926928608efb47f4e2eb223bd2f04",
+    "2022-01-19/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "2f15ce047f6c8ca20d4585ade8f66b7f296de7083da5636e5a09f04b02228435",
+    "2022-01-19/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "b6edb1055e66b32eb3d559afb40eee0700d6b156b47fce7d5b9928630881df65",
+    "2022-01-19/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "1c8e731ee63cde0f5d6375590b234c5facf4070584494c24ae6d3c012e81b74e",
+    "2022-01-19/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "13a9423f743f59fe257809eb1be7552dbc12a5d70d6cc3ea5efac6bbb19adf67",
+    "2022-01-19/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "8f96fbd32d86e0943a5d15c967c1e4d9832bd8682eeae1f333e9bcb77433acc8",
+    "2022-01-19/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "3b8356651ca3e78b66239f9b20add92a9e20aa33cdf222a544417048086b22ec",
+    "2022-01-19/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "9ca8f7801aeea115aef2648313ed05f5755cb4fab2ca93e391dcc0b09f79528c",
+    "2022-01-19/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "00916a2888f22d21ca67c21e714ff042ece322fb2eebb8db1ebe1b642ef94945",
+    "2022-01-19/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "e1cd639473e54569e0282d68bd2270fa1f2e9713c8cdc95e1432097fabe3ab3d",
+    "2022-01-19/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "8833d08c9fcd4a0bb79108bdc33d52faba04473cc9ecd9ae4e4a2532cfdeeeea",
+    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "f6e70a862dcdf24b035061602b1081163083ed022bf15366337fdf5af5b999b8",
+    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "ea0f3b56b8454bcb2536e338ab12cfbffc8a4f1b7b056e976c7d072a28c1ed2c",
+    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "eb028b9c1fda5730ad387312eb6fca48da94cb654edaa0a6a445092b1bd28af2",
+    "2022-01-19/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "8c2467cc5425881723a4a8fdf1bb7c8a75881b0b1f0e4cba30c4e813e1c44743",
+    "2022-01-19/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "e205536ecdb2e15243a2436a41fc398b6a558be98d1ae8b281e9dd3748f3931f",
+    "2022-01-19/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "4e1cb1e694fbacd1bf2c08aa1794c62c190974d02347f984c5515933e98b3a49",
+    "2022-01-19/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "571d43d9091f87debf76102801a9d65842314532af34f08fec9de1b8346e532e",
+    "2022-01-19/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "c3ae8cde5f08e802d5700fa4ad32a564ac35852f7577a0c94efd355d380f17f1",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "194f0c425d9188ceb69233069b162b25bb829c8fc155979433457d63b32df61d",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "8f92e4b14bf92571a29011b1fa85d3bfd4648549b30cada8fe2320d5943096b7",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "3cab5f9cc9fb0681ce5c284b5ac98e92cbf73c2c9eb993d7d7d9faaf3363f01c",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "a09bd182394792f4f825ca991e195aeaba686806c88927ef294ef696254a4a43",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "41233d3f0fad709cc751def5342849564446cbc3a00045b39cb6a8c26d7dc436",
+    "2022-01-19/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "3c90ab73c9c6282964458c27b66aebf29bdbbf7f3afe98b372454668b4a6298f",
+    "2022-02-23/cargo-nightly-aarch64-apple-darwin.tar.gz": "16cc0baabdb131b3739d5db9d98a26db494a470afb15c29fb3f30a8a9701ffa7",
+    "2022-02-23/cargo-nightly-aarch64-apple-darwin.tar.xz": "83b8e30103bb6afe3dddc4a7a9332529be753805ca4123d07d54995520cf802d",
+    "2022-02-23/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "c7b2643282f256f01224d93af31e722ff0ff64780fe391fdf1343aabe03b3a30",
+    "2022-02-23/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "2e2f5e424c20c89c151e0bfae43746725159b402414263beb6b85d539c9561d4",
+    "2022-02-23/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "3a4cda34180864cdf9505316e985460018756717878f8529c9141a982683c7aa",
+    "2022-02-23/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "460c1e7a81bdcb89da391cd55522382e6a8d3b240ca85c44d2df79e5a92be3af",
+    "2022-02-23/cargo-nightly-x86_64-apple-darwin.tar.gz": "4952a58521c389ebbbf12d5c5f855d7ff63b6cbaa8b39f5d0410638ce18f91b5",
+    "2022-02-23/cargo-nightly-x86_64-apple-darwin.tar.xz": "a212fd24b128e29623dfde1a4c68b8a6abef30c186033b21e509652fb74f7fcd",
+    "2022-02-23/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "2909e511824b752f9137c1312076a3b570dcf9df19823c41b188db9859f44830",
+    "2022-02-23/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "8b42596944f628014057d703e7ccaa2f965a26d6f2127d9ba86bd811d46186a5",
+    "2022-02-23/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "c5d47b6b075ff2bb881f1fe07f89e0927beb23cdb169c293e976853833421f96",
+    "2022-02-23/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "8594e7d9a8d549c290410422ddc7da28f5baacca1336251ac144500639356add",
+    "2022-02-23/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "ef101ce313d0d045ed121e312b12bb41c20bdc07963543ab77c5a5ab9802eb02",
+    "2022-02-23/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "db1df22ad475637cba2959e498bb220f356d00e159f1cb9808513715e16ba158",
+    "2022-02-23/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "dbb5a85a3d753473e5595b12c08b217aa8c13b01c64cffef5c702025d2557c38",
+    "2022-02-23/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "031857296010a414008d22568cc3420dbbb3f9b4a7559dab8fed799ded53d727",
+    "2022-02-23/clippy-nightly-aarch64-apple-darwin.tar.gz": "59778a7fbd8a5fe3bade8b95d7ff7ec1419dfa95e2271afa6b32baa1d5c3710f",
+    "2022-02-23/clippy-nightly-aarch64-apple-darwin.tar.xz": "96fcdc252d156ca54e6587dade2f26ac578afe8a8e25f9ca7cd6f7653c224479",
+    "2022-02-23/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "62d3027e541c8fc87acc076865469af0020b1ebff97ebf45dabf0fa3537ee7be",
+    "2022-02-23/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "d15f2ef9ac5a4ec29962284a196ad70019627af3805b283a07d8478dbb1cc977",
+    "2022-02-23/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "dacaa625832e840e464ce5c0dc5bbefe5e15b1faa9fdf1fd29f4a5a9c6d955c6",
+    "2022-02-23/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "66d2171906180857575ee6fd700191630c65089d4c6460665609175de5882ab4",
+    "2022-02-23/clippy-nightly-x86_64-apple-darwin.tar.gz": "7f98beae8363a2be260f2adaca025408abb092894138ae5a00cb43f8cffe5fab",
+    "2022-02-23/clippy-nightly-x86_64-apple-darwin.tar.xz": "ac416b7799807dff868933d96b9315a05f42261410d61d95a21df9cf1620df5d",
+    "2022-02-23/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "695c78fd375ca2e67d2b2dc679c242de32e7ec6366ac39c1060de9f4bb34c97e",
+    "2022-02-23/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "72c469f1f462fd46a74b95261c643d0d6122463e2ee5659fcdd18601d3a51446",
+    "2022-02-23/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "674891a88d78046afb4da489ab47bf2994a7aab4c65eea42639611cc992114d0",
+    "2022-02-23/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "f98ab01d294a12914a79dd718b92cfeeadeb1c49389651fb8ade3ee1234706d8",
+    "2022-02-23/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "b510582d9ea92fb059c89deff9a74a9725c8e935daedefef20443ce44e8d40d7",
+    "2022-02-23/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "0414d760c269830ca21f8255fc52744eee08ffc9471ea6a9c05f341b982c2807",
+    "2022-02-23/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "f582add076fb61857c380258c0d854b7601381ba3dae7ae5b423978511159ed7",
+    "2022-02-23/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "83e806349eb8f15fbd114dc233209b6675d970716ce73ad1d692c87a0e25b7cc",
+    "2022-02-23/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "b35cc47bd525e6664592f403905866c48bb9cb7b1b409bcf63c2b35d32993a79",
+    "2022-02-23/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "4adcf00d3a684a65dfe4e0e60ada66c68d33dda2f8b503c60ee285f001b508e7",
+    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "4c02f526bd993a9118ac0ac610b85e5cdfd42bc43d7ecf77d8c3067893c8a54d",
+    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "876d4d7624e60f4c10eb4db8278aa44ee760c95c136458c719e529356de6d7e9",
+    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "b857b033803a4d6020c3425af9d4ea2b0462cc2db67f549e7dd426f81265d48c",
+    "2022-02-23/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "b3e80c1a500593705747f0864992756a99f905ba7c04fbeead72cde3da60c05a",
+    "2022-02-23/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "5e26961b8f803ca6d5be40622a8580164986bf54d8391b1a4524fcffbd1eeb10",
+    "2022-02-23/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "716117de6bd4d7cd8c06fd5b103857ae338672d7660848ab5911bc68b4976aa7",
+    "2022-02-23/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "dd5f7e54725d973423b3cb2ff3a0492da76491911591f6b34231af1dce332a7a",
+    "2022-02-23/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "bf5c860d42a1fed65c04002cff8014f82d3077873df64a79685759b6c8f9656b",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "dfb6f74016e677c28cf6eeb9e8430f5022e0c874619e2f5235728e82416e443c",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "e9f73b85baa17dabca65c98f3f6e0354a3a21c56933a0bfdacc7f7b6b77d3960",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "2746d97f126edf2045f012591c1262d725cf042c56c32caf7ecdcc0eb1ae001e",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "9e0ce36050458fcc0a54bcbe688169f8c3f31e77c1f4d2cfbd87620799f87446",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "d307f34ba5fdfa7f4a4645e76a9bf8447c3baaf404017b0c698e516c3be5b56c",
+    "2022-02-23/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "df1c07273061643edd846ad0093dab7bcebf1b1fee812eba51a614dd16b3ccea",
+    "2022-02-23/rust-nightly-aarch64-apple-darwin.tar.gz": "e00ccb8acffe7450d78c5b2fc13cbc01a5210ad8edcaf27bf4a7961806942ae7",
+    "2022-02-23/rust-nightly-aarch64-apple-darwin.tar.xz": "b7ff3dba681d9c830ed3a16b6e11bda4c6dc73509c7ce80d8db9d92b9869d3e7",
+    "2022-02-23/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "f9b5613cb5ba524dfe8ba7325c2b8f8f112173d3e1a9bc5a75de49a604f4c379",
+    "2022-02-23/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "d37d46c2cbad653a5eb8722512a80d34869ebf8e1e13932da1701ef3439c03a5",
+    "2022-02-23/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "a87bc336ca122847a998bcbfbcd9b1b7232c7cab7219a63948ec73bb2b9563bc",
+    "2022-02-23/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "eb1bd6260e5270a90779c7159bb46b70b6f02a2225a0651147fd527eb9a47b0f",
+    "2022-02-23/rust-nightly-x86_64-apple-darwin.tar.gz": "a585cbad9e35c3a2da5d0037078501a01edaf66d9e52ac2e4394b733dd5ac81b",
+    "2022-02-23/rust-nightly-x86_64-apple-darwin.tar.xz": "31528561727a5e8afbf4db3c7f58cd1ac9f8d012d6c521aba3dd72224bac7c96",
+    "2022-02-23/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "2df97bea4add36de47074a5d70d84f3f2cb29f038b6ca82af4e7986ef5bc9acf",
+    "2022-02-23/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "118a82d89871dbed233e3c2dbcf3af618b01756a88ede9f6026c5e85ffff448f",
+    "2022-02-23/rust-nightly-x86_64-unknown-freebsd.tar.gz": "fa6b2300d71c7fab41a2c9a6b8a6b210eed8d3fe8263e8e17f2034072dd15c94",
+    "2022-02-23/rust-nightly-x86_64-unknown-freebsd.tar.xz": "8157384c9f9100b1ae63a9628cc3bb5ccc3ba87f2f46e2bdfdca8cbe3396cbf7",
+    "2022-02-23/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "d0fcb7b0e2b9b09ecca0954af53732c647859c3140b79fb2c1bd61af9846c3d3",
+    "2022-02-23/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "08f39865394e88e46c892c0b3dda2e81ba94f605346d4033a7f0df95d6913f64",
+    "2022-02-23/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "00ed0db2ed84d6ab0347b663963b7ceba40483a9f40316e6f57872dbfc5ef395",
+    "2022-02-23/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "e75ab8ede860541c36f93769ed3a3ac801ae37cb3ab3e820c663b7fcc77640fe",
+    "2022-02-23/rust-std-nightly-aarch64-apple-darwin.tar.gz": "66623fbb88fb63ce610dfe1d5b3242620f1bd473386950b33c3383cc064f8743",
+    "2022-02-23/rust-std-nightly-aarch64-apple-darwin.tar.xz": "8bdcd36005bb117494868bcb74b9541a3ae0485a35196c86ec5931676f449e28",
+    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "c6f82581224c8d968f0e747b07b6651f96ad8736aabe912ca9fadab7a82e7e5d",
+    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "34ee79e3e0dc183f5e1b9d74ac3b4a3525bb0ebe73f14c0edfe2935477545c90",
+    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "fda164074a8a6329835d99423a51a921948aaa67a2c6a3982940f73fe62b1a35",
+    "2022-02-23/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "abbc8486e4b2fddd9ff3678045c9e1b875a4b1729462c3b2817e9872fcfdd81c",
+    "2022-02-23/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "607a92b4e349601d6d7b4575b303324ec8af153fbfa19d6171eccd72388d6f63",
+    "2022-02-23/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "41762afb09ad6ef8e811fb1e4a3fe8bcd17b212587cdcee88d8ced6cdec79b97",
+    "2022-02-23/rust-std-nightly-wasm32-wasi.tar.gz": "4702cab8d82ae958c984686df053897ee53ae98650046016053261c922e848c4",
+    "2022-02-23/rust-std-nightly-wasm32-wasi.tar.xz": "ffa0121716adf85dccc6e211f70d0ea8938e5fa0ba9e8c1cf5f6d9d18875ce4b",
+    "2022-02-23/rust-std-nightly-x86_64-apple-darwin.tar.gz": "e6f2d3e182060387bba51540a6a8207f22cdf2f28f510143164bc755adf3d717",
+    "2022-02-23/rust-std-nightly-x86_64-apple-darwin.tar.xz": "c588370ac20eb185d50342ac04be276d22e65d181fdc9dfdc4aa621128b49786",
+    "2022-02-23/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "940c6687afd93a499e634fa31613d635f8f74ca6c16fb677a418f7288c8b80ad",
+    "2022-02-23/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "75738621babb8eae3f7eb8f4f5933fbfa34d4f46707b2ec5e23386ba7b200bf9",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "b685a785f022c76231c716d1ea305d03e46c7c785e5ce38be895d357e20b044f",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "69037cd59466475957092c15e742959203736acde132a47cb429c94605f9a3f2",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "515506678fc829b3d418e124fa44ac29a5c485377d3fc753493e16aeed856f2d",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "32517c67177fb1c8f4fc149e8dd94d26599b7215f1efaea8c2d3aa8f955a2ff5",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "5a9b8bf339631e33b45704a4f071991ba0694c7b00d94d35793a86ebdb5ad354",
+    "2022-02-23/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "81d245dfa9334e5a1e921550528abdc0c578743b6fdb7d6f8780ec70be197262",
+    "2022-02-23/rustc-nightly-aarch64-apple-darwin.tar.gz": "e967e5e396f7a931f53f7a9737591c4bbfdbeec869495b3cfbce8ccb18c54fa0",
+    "2022-02-23/rustc-nightly-aarch64-apple-darwin.tar.xz": "76ca26b7aeb8801fc6f1aa04244c4b464d8e9068fa34f45d5005c91acb7e3bb6",
+    "2022-02-23/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "7a222bd902f3faa17b486027b357f461659a54f7ba81dc1b784a450d6b06f81a",
+    "2022-02-23/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "88e1063974bc8319067adf537f540229eaac229fbd9a38fda3fc3c28ea484ad1",
+    "2022-02-23/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "c898784e3e4e2fc0492c53148857ec7eff61bdda44b608a3d06e88b7e30372c9",
+    "2022-02-23/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "875bc2c02db117e0ac16386897337ed9cecaa73e2c62f525486c8d2dce7d564d",
+    "2022-02-23/rustc-nightly-x86_64-apple-darwin.tar.gz": "4976dd96f04ef65f948deb988fa9ad7adfbfbd4873c0c78657830f18cd565d4b",
+    "2022-02-23/rustc-nightly-x86_64-apple-darwin.tar.xz": "f4180cb0808d40d1ee81abcf0e5261bc8e60a3975c2fa2fe7d7ec1928adcfc03",
+    "2022-02-23/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "aa55308792edfdb41d1e7121e0343c05847b7e860ece9ff4c9534d64084b09bc",
+    "2022-02-23/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "7ecb80cc8f2db59bddf8c8b848c92698e41136ac89c660b1c0f5cc732c57e12b",
+    "2022-02-23/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "32b6dce6fabc18617d7b2295e45ff30221a68979b8302bde97c98596047f2a0e",
+    "2022-02-23/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "84ef4637f609812dc61f29c0915c0b8f9a31ef40aa740e7804cb2bdc50248d29",
+    "2022-02-23/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "d30ae66c6ad9f0292effe047d7977ecf1f2f6c5be783cfa110c54fdb5bd8396a",
+    "2022-02-23/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "8c1b9a206eb3088ccc620510d7f69da3ef53d4e0d7dff18f52281b0a5c1617b5",
+    "2022-02-23/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "355e30a7f4416a2db738d950b40d0eb57fc734f59871e1291349509e74f1be09",
+    "2022-02-23/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "0f50fe62499132d2a8aae63037892e35c5a71ebc1bd33ae6414b8ef3a810995c",
+    "2022-02-23/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "8f4bc35d8e2b03db96a5d9faedb5e25155082d96621c26b90734219468904c62",
+    "2022-02-23/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "c83c48eae807ab73ebeb6324778faa1430b7efe0da6e32acb013cad9e2bb505c",
+    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "88691ff2cefa6880cb4bbe2d717b5419cd0440ee0d000ff8a70f9d86d714b866",
+    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "c075a7fe36931eff39f1880fce0dbb2d6d691bd4eee6f8db88b49f123e0117d0",
+    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "394ee236b37b687963a0c42e40b3c6863460c302429ad00ca37c7931ea896233",
+    "2022-02-23/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "74b68d4c1a7d36cca7fd1dab686bd43b04af1be5a9a07f7c42c52b0d5ebe35e4",
+    "2022-02-23/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "6e7ba1d83b61ce690c857bc197f3c0a1cf0cb2afd3c4c7f16fdb4079f460ce6f",
+    "2022-02-23/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "6611703fcd9ec8ba9fa1837be5736c2b2833532cdcc152c5e3429d1994ac624a",
+    "2022-02-23/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "e1a81be6159fb9e28cb1f35ac4508a09a0be86edf6ab39db08988a5bbefa9e76",
+    "2022-02-23/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "d5073cb4c148ef6e664c1fe17b02900e5f6ee0cf39710cad55887ebd919e797d",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "63a0018ed3b7bf94dca3db30be7a1d6940a7559cdd0ca408c366551e2f5e6863",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "85924719f0bfa06024496e550edfb6556a7b90e42d7d2d810b52f5bcef4401b0",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "7ab236ced294c39de4bb563e9ebaed04c906a4ccfd1932138d37d6d03f75cae7",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "f392f5b890506e63407204998c3b9b9529dea8a7bdff2319bc202da6fa07c3b9",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "647da2183d93846ac5225b99117846a07a90975bdf1b5075e86601dcf97d1ecf",
+    "2022-02-23/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "9c3be22743d1d9120d16ae47d035f788ba809207bdddeb8746828ea914dd90e4",
+    "2022-04-06/cargo-nightly-aarch64-apple-darwin.tar.gz": "7a0255c61002d666a5603d5050dae64cdffa8fa40783adc1390891eb08e877f5",
+    "2022-04-06/cargo-nightly-aarch64-apple-darwin.tar.xz": "f3326542a34dcbc90576a00961bf2b19a3eacf9e7b4bba543777266a860e904b",
+    "2022-04-06/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "5b9d0038da9d85ba833911a5133ff7ad84f07ee58110e048740ecaf2f1256e1f",
+    "2022-04-06/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "7aab7e6f5a1a80e07aa3b2b15677a00c6ecc4010b1c17ecd9d387823aabde3ea",
+    "2022-04-06/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "f58dce1bfc71c0bf4c58b063a348b1014a61d063ef3e155699580ce60db5939f",
+    "2022-04-06/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "bd5119225e2565e6551c4c0548238eb16ffe4b1a3c782735428d6d1efff9df0b",
+    "2022-04-06/cargo-nightly-x86_64-apple-darwin.tar.gz": "1d2552371eb7a05209bd18ca1cee86398a723bbc42ea0d08705f1121af8f853a",
+    "2022-04-06/cargo-nightly-x86_64-apple-darwin.tar.xz": "ba11aac31448a620ed79446002607fbe8987e8897a2e066cf8d7d4dc50b81f54",
+    "2022-04-06/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "61608db26544c28bec878951f63ee684f4c477697510cb1a4cc734e38aa1655c",
+    "2022-04-06/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "7fb7515377864ab551bd9b4160b1b9318646dad54ca21abfd8765337a3cb8c39",
+    "2022-04-06/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "77cea402c204c000b9572efd878888dbe74dd1c8d665b65f2640b04c6418c848",
+    "2022-04-06/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "f602d9a99a795c239160e1e1ece3a845f4b286c149ffaffcf93561d5aba4229b",
+    "2022-04-06/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "02f6f600e74047d540e8468efd4ccb5b0fd7b4c020745458df84b343970b9d39",
+    "2022-04-06/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "6291a76ceb228752eb9a58541b7ca869fe251b7c083c3a7a8d0fb76db090d788",
+    "2022-04-06/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "4cb35f454e82fe1c15e45a52648143abeb3df9f1db37084422d9a67d259cc4f9",
+    "2022-04-06/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "ab98bae6575cb181283fd2865a18818952691044fe766c1b3bc753b25e845ec8",
+    "2022-04-06/clippy-nightly-aarch64-apple-darwin.tar.gz": "f76dd6caf9ae840ea3c1e5331b6f91f3346cc8e3dabc00b08dbbdc0a0dbc0b04",
+    "2022-04-06/clippy-nightly-aarch64-apple-darwin.tar.xz": "aa5224e1bf3899e1e8a40a74a90c87fdebc859abc7a9c98e80705f79ba028dbd",
+    "2022-04-06/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "4062f55cc0c59354abed8fc0a62959fdf9dc938bdcedc0d1f875af3862e38cff",
+    "2022-04-06/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "fc0d6bf1392866c4f8256fa4c31275940eee370e4287a3d36f5d5be4ba31d440",
+    "2022-04-06/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "939657651f2a404e854f80ae36ce7e7804a0f0554d6e1f65d3d17d8bbd788213",
+    "2022-04-06/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "9ee6c91e891938c1e7cc57b5f45e7bb4a1928917e821ef6d21d110dda18b3536",
+    "2022-04-06/clippy-nightly-x86_64-apple-darwin.tar.gz": "9cee546cf6d1db2b65e10aea594463422193ff1d5bca65be609a6b3d42f7b397",
+    "2022-04-06/clippy-nightly-x86_64-apple-darwin.tar.xz": "958ffbfd5343862d3e683ce24dedfa157b212840c63f4db7995e7e2d8014f738",
+    "2022-04-06/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "31261bf69ee3ea50663b980b32891b9480958910f28a661660367a51d0ec08e6",
+    "2022-04-06/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "bd12421533b7abe16459af12ac5c5ad3aef230e196add20574f033393568035a",
+    "2022-04-06/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "a3096b1ddd578320efdc8858eeea64c8144f1579c3e5af2d928010a4ec70ff8b",
+    "2022-04-06/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "1b7045359c4e1fd9f4f4dfdb7b1fef6e9e34e5a4e1848327a153156344d5e818",
+    "2022-04-06/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "77cde3934c783735b0ee65ddaa5ce8151768f90882e6db7273a1830767160166",
+    "2022-04-06/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "5bd79997fd0115d221edc8636264080836ffd9be572b8bde2b3d764872592bd7",
+    "2022-04-06/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "84b75851334ce22e5ab0a0c5fa09a829c7ed3060c7cd05e2975fbed33520a24c",
+    "2022-04-06/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "7f037ee088f4e11213a45358a5fca06a6be6f1d26c5eb2df4ce37269e994eebc",
+    "2022-04-06/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "ff58344a3ac2bf46593b18b0a26524019298a1c453ee7a43d958831e63767189",
+    "2022-04-06/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "dd3f60e01bfc5654803807d8bf42860f4b65e13ef7b0e4726206e1a0cb221e13",
+    "2022-04-06/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "abad579ddc8d42a3676bfd9ed555c6430137dbd23689e2e17d241398163ad932",
+    "2022-04-06/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "82ac668f6197cc13334c752ab438607346410c4e04b441434428e2a7c04dc212",
+    "2022-04-06/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "90ae2e6c3d7ee227a3c677b62a0f8bac39f8b76a2912c1b7ac1ebccacde46f68",
+    "2022-04-06/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "10869068b1b711603b2994769075fa15520757fb85ce89959e2bcfcbd2c6f923",
+    "2022-04-06/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "93d3498e05b251af13f32b706755d09d2aa1fe331d090c362073711eb3afe55e",
+    "2022-04-06/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "e3fc11664cf2153a6b34282022e3aa66ecddf2fdf29bf2833656e177299861d8",
+    "2022-04-06/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "d3132011ce18e062bd7aad36b35410a234eb378e2dc2f7163ae70852165c246c",
+    "2022-04-06/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "cee5d4971a5c24851f568c79c72b47dbdaa33563e6fae1d5ad0f80e1f876acf5",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "18ef22f851571c89edab3366b7ce9b14d0f4f8962df10d4e71545b392db36361",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "4c26d888ea88efa68754b06dd70e0e16ef4fd6d3f69224686145e7a5694e009f",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "5909e85f26681e883031986050e0b6f5bbfe1e695b302737fcfbfed9425f0cab",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "15a594fd6e948d7f64614328382dca665dd9c66c54315f05a0b3bf81c0ecb1bd",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "525f2ff58d1eb6539c1c2baba6e3e60ecbc110801149cd6dba5d9bfcc84fa638",
+    "2022-04-06/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "c657123fbbaa63c8fe82a42c0e609e6683eeaac92b12a865ca6a01f3c839e163",
+    "2022-04-06/rust-nightly-aarch64-apple-darwin.tar.gz": "e9fb184a1ddb7d160f4ce901e4a689d7a132508fa7ca2d058725d84f539a74f1",
+    "2022-04-06/rust-nightly-aarch64-apple-darwin.tar.xz": "834adc15effe86502e10b9bdd4e0aa16e1575b805bc14323dc0b3354c367c089",
+    "2022-04-06/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "f30535aa4a34a4d981d19c0535d5621252bde0af6b8321b483e13f3c5a042e26",
+    "2022-04-06/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "95d440c38c73d7a441828b7a91eb21f2fbb06a78ab904a9727bf20f4dd4f3f57",
+    "2022-04-06/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "bc93d2b6b04012baa8dcd44189049b8a93154830883b663b50611a0517feb1fa",
+    "2022-04-06/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "5997c7304dca4da0ed07370847eef24cd9afbee6ebf31b92f46ffc3f4a24f050",
+    "2022-04-06/rust-nightly-x86_64-apple-darwin.tar.gz": "1fbec82e67b657abc6560e6d83a65bd962e67396be3c1a23e46a55fccdd79312",
+    "2022-04-06/rust-nightly-x86_64-apple-darwin.tar.xz": "4f85f337a4f1a7b84274193fb647fe4bd2ac3f430c550fb7a63e650eafe98b48",
+    "2022-04-06/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "d09183283e662e39436462eb3dbe6e6c086e38cb0d5c9a1c3de9ae89210285d3",
+    "2022-04-06/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "458017fa9cf1887e28987049bcb6ecc0cae7e9e2530abde327524003a13c2069",
+    "2022-04-06/rust-nightly-x86_64-unknown-freebsd.tar.gz": "d62a242e7933a37b4b1297e4b2ecf96009626145e9fd67bd5875b4eb484c1e4a",
+    "2022-04-06/rust-nightly-x86_64-unknown-freebsd.tar.xz": "75785e9358a951adae085112265a4f1bbe90617735bf79d5dfc693fd025b118c",
+    "2022-04-06/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "bd00e59734ab8ec3988c01a49306b0afecd02e59403ceffac916052eefdf4e50",
+    "2022-04-06/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "7d4f779526d2e869f2ca2c00fd294f1aa867f88b14fd12fa9adaa88c694a7857",
+    "2022-04-06/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "20c5adcc88fc94c58e48cf9971ba7d33042e3e08a99135de0a63be7afcbcf09d",
+    "2022-04-06/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "d35b329886cd4b61f6f370e6ae7fe050feec88aa3e2e03190d68736ea1e6ca1b",
+    "2022-04-06/rust-std-nightly-aarch64-apple-darwin.tar.gz": "a5c2edaec1a40a2e02e87d9edb625136566455c7063641b0d318219c876b5143",
+    "2022-04-06/rust-std-nightly-aarch64-apple-darwin.tar.xz": "de41697ee56703a4fbe772598fc81e59e52e6c2cd9055b36379a3c2f20d490cf",
+    "2022-04-06/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "18ace659f50a5b9d350fcdac06f9a1d47a984f88d720c329243e5c733f930a40",
+    "2022-04-06/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "b5aa0421ec9b745c9759aee56ea2550b9de17327c48cbf25cc90301d7d2fe2d7",
+    "2022-04-06/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "0e5fddd57e69e2418131270d2dce0bd3404af8f7dc9caba4e5195dd059662d78",
+    "2022-04-06/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "bec6d354aa221836ed6a1543c56d856e9a26d4321124f237dfb9035f2da64cc1",
+    "2022-04-06/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "ac32b1f4cd8e83584d0bce16c502ecd51043e520fe5066adf06ebfb643813ae7",
+    "2022-04-06/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "72046644aad04cbeb46dd8641404337e6706efef089ae745d6a886c93542404c",
+    "2022-04-06/rust-std-nightly-wasm32-wasi.tar.gz": "42569968a63dcd7c1650b0215b1cb58ea0e087b99f1bf1de8166b79482918257",
+    "2022-04-06/rust-std-nightly-wasm32-wasi.tar.xz": "a5492e08b530ae83120b3e59771af0343c700bcedbb60b4aaeb02ecf6b1f6a02",
+    "2022-04-06/rust-std-nightly-x86_64-apple-darwin.tar.gz": "18472ec3ccc49ff9e90673eed7b255a3260ba20e98a80f71ff8e1a50ea1b8519",
+    "2022-04-06/rust-std-nightly-x86_64-apple-darwin.tar.xz": "c6b018249431c3ae9d3e725f1d2ec85c89b70a9467d462758d07f1fbab6ca82e",
+    "2022-04-06/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "b2a1c182439d0cfec3a7c60a656b7f134cf8804cf24a370d80fe01976e32fb60",
+    "2022-04-06/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "88fe9850a12a96914df2cb439214eb6c08b7692abffcdfb9d3b37858323c4677",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "93525ae05de69358ce116a5bb945ed93aa46a852194c9de4f3336c78e4136a49",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "3a3e983f90d66be41d1e68a3ea75de64e7b786d29fe9be1fab31b0e7ed47c264",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "b72fd2e5da0a4721dfb7fc4eb767ad2f13933c61baeee9b8031f13b99f8926fd",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "dfa88881d153eb75a9f5e6fb180854c6d51a6f16402ac7454aa4c849c032d896",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "b5eb76832cc0a5faf00532958ce045c3d9aa0858df346e98d91a5d836650ab8a",
+    "2022-04-06/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "00e7b8da13a0b1961a430c0111356a3cc2635f8cbd064acd686196b8c5fda0d4",
+    "2022-04-06/rustc-nightly-aarch64-apple-darwin.tar.gz": "4957e96de24a361f246fd1fecaefe00bcc362510c0b81bd1423c45589bbd1721",
+    "2022-04-06/rustc-nightly-aarch64-apple-darwin.tar.xz": "caf36ae5afdcccbd09b633985760a00693a99e929cc57d31743f5822c443037a",
+    "2022-04-06/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "776385e6c9ca23c7236508e7cffc125b132c5324c839f954c2f5f056f69cf291",
+    "2022-04-06/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "54ad264e7b0ddc204d956eff258b89eaa4287474493bc9de54d35d4c7f7b3aa6",
+    "2022-04-06/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "c9348e1709aeaa87f37eb21ec65359aa22997fc30bca152d96d8f4022534bdf0",
+    "2022-04-06/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "cb3a1adae111d1ec1cf164880989ffe6c6241fbfdecb86207d87fb896060c653",
+    "2022-04-06/rustc-nightly-x86_64-apple-darwin.tar.gz": "47eeb5df2349b5b00d39bfd77ed332341b4cdf69a057c2da8aef798704645087",
+    "2022-04-06/rustc-nightly-x86_64-apple-darwin.tar.xz": "eaddc49c569e3da25ff83951883ba3150c997e4640c9146c45bd6f698ee862d9",
+    "2022-04-06/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "f72cf6e692429f71318b2ce06728f34b3838c37f2f8d3e7cfd01dc412cd997f6",
+    "2022-04-06/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "0798aacc9b85971d91e801512a3bbd1adc87386c27584953a638b55a580148de",
+    "2022-04-06/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "c43d24c7f44cfc52763523c38405ce31782dbb2616c12003a2b12e3144b92a70",
+    "2022-04-06/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "a8483d029365f15c5a7b7b01f6e1cc20c020a523280b364522e06be698d9f17a",
+    "2022-04-06/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "a3c6c8af00e659a59868556ba189c720fd838338bd0e3abdb068a85c32cfe14b",
+    "2022-04-06/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "e3867738f3e24345daf9cc9ab842fa37a9e326f3ebc1842af3edacb9951a4c2e",
+    "2022-04-06/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "e7262d07e94f85e621e1d0fbc9a6b00a7b2e60eef3462c1768a2e7dbec72fb6b",
+    "2022-04-06/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "5948c4680c1cf05e990d60cff4e9d79aab26d492fc580c0e20b7ce53350c5297",
+    "2022-04-06/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "2a7ca3e7a8821e85270db660a0a284f849c07296bcb361d1c8a430da51b14371",
+    "2022-04-06/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "c38a31996160ba02ccfacce36cd97972b00d26f4ed8061e3773e31fa28835c58",
+    "2022-04-06/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "29637f5a50b781ef6857cf7515addbe0e4f552d7b4b54e7ea598b38b4bf8eb54",
+    "2022-04-06/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "bcb43a2b7ca5f461e704b6fb5649ccf1ce446c76d1b9afa788861e53fb291c74",
+    "2022-04-06/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "19f43ffa97f39c9147748635be46f53d2e6df52c275e125b5fcb0a3ed04d98d6",
+    "2022-04-06/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "dd62f0425c24f8a3356f42dd403aa6930397c566fe59569ccf795383888c4dc8",
+    "2022-04-06/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "8429528b908f82f5459927e3c9325a7551ac4a54b416b9e0b27f579ba6399853",
+    "2022-04-06/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "cbd1f4fb3f9aab7e6773d9e99b702e1a300bd9a8bab2ae64db94f2a32de8eb70",
+    "2022-04-06/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "8699778d692deca7b4c8e236e0ace503216ce8217f706b6eb99030c56aa28cd4",
+    "2022-04-06/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "eb33798cdb8b0002294ca8fd6930a136447a2eb577b95d951161b2ce41f8683e",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "1c74012a03a574810026dbf7f35948a4acf2db96f45f83491adeccdce445b8e4",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "85f69aafb8249b472b70fc8415e0f5bd82f01e7320c74655a03d7ee967a5360c",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "0c82c8cb16abb309672e9cbfc7acd959a128a43e07641bfdf17d73b7e8979990",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "0eb44d374033a9a9806fe48bfcf32c7a2bbbb89679a3e54bac9c105caed08055",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "efa33aea45f0bdfcc4074bbf2c248cc765f6b14d4df39bdfabc263eadf1b9347",
+    "2022-04-06/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "66db08a612651891aef08f75ae184483b00df7d81390b2a3c66800f81534e14b",
+    "2022-05-19/cargo-nightly-aarch64-apple-darwin.tar.gz": "a2e5ba1eea4c2e9cc8a73f875a16aab92051d6335bd5c3b7891bd9711c42a903",
+    "2022-05-19/cargo-nightly-aarch64-apple-darwin.tar.xz": "56f049bdb2b7af34c2da955bf5961fa5240e6bbb33cf8c7f2c57dbc9a25088c9",
+    "2022-05-19/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "2d7c51674e82355626e74c69495df46855734e4b118d92c1491bb8807be76b3b",
+    "2022-05-19/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "7df746c7491dc98145ac55d1d08b9b01d88e6b2a0aa05a3ede34866ca575f9ef",
+    "2022-05-19/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "d1bf172333e0de8488a94447538fcd9c94f51e999296a62bb4c0bc8b9bdea165",
+    "2022-05-19/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "1cf5f1292ad67ccef15b520a25d8460ebd7f7aa6379b8a77efd2685bd8d72d2d",
+    "2022-05-19/cargo-nightly-x86_64-apple-darwin.tar.gz": "a7526282030667a5b7dd3d3e3dddc9417db850f9ebe64f2badc6a8e125fa0b2f",
+    "2022-05-19/cargo-nightly-x86_64-apple-darwin.tar.xz": "2e8b0d0606295b8bb42c28d61c4eb2629fcbff7868a9b7981c6d0fde10d57be7",
+    "2022-05-19/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "2de3750b35af5a9dfe496e4a50efaeccad5b05ed0fc5242dbb84f78791d965f6",
+    "2022-05-19/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "c815670d31c79a30ed8cc0f53c2a6c8a28a1be58e1f2036fcc8faece84f8124b",
+    "2022-05-19/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "6c201ec156f70176c28daec226c688f092a199da590d3f659043886df3e95cdd",
+    "2022-05-19/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "c01a60cc0abc83ec569fd3892fe9d4b2fec211c87325cfa8972e85896f28b4ac",
+    "2022-05-19/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "da2e58f0bbf4d396e677dad7b785a1636929043b255ce099272180d36fbb8ec5",
+    "2022-05-19/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "4e77d9dbd960c7ab71a94aa1e6fe25bb52c86a1b466e9bf4845486b61ebf87db",
+    "2022-05-19/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "6683916049b0ae51e206a0568a11631788ae9218d05acc497fa78840bd4c8b33",
+    "2022-05-19/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "46f91b7e9d20cd091b5c14228270728af585d08fafcbe60f6bf8712288cb0201",
+    "2022-05-19/clippy-nightly-aarch64-apple-darwin.tar.gz": "928da4ef651fea2f341ee4affe7f225ab257f35b614f53bb8e9417254a34963b",
+    "2022-05-19/clippy-nightly-aarch64-apple-darwin.tar.xz": "b558f033d089d3fd86ed6fad6918519481c7076f946deb3fa971c1df82a3eb3c",
+    "2022-05-19/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "9ae879e3c8bab56de67ddc229b8fb18802d771623fc38a104f375483bfe58d6e",
+    "2022-05-19/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "73061c361b5d56c91545cc67a7dd05587e4754ce743cf25ca456b5879c9e80b3",
+    "2022-05-19/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "bf6492fb5daeb5d105a8ca8e4a971a7458572b157e7a95624d57a8f41103b524",
+    "2022-05-19/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "3167a4ab43f2555b71c75f5bc7ee270e7907ef8ba240998fbb142dcda1c4d6aa",
+    "2022-05-19/clippy-nightly-x86_64-apple-darwin.tar.gz": "65ccc333ee5f3679ca6557b5d3fc0b01c20633274534f59998e2ad6fadb83bb2",
+    "2022-05-19/clippy-nightly-x86_64-apple-darwin.tar.xz": "2e6c6abe21b8ad47030bfa7ba356db323635784cc65109c786918e6d189b2a33",
+    "2022-05-19/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "dde6acdf0a04701dafcc90b11e2f9ac33b7270816f3fb55b432a99626f1a369b",
+    "2022-05-19/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "f075f9ccb9c4ff9635ab6576dfa0963a5537e82086bfe50dcbcaa7ff54fc6952",
+    "2022-05-19/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "23429eb035f8b73ab22d6fc288ed716bc9cf118a33c8de747726f6d0757ce50a",
+    "2022-05-19/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "d4bba6218c9b4c959618f2a1170a8f60d08c38da9590e30fe32228fded5c8781",
+    "2022-05-19/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "8c9d02e8556da74108f286e0e372c5cf98386ef6a2e67abbf21d3510a38a0196",
+    "2022-05-19/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "f4272e25c3b9222f1119fcc820e760c17cb9bd7035a597504bf4f329a001704e",
+    "2022-05-19/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "53ad0354e86328b83c1a09ece76a4ab43e85404b116be55fe3ddcc4dff7ff3d1",
+    "2022-05-19/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "3148ffc79ab18b51daa399f75b45d8e3a8d1b876873312b6e230dae6bd54dc49",
+    "2022-05-19/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "262cf5a051a23f283f96d1e0abfd80b2d24676ac8d7396f165021dd2ca6c9a21",
+    "2022-05-19/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "8c76348179cbed4479625a74219fa05f634554327b5eee3aa7b2bc88a94f9db9",
+    "2022-05-19/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "35e28d8907004a56e378206556d506aa12f584cefa9e753f1c90b15883c98168",
+    "2022-05-19/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "ee090be45c702799805f59d837a7cbcd9c61e13012582ff9cc148e91c72b7d7c",
+    "2022-05-19/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "135a93dbe7e38d9f718ea09ec71cfd0a0d2ed632782cdfebba6a3fa42e06843b",
+    "2022-05-19/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "90dc3c50781d45f599932609baeb27a21a9bb25a3f24f2891cf50f5fb2a2cab8",
+    "2022-05-19/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "da8e7d9574ed4fa00a43ecc4e2f57276e79860084c46aa340c4a89f7a96908c9",
+    "2022-05-19/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "da2e08b3317f2d86523498fcdcc18f000844169e1a5056ec052d5122253d1eb0",
+    "2022-05-19/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "46d85c6f1e19d8f33502c9c17ecd54f96511a5d78ce71ab5261721278b802bf8",
+    "2022-05-19/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "15d48232fe117c6d056c119ed11f704d4be4afb348d6aa291b6510db36c8fa51",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "7ff51a4424df6ade5f2d2daca6b8484f333a3e26023b271cea1b431faca161c0",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "b76b0d8f279af025e68f72f72cf55e93208ece1ca901a38b195a8ba290b1b6e7",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "40011bf04b71de19e2c81b802504009bc41c20f35a09627028ab92bcea460197",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "43f089c115c8d989ef99ee219ad47bf27f9e7c8f20788e1b57f3b4180491ab4c",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "ad6dd6cbc2971868cb834d312739b864c38b62b057fe2e0d393692d2c99cf7b4",
+    "2022-05-19/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "7010f8fedc1230d7ef1db3760689b50ec2cfed2a6f0af92151c2c20289134188",
+    "2022-05-19/rust-nightly-aarch64-apple-darwin.tar.gz": "c5a26b947f3853ace3cbe439d17d30219a4b87f1636ac1b6ea30e7f11c2e2637",
+    "2022-05-19/rust-nightly-aarch64-apple-darwin.tar.xz": "73914e4e63fcdb24fd162db80f80c4b28edf729b84b750d6cb053d1be4fe6369",
+    "2022-05-19/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "0e51aa98edda8968ed24df349aca8b975bcb5a016c29d1a37af73e72040cdc89",
+    "2022-05-19/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "597cfbaac77e372fa2977fb6836b7549dee4bd450490bfb8bdb83618f3d2799a",
+    "2022-05-19/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "13ca6b7a92644c8b31b928d30a17fa7f4e768f773ec04612d287d5f9598f56a6",
+    "2022-05-19/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "90889b0a5507f72d1c4a16db459abeaa861d9b84bafb1750c79639b48f5d037e",
+    "2022-05-19/rust-nightly-x86_64-apple-darwin.tar.gz": "a1023847b4bc385fa6504eb45e00fb7c607a221ab02896ff44038bdd5e5285bd",
+    "2022-05-19/rust-nightly-x86_64-apple-darwin.tar.xz": "1e117d92cd2a290f3d54000bd53a7128b809b0534e391fceae143a608a22f750",
+    "2022-05-19/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "34e8c765f52882d759a760139122bbf80b38b6869b9867124168a8446e82d820",
+    "2022-05-19/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "93c9f5a73972e28d936ebc4cc0e18aea033cd35c7d8673fbc02e15c6ea9d4412",
+    "2022-05-19/rust-nightly-x86_64-unknown-freebsd.tar.gz": "04f7c4799b35658c2b2d794c485c350fa93fefd3885d65a2d2b220f60e15dac8",
+    "2022-05-19/rust-nightly-x86_64-unknown-freebsd.tar.xz": "4c2ef0b421c279f08bf266d19dac926723f5a8ac81fff7c6b73561664470add2",
+    "2022-05-19/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "e243260137f3cb1124c5c1b1e7b7713d3549415d4fb6f15cb9d0f3573fe22e26",
+    "2022-05-19/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "9b9a11997db8b241bbb15bb482ff31b441d99b950daa63f184a4a0fc3294a4bb",
+    "2022-05-19/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "c280b43b645ab2c93080c7a31758db77dfd2d1cf77a2ffe7caa43849a0a366b6",
+    "2022-05-19/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "7ac30a56df3a4031ec0cd28bed06c75f96ae9ec84a111f41e1904e1ba1c05280",
+    "2022-05-19/rust-std-nightly-aarch64-apple-darwin.tar.gz": "1759e788d7f12502f49847b0603249fc721f6ad7e7dbc911750a98d0318c2af4",
+    "2022-05-19/rust-std-nightly-aarch64-apple-darwin.tar.xz": "a59db481b5061a97dddc42e434e2cc304e531ba55f75dd9974e0ecb388aab1d3",
+    "2022-05-19/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "b08405140ce428d7f33171f021988763494ecbad4f3804d8c92b034e8af8c0fe",
+    "2022-05-19/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "127d82bfa78832f6126ce232b3d7016d780d6ed2e3c1dfe8b1c85ba6802d001f",
+    "2022-05-19/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "c64d3aaf14259f3d7f71d129f5de8fd2ca27aa40f25f27107e95d28af68cbd00",
+    "2022-05-19/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "6e755d20c79f7ecac4d6472455ce6acadd57dc54618c178bbc844930774fa9c4",
+    "2022-05-19/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "6c400f9b843ed56451f8657f007cc3bf55c191e4c47875c46cfd73aef8919593",
+    "2022-05-19/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "2f3668859ec83f8d78a66d8beb12bdbdd1e000039a4b22210a2f262d86506149",
+    "2022-05-19/rust-std-nightly-wasm32-wasi.tar.gz": "8a1128403522dff777982ae563a59db2a8744022eb086ab20726ef5171996fb2",
+    "2022-05-19/rust-std-nightly-wasm32-wasi.tar.xz": "8efd568896fc1308589d6c77e1cdea3724c3a2805504ecde373ab85d672f9a23",
+    "2022-05-19/rust-std-nightly-x86_64-apple-darwin.tar.gz": "f48c72029cf6d37e2c5967207959f9a7de3b31490b304415c717e45f85bbabeb",
+    "2022-05-19/rust-std-nightly-x86_64-apple-darwin.tar.xz": "fe6d8367bf5f8d4c5a06dc15c9d26310c8c47dc9d7fe4c1fae27995132f8b801",
+    "2022-05-19/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "fee7380b80de89299037ab03d75644df02522ab1692289d1317a327880e9e4d0",
+    "2022-05-19/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "ea1db82d9789df12c306303ca653c36f1a949545c2bb7ed1f2453496361e5589",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "215855934d8a1ed64fbb7f2c933541fcc9a0d137fbc3d762298c8c6255c00258",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "170900fa3a886776014ab0ec56a04b5176853bb535da783d0f557a492bb8ab5c",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "32bda3c334564446f6bc3f3164f6b9d010ba17e348704acb45fa9fdbc05db466",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "0ae17469f290b5ac54fe8b366a87365596957cb8f74d6637f2e5f077f5bd77dd",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "3542c966d7b8d2aabb6e083740e86ec4b590d3908d711505e865d7f0ac631966",
+    "2022-05-19/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "0352d744599c04be6037f1fbc719a5d6f34c3c93b557bfe22d737fb6ff401e30",
+    "2022-05-19/rustc-nightly-aarch64-apple-darwin.tar.gz": "cdd3bc67be3ee47941ea185bc0967e9fd09d9212e9767eb6c663b3fe0e9a41e2",
+    "2022-05-19/rustc-nightly-aarch64-apple-darwin.tar.xz": "14cb94e1db0ad1ff31721eeda7fff152dd9bcb7b072024b30d0629df02f9e7a7",
+    "2022-05-19/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "6a8626776a9795060679a706b9b54ddccc1d37ec5620ae0f8fc7931a200dab0c",
+    "2022-05-19/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "928ca013fe69bf73ba7f44ee659c659ba32b1170d78f8023d00d9705fbd8dc24",
+    "2022-05-19/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "25767b41e9cf01214cc06af1f2758ca4a408b23abfd6273222d5a8d95fa873c6",
+    "2022-05-19/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "9f793b622eee2991a365440db596fd3f84d2a6963780774a91502b1c9ee2b393",
+    "2022-05-19/rustc-nightly-x86_64-apple-darwin.tar.gz": "cf3ca080ef505601cdbe68ea0d8376701c4bb8f6f18ff239cf8d2c9ee21ee202",
+    "2022-05-19/rustc-nightly-x86_64-apple-darwin.tar.xz": "787cd0a504f25a4d2b50f87cd179ea457490981ad95e435d7686a7aab80bb607",
+    "2022-05-19/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "c434bdd2a82f18f4ad84d29dc5e6d971e32f8ba4fbe16577460ae1d387d802eb",
+    "2022-05-19/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "edd73de1891ddbb3814efb264ea84136df78eaac94cb6405e9e85d114b86caa0",
+    "2022-05-19/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "7305048bb55fd07475cab45b6c286c8904a01182f93acb3d4af6ab07699c9081",
+    "2022-05-19/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "c96ff89c9cce78f1a119296dd4d3f773e8c4a74f4b1eb464f10b417970fa6322",
+    "2022-05-19/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "8dedb6c2aa7357e776f6489e921901d9ad10e84662f5833d38241ea383362d8b",
+    "2022-05-19/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "ceac04828bb05cb621d354714cff449aa322c074b0d5bfbf2618d61e72e3017e",
+    "2022-05-19/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "e041ec10e7d3315c614fab96795688ba818205e964ccf8ae9aaf2e5ccc1f9f94",
+    "2022-05-19/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "9ae0ff41d94a5f44393928c087b97509ef905ee180e1555d867cc3a98b6628c8",
+    "2022-05-19/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "8934786fe81e6d2a5f680f50d0529b77e6c25e0b6650d31b43e7fa1841b1f02f",
+    "2022-05-19/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "401e11e5af691157e57081f70072360317d1baa289e6c0c8b5c58f5aa357aee1",
+    "2022-05-19/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "2facac5616061afdfc31e3ed95f639ce663c4c1031e3c50f178bee69ab93d70a",
+    "2022-05-19/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "eb86fb841c47bd726b68f179233bf17259fe304730228134d231d9d8375416a1",
+    "2022-05-19/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "db5f4732a88898370e835b8c469f055fb8a6ed423dbd76f408e3e010bbe39301",
+    "2022-05-19/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "102283b980e71ca238d16cee1cd616959e8d61b5d43b5dbb4da9cff79bd124e9",
+    "2022-05-19/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "390fd1459e99f9f92285e633be93296ce2db577731f30ffeca6ffb025a580c6a",
+    "2022-05-19/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "de14fe54999af1e76f2436e27706e7a9af09a65fdfefaa36ff8e743cd84e0b84",
+    "2022-05-19/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "c28f8925f6ebe02ebf5526136ee789a5eb85e0eecbfe32559095db59eacdd464",
+    "2022-05-19/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "814e24df1248b33e926061d05de9b27f2ad2351c0db9746cdc399344fa92e008",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "a2ac8bc8dd10d54d815b0c2b17da9dee4ec88ae7b11c622aa448bbb5a2630d27",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "c8f208473af5d7014e3d4234999af1336058e4db041d987d091a03ca2e67d2a4",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "0b3eb8d7754f320983ef80ae621241576f8e62afbe042e6fc213de0ee8cd2b69",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "174f6734ae0dfa0ad6392cf106a61e0a8ed79bb517a5c87e849191d9baafa4d8",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "ca3af32cf95b3043eecd12117c0b58954ca31f26253b00d4bbd1cd95397796a2",
+    "2022-05-19/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "85d240625628a05cc2a57246b3d02670d9809447b2191472d3464bbf64efdadb",
+    "2022-06-30/cargo-nightly-aarch64-apple-darwin.tar.gz": "dab3e530f771a66fb27f7dd80ae94d72885d9f8c806a236f8eaafd7f4b8df0b1",
+    "2022-06-30/cargo-nightly-aarch64-apple-darwin.tar.xz": "480fd83b2cb8c42a3587a1b65a8af9c1b69b98132ffb59c56f1e02e64a02344f",
+    "2022-06-30/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "e9eb6ba6290ee9f8f15655ac692fb6ae237d7a3b7c67c2bc9f39072bfab645df",
+    "2022-06-30/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "90aec658630601c1110d01d41e08c06ca90ba0c92e151b83fff69ca08555f3fc",
+    "2022-06-30/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "36cbd388fb5d3a8bf260584466e2204a09b23c262526a4f625eeec5b3bebf69c",
+    "2022-06-30/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "b36014424b165c2913545ea2a2b3e5ed8fdfe099fb3143c96891658ac6fc3818",
+    "2022-06-30/cargo-nightly-x86_64-apple-darwin.tar.gz": "313ca29a7b3f4f35ea049010f7e84728f938d25b8396d7662d162ca5a6be0e9c",
+    "2022-06-30/cargo-nightly-x86_64-apple-darwin.tar.xz": "7cfc08aa98f4501ae688d2d7309f06807b746b707da98de83cc6892260193fb2",
+    "2022-06-30/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "08fd084b5967c2718a6c6154f613e3dab8bcd60d5c3fb437f7c80eae6307ee29",
+    "2022-06-30/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "c8934bec14d5b27f6aff6c474df4f1e7c901de2f9746eba474a6dbcfe23aee67",
+    "2022-06-30/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "8b116a8809935206d05fbe2d8673f95d6e4be48cb6b695bc682b1b2244c560cc",
+    "2022-06-30/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "1592f8061688472ec5dd99f1930d6461a33bc7b2c48d5bddc19b56a460584afa",
+    "2022-06-30/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "7359ea594fb073c3b67d2850c8fc2df29badee2ad4c5afad65891180e8b0b180",
+    "2022-06-30/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "bf87df75a755880dffecdd895433dea5215e33ead8052b93b07ad47a0420e37f",
+    "2022-06-30/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "13e49c766fc16bda3522512a78c1c61064ac4948cab53dd18f70bf69425297cd",
+    "2022-06-30/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "aea678afdabe4e0d65e1e6d04a1d31f51e2cfb01ac3de956731dcb18eca7f74e",
+    "2022-06-30/clippy-nightly-aarch64-apple-darwin.tar.gz": "dd11da949770ca0d392567280d104885279bb5dcba76389ce2513f35985e6b05",
+    "2022-06-30/clippy-nightly-aarch64-apple-darwin.tar.xz": "f22f4e94597972c0d586a6a8684d683e7272f28816b0395e32cb8341d45b0276",
+    "2022-06-30/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "38e3d760f0e7648c9ab69e1db9c58871735983c3651f5b96445454207a5a4993",
+    "2022-06-30/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "31ce9f2573c85cae830b80e1cdfe7e79e1d81c3aee9ccdeb6271975835ad9ab8",
+    "2022-06-30/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "d909e062b362c8c808c090506f407787c254e44737ff678be8cdeaf0a41fa2c3",
+    "2022-06-30/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "d746fc2f8c9d68683899322554aa3b44bf18e12e5e2ae4458f13c7257e3e7d27",
+    "2022-06-30/clippy-nightly-x86_64-apple-darwin.tar.gz": "fa243074c45832d3dadd72cd8b4869e44e93ae33564acbeb92b92b23cf90fa5c",
+    "2022-06-30/clippy-nightly-x86_64-apple-darwin.tar.xz": "325f36f29245bcc3b17b1ca4b56f79d61282fdd29d9752de17205a7cd6ca7af8",
+    "2022-06-30/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "decdaed7217ec1ad85fafefd3d2c104201be548938537ffb26707ccd3c0c0536",
+    "2022-06-30/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "dc34a8d99e36add092c7fe004367d58ca78e04e03d6a39e1ecc6ba25bc19d8a7",
+    "2022-06-30/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "d03191b64956f5651279df087dec5433e3e0eeff56f0a63b452e4f6a374e12cb",
+    "2022-06-30/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "7576c34fc2a2bb42a4c56bcaec1aca23030a8b66734e6f080792173227ee88f0",
+    "2022-06-30/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "c5dadc9edf3bd134a9e8a64b3ff9b586ea3f39cbca60a2537b395ca2e5cd354f",
+    "2022-06-30/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "0750dffb42e8af3a7d199766bbaa3effa6026e4c8728f7bdc9be42c12a8513d0",
+    "2022-06-30/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "2893c69f382a61243431aefb23175e0b8d0666e3ae815c07fd4322824a70f5f5",
+    "2022-06-30/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "c32ff80fd4d43695ead06845783a80da47f6309466fb0e70670c9c9a43b6e66b",
+    "2022-06-30/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "0f6f2215c91ba37aff6199e6989727efeb80f7b96cb192774fde24cff6d06e53",
+    "2022-06-30/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "c60dca323966b18a2829c5afba5d131ae01e88a6c10abe2fb4b5310aa8a38460",
+    "2022-06-30/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "9d7d946a1ab237635703554d24b32ca90ccf2c85f946df4147e5907c9a650dda",
+    "2022-06-30/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "5a88be0f8d1beb5168d351318abd097505eb28341d49040b6f8a6ba0493761fb",
+    "2022-06-30/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "e4f6ac90b59658166adcf682d58bc2f73336d366ca33b9cc9bbb1686239b59bb",
+    "2022-06-30/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "1e497f0c6dd5baab1cafe98fbe6e2c6d6756e4f24464402bd53a0334bc8b06ae",
+    "2022-06-30/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "cf70a549a0ad028802ed1709eaa793355a5f359ba28d07bf96b3fa5ef985e0e3",
+    "2022-06-30/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "f12cb2e9b4ff5b32cd9200749eaae412fdfac055b58e38c224186b3a57413f1e",
+    "2022-06-30/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "52094cdd5f51ea14f4236ee8280490fe76f65137d2598630c1ad787eee9f9089",
+    "2022-06-30/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "acbfecd5107f005b268a891d3597e7780ab3307c5f5d4bff5014bca57c4dd548",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "db634ed1cd909e74829aa26decc8d979c95cdb87315b83806f5251414bd1b36a",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "48e7215917372d559bea6713f4483ffecaa9cd2d087894bf4489ba7e7862b0e8",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "5540d06f92824b3ba81212300999a0711f250efcb784486ad7830b370d8ebdde",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "4624a88b86cddabc073bc2505103c452ce7b16d308ce57711e9d25a5c7c4febb",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "8147d80b6df18e0d37b9e20bdd24a0147ff8bf07b9e4734f519ca5de4f965d14",
+    "2022-06-30/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "8afae547818d91ae935d0a89700f95321faa31b0a89f6fc760ab9d19dc8ad27a",
+    "2022-06-30/rust-nightly-aarch64-apple-darwin.tar.gz": "abf610fa1e907d7b1e376bc162f77bcf23442e1c1ef3c62f857ec59006cf30d8",
+    "2022-06-30/rust-nightly-aarch64-apple-darwin.tar.xz": "7e4fd72ea2a21461fdb7d755078e774d65293e09845f238f075ca213613f32e9",
+    "2022-06-30/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "9a73aec5a7e29e1f8e8fbece0af403a5468e91fe8ae572e5367c1974b7104bd1",
+    "2022-06-30/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "aca45a17cd5b386e7e5967d08bee051d8d5c70145085913f3e841a40fdec890e",
+    "2022-06-30/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "715231c001e959d271dd63fcfe880f32c72bf7d37792f29b60b3233c0240bb1f",
+    "2022-06-30/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "d2df237aaba0a3529a37b88bfce6afc5e6b3311b3f95cdfa37a29b345a3e52c0",
+    "2022-06-30/rust-nightly-x86_64-apple-darwin.tar.gz": "74f31a5ebaa2b6c30f515d76b74dfd81cb99d7a6b420d164c54ff3a940207933",
+    "2022-06-30/rust-nightly-x86_64-apple-darwin.tar.xz": "2c4b2b35983784362697c453918399f803a2ede9adaf1c30d760bfe66842e32e",
+    "2022-06-30/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "202c8cad67eba2edb03e82155fbe310a759a7216e9b5b5846fa9be605d80f382",
+    "2022-06-30/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "0e18c75462d207e9f0cf801e7a0d541762e7160805eac23be5638a6847680bfb",
+    "2022-06-30/rust-nightly-x86_64-unknown-freebsd.tar.gz": "e794726271e7f51ce63002725cdc9a62297ef2cdee1aa6fb608e8782b1c05fe0",
+    "2022-06-30/rust-nightly-x86_64-unknown-freebsd.tar.xz": "bf27a86312ad097e3e2b60eb03fc522820733d91c7a6cf6741bfcec58e9e1166",
+    "2022-06-30/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "a5c31e2ca7ad9111afa4a224f746aafc7b7a0975d12940bcdac99a44e7093297",
+    "2022-06-30/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "2ebcd2124908165d3e25d5adf2e41c767c94f346191e970fec8adcf90ca38a41",
+    "2022-06-30/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "4a70ce8d621e30980770a14e31b164dc6a28c0946a6c94cd334c87e7663d41f2",
+    "2022-06-30/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "99a83dd14959fbaba789223a64330900c77c6ad223279c25190a21f4ae47fcb1",
+    "2022-06-30/rust-std-nightly-aarch64-apple-darwin.tar.gz": "4479b0fd89ae5ee5c01a9001dee91f3c9c377da3a507ff20b89c78abfba12c9e",
+    "2022-06-30/rust-std-nightly-aarch64-apple-darwin.tar.xz": "77baee524b110b32f3ad2bb8a9138454d7b19b1817eb43a8cbe9d5332b9d1085",
+    "2022-06-30/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "414ec3a5960d01e18ffb923c4a5207166bc24f4acb0a6975e82a715e02bb20bf",
+    "2022-06-30/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "38dd7e2f3f75a868e0da8f9ae6aa0d98926e37deffabdd1319fef4c8d957502f",
+    "2022-06-30/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "1b87f228260c152f05317c4866c4402646767ed5d16066e538d384f619885bc5",
+    "2022-06-30/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "7eb7dad8cef21e656364a223488b8c519a89069598a2dbf27648f73b4b064ec1",
+    "2022-06-30/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "5e5ff08f391197db6ad48f7c9764aa73cda798bca8903192e5e65650e4253e48",
+    "2022-06-30/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "b78eec08c2d6036e50e1adaf634752f3bbe1f2558142a78a5043ecc5ddd6a3f5",
+    "2022-06-30/rust-std-nightly-wasm32-wasi.tar.gz": "79230006a0aac28465706f75c712ae2be8a30a11d8a7b55d083041ee1b04ac1b",
+    "2022-06-30/rust-std-nightly-wasm32-wasi.tar.xz": "f49148f119a8ed533f7a17d2735c69c9289ca63570ddeaad8827c9f0cf7335de",
+    "2022-06-30/rust-std-nightly-x86_64-apple-darwin.tar.gz": "025cdb16064a5188387ecb492df16c50f141b5405c26099672fd5663a951802d",
+    "2022-06-30/rust-std-nightly-x86_64-apple-darwin.tar.xz": "c3ec8cc8c048303fa3fc52dd9249ad05971bca6b40a11470f2134aa8f304e23f",
+    "2022-06-30/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "dae075914f3c72275bd2c87b8b386e7f403b72ba00e2381fa9297e9ac8aea0ea",
+    "2022-06-30/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "7dcb44e24e55b92941c033949a4469d4e4cfcf7baa613e8987cbe0b136d771fe",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "8922a64a28bc7b97446ad76c6afc2d62d46bd37845e4fb3cf0c9e3ad1f4abd16",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "0998e12d6ead939e39f692a2f988f00a1da38822bc3a779f520ec99bf84645c0",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "783c0f8e34b175eae1536d9f2211052697c6608bd8ba870b2e35090a93bfc078",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "101de38295682107b985eb67ebba95fb8f98f6257df7964fbcfb4259e305cb0c",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "85287af62dc5c9a557c38113ceb74e06daa462ccddc67021b180fe611a89df60",
+    "2022-06-30/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "49ebf5a6dbad94137a0186870bf2ad9f2968e1f502352a2c24c4d20b29994aef",
+    "2022-06-30/rustc-nightly-aarch64-apple-darwin.tar.gz": "7261d051a1f13221141de59e4dd14f31984e600cf7d8562549d5b08cb11e590a",
+    "2022-06-30/rustc-nightly-aarch64-apple-darwin.tar.xz": "0e7594674004770595b4fc8a053b584f80b48f78626961d1a3101cf3d62416ce",
+    "2022-06-30/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "32567a36b8a42668a66eec075396f9e3fe9a6307cf12f7ab8f2251fc9d1e4ce6",
+    "2022-06-30/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "60c8929c8401eed997f96bb76185c1b3d5053ca3247f16686df0468018153ff6",
+    "2022-06-30/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "72f7887d5d3e9fa44381a079a15bd7d5b1ae42e5d176fe9c92599ce2dded91df",
+    "2022-06-30/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "1d18ca032b10be576e0df34093c5ecc76e60ff564fc41c1e3e7e6101d3e8d14b",
+    "2022-06-30/rustc-nightly-x86_64-apple-darwin.tar.gz": "5ee90bea5d56c405d3ac7abdad01994d74928655ed2d86184507d7ee1428d0cb",
+    "2022-06-30/rustc-nightly-x86_64-apple-darwin.tar.xz": "8890c50b8a3545e8698db391c472eb023022c03d7139f07700ec3a9ba00a6757",
+    "2022-06-30/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "dfb160f79c24f05cc500b1806b95edcea303b751bfdde3ddf40dbf8b41aff81d",
+    "2022-06-30/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "5c85b150f56cf9cc6ff7c6e55fe4f08589c593bbdb1d6544e7b68c1dbf00eeda",
+    "2022-06-30/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "0f59cf71cad5b3f477c3ce3f4e25dd12bed3a297094696f577973ed502976e3a",
+    "2022-06-30/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "ea59f7170700444d8e820a2effe81f871942fad0fd0f824ad63c273e8ff4c0e7",
+    "2022-06-30/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "9c887929f95811c105c7954bdf2bc796a6bfba6d3ac1b775717a9803e84ce687",
+    "2022-06-30/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "39dd07f27b59e4946d415f2f86fda74b0e13d33f983fa98a58c765228dff3792",
+    "2022-06-30/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "98e7c367bfc6d84235fdc8bdbec67abf2861dd3ac1484eea80f896f30b4e8ff2",
+    "2022-06-30/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "87643db68e0d854e57cb3bbf038b6619738fbd36d49e4f4d00fc85ca6d3ed856",
+    "2022-06-30/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "cb46e956522b01c23f713f8b4dd4637e756c38e6a349da28d8d7e39646318491",
+    "2022-06-30/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "6071be27b3cb4f1abb1f66b2d60b930b3e10940a558db71a351d25bd29d452ee",
+    "2022-06-30/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "daa3a05d91bee94bf16f3f316d50ef53e41d794f47b33fe6be36058fac43c937",
+    "2022-06-30/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "1c581a146a6e0c36fabf442aab3e5efc9997e50bda2e7eaebd3eb9defe3ea6f8",
+    "2022-06-30/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "014ad8d6fe7e861c32bbb0da96bdcddc373ee91242aaaf3e115d3e944a40c728",
+    "2022-06-30/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "fd930800586eda9dfee45c3a0ee71a5d39b3915c3cedbc43e74201eddd2390f1",
+    "2022-06-30/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "20f5fbb0da7fcc7cb962185eba9140ea52a7d1c55caf9514e9096b335b2d9e40",
+    "2022-06-30/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "a1bc6c967edaf64846c9a323faf201968b5d19a4874c24923c36175ce7c92a96",
+    "2022-06-30/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "5b26107dae9ed8849ce5f8f4b853c76bc3dfd7a8c482d2f88b24e366106895ae",
+    "2022-06-30/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "3f7898a83375e5d06d18215cefea37d1de42e4231c75463a025e905499403759",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "aa727bb5e776d6f69175e5e924981fe5a5731cb021ec5c3551d19b2dbb8ad8d2",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "84a0d167d0a1f679b1b2c537b950bc7714478a64f123b71666a681ecb3f64989",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "37c588978e81648cc8f27b0226a05c8313e8082197b02766994c2d32c593405e",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "cad27189fcd335d32bce8d3cf0eba886d1aeb8f725ae943d84da023e4bc358fb",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "f92a04f66ea56f0b0fd35bff40716cf736787d37fd11be8f0d37c3f28d1151c9",
+    "2022-06-30/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "ee6187a8e225ba0cb7906e5c67e368ff2d832069ac8cda4b1a1772a6b3563a66",
+    "2022-07-18/cargo-nightly-aarch64-apple-darwin.tar.gz": "75bb468efa17438d7b48f5ad39b8abef35707a47fa71b94cdf2fe7edd84faa28",
+    "2022-07-18/cargo-nightly-aarch64-apple-darwin.tar.xz": "a8b75017a5768d16898d1db8dab16ef9f27a3b7f4994f0e0db64ccadf4034154",
+    "2022-07-18/cargo-nightly-aarch64-unknown-linux-gnu.tar.gz": "a204e7ec6336d53e1111963ec70a98743f670da024a857cc6033c22096424f01",
+    "2022-07-18/cargo-nightly-aarch64-unknown-linux-gnu.tar.xz": "ab25a0b94e3d7f1507faa2edf5abde18fd7834dd8d6be8d47fab5b3716bb08c5",
+    "2022-07-18/cargo-nightly-aarch64-unknown-linux-musl.tar.gz": "ea5ccafc77c7cb19ab1edccbd3ad64ac5f8064e50fa9ba0049e8d4f9bedaafad",
+    "2022-07-18/cargo-nightly-aarch64-unknown-linux-musl.tar.xz": "d46e9dfa22a113ef93ac990dd8744f751af85fce0b344145520a734c9617c68e",
+    "2022-07-18/cargo-nightly-x86_64-apple-darwin.tar.gz": "b24e5f062f07c5f694a76e8ddd7afea015f02f9ac29454505e19588dd2986f27",
+    "2022-07-18/cargo-nightly-x86_64-apple-darwin.tar.xz": "dcec723e5ca218118463a040658a47c3048744b3709250c162290ccbd4238acc",
+    "2022-07-18/cargo-nightly-x86_64-pc-windows-msvc.tar.gz": "9f0707024042c3056ee354d8deba669fac5f5374d57ff08e5de35ec7805d88b1",
+    "2022-07-18/cargo-nightly-x86_64-pc-windows-msvc.tar.xz": "fc0c6ace77fdd726ff621e45aa2f8b4e655a90c206ad1d70c584658e075a9592",
+    "2022-07-18/cargo-nightly-x86_64-unknown-freebsd.tar.gz": "360319ec8e27391692d2b4957b11bf8bf1e6b196fc095450d6416a0ba1c5cb76",
+    "2022-07-18/cargo-nightly-x86_64-unknown-freebsd.tar.xz": "618ea8c695c0854bdbb3eb0e1f1c6010314194bca7ea432a8d8c1e3b7faf6d72",
+    "2022-07-18/cargo-nightly-x86_64-unknown-linux-gnu.tar.gz": "7b1c88fe7e91e75680a9756ded00a1af73632f5ade93d2f60803604ce74e83cb",
+    "2022-07-18/cargo-nightly-x86_64-unknown-linux-gnu.tar.xz": "d5ab5dd61e63d424546ad3c4ea24fee276e8d7362b66264f4a754d0ab94561e7",
+    "2022-07-18/cargo-nightly-x86_64-unknown-linux-musl.tar.gz": "06855b13a077e1b3fc792ac49cfb5c56afb4dedcee1a7758eb284e5f0341bccf",
+    "2022-07-18/cargo-nightly-x86_64-unknown-linux-musl.tar.xz": "00abe62d596b2fb15fbbaa2c51034b67d492f0aceeb3ee861a8481c6884f6557",
+    "2022-07-18/clippy-nightly-aarch64-apple-darwin.tar.gz": "802860668b449ce139f38fe3fb3f5c48112bee2d01391b3124555c9ea01d313e",
+    "2022-07-18/clippy-nightly-aarch64-apple-darwin.tar.xz": "635e0d80d456fec181ea0d0f592a5f81192dbd9fc05397d6f6cf3b3cbec027a9",
+    "2022-07-18/clippy-nightly-aarch64-unknown-linux-gnu.tar.gz": "f1932333ad655f8dc8f1f6e2c9c680c3cbc78a60e19a12b6063c4f34a6d844d8",
+    "2022-07-18/clippy-nightly-aarch64-unknown-linux-gnu.tar.xz": "562bbf2845701b23c4ef2884d2c74130e1ad78eb9f454d1211bae7148b826281",
+    "2022-07-18/clippy-nightly-aarch64-unknown-linux-musl.tar.gz": "7afe6d2b00bffae8a31ca76cffb735a8834966ab7f4b568f83a5306262979cba",
+    "2022-07-18/clippy-nightly-aarch64-unknown-linux-musl.tar.xz": "67a1a66a4dc4917cf5b561df5229b702725d40d1548b6b02577fc2f0cf3101e9",
+    "2022-07-18/clippy-nightly-x86_64-apple-darwin.tar.gz": "2c582cc0f8063c99c0a151dee9e10016f378e8287dc909112b269cf33bcfa544",
+    "2022-07-18/clippy-nightly-x86_64-apple-darwin.tar.xz": "4fe3c169e5f4fb4e552b3686a195e86efdc3659f249ada307a0aa0ea8dd6fde1",
+    "2022-07-18/clippy-nightly-x86_64-pc-windows-msvc.tar.gz": "f75f428f8e734b409dd1ba3820757c5aaa7661174471573749b1b96a473fdfaa",
+    "2022-07-18/clippy-nightly-x86_64-pc-windows-msvc.tar.xz": "84eb70af695b0559642ffdf8443a4d6e4b785c5b3e1bcecade339a4deab073ed",
+    "2022-07-18/clippy-nightly-x86_64-unknown-freebsd.tar.gz": "4d65b3583c3963657c8df4189934dc29b08e2a6d36d93c06f717e68158beaf45",
+    "2022-07-18/clippy-nightly-x86_64-unknown-freebsd.tar.xz": "95e08e3ed1f49504a80fc873755f43d78b78ca43afb4e9cadcdd62ee004f2d02",
+    "2022-07-18/clippy-nightly-x86_64-unknown-linux-gnu.tar.gz": "d19c29eddb75503f9b0d350e0bdc6d5fa56d034087f9a689349e5d87cc1356a3",
+    "2022-07-18/clippy-nightly-x86_64-unknown-linux-gnu.tar.xz": "2dcc21b8825d0d1e67be86dac2b1be14c5bd5db0a4bad868cc735251857b2db4",
+    "2022-07-18/clippy-nightly-x86_64-unknown-linux-musl.tar.gz": "6ae3da6937d7af6fbcdfc295f2fef0b693fbeded76a6ea9cc9fccaf55a3db5c6",
+    "2022-07-18/clippy-nightly-x86_64-unknown-linux-musl.tar.xz": "679851152079ded54fad7ec3b3785ef2b5bea79f748e7f856226e091b8ded626",
+    "2022-07-18/llvm-tools-nightly-aarch64-apple-darwin.tar.gz": "de61c4240a3c11beaf9ea03eecf357f0937ec64fc11b6f382f05a292717dde23",
+    "2022-07-18/llvm-tools-nightly-aarch64-apple-darwin.tar.xz": "2c7daffd0dbdd367b6233741420c6858d0a206c47bbc780b00d8807755f1f228",
+    "2022-07-18/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.gz": "ad24eb6b5b31bc732a1037133be2cf8807588b9d2d340e6b730a0e62e9dc14d6",
+    "2022-07-18/llvm-tools-nightly-aarch64-unknown-linux-gnu.tar.xz": "4736462786be9fe1e58cb849b29c902cc589a276d6f1070b78f6f887ee5e1d77",
+    "2022-07-18/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.gz": "364c14df4d8b38ab698943358dfc17f6ced4bfd81802c126bfadfd9da2568d30",
+    "2022-07-18/llvm-tools-nightly-aarch64-unknown-linux-musl.tar.xz": "48fda7fb376cf686026154fef3338c67d6c004ce62a078357d171790a564b3a6",
+    "2022-07-18/llvm-tools-nightly-x86_64-apple-darwin.tar.gz": "bf28aa75ea86ffcb905919d8166d258e6a9205f663979886d64c106931e00c7c",
+    "2022-07-18/llvm-tools-nightly-x86_64-apple-darwin.tar.xz": "167c7732ad5644d8f0d4540627d6fe7b66176aaacfc81825245d9dcf76a37678",
+    "2022-07-18/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.gz": "4e102dabf62df53f314c577641eef755f46e6085d93c597520fb39bc92bae98f",
+    "2022-07-18/llvm-tools-nightly-x86_64-pc-windows-msvc.tar.xz": "96e08affa3a762ace95454fe1e451e357dfe7e0e0562da8e63b6f2afc3ddf604",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-freebsd.tar.gz": "0e4fd034073fd775c02275e2dd9731430d723c6d7d0287ee929a17ce945de0af",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-freebsd.tar.xz": "85e9243082e15edf805b30eb2a0e43ec6054d057b821f7e3f48239a3ef15ca83",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.gz": "4667d016300f7e48dedbd2637bad7b40822e62a42e32da650f087cee7dc751e7",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-linux-gnu.tar.xz": "8071f0d4eda7f5a3a7b11ad2599b4bd340208bd8fd8fa0b091a095e8c2c3a894",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.gz": "72a135efca549e7efadc2f8c0b3dbfff66fa2afb20730bac651efc46d4509a50",
+    "2022-07-18/llvm-tools-nightly-x86_64-unknown-linux-musl.tar.xz": "52436599f8d6fea1edb1dce3412161a3e0c90d9a0ad12f5f1dc09e783a710ac9",
+    "2022-07-18/rust-nightly-aarch64-apple-darwin.tar.gz": "a8e0a387502e95d0092f61734b4da19d7b9b3115a35aee6f1f6ca50309ffd17b",
+    "2022-07-18/rust-nightly-aarch64-apple-darwin.tar.xz": "a5285d76e4bbc536e44e363d249526b5f102a01d79e6b131c3ff881d7b67b232",
+    "2022-07-18/rust-nightly-aarch64-unknown-linux-gnu.tar.gz": "fdd09e33e7a48ab983f239031a60c4d008e2337ff2f057cb583fa3211ae296b2",
+    "2022-07-18/rust-nightly-aarch64-unknown-linux-gnu.tar.xz": "705fe140913008aa74d448f2b9fb36d3905a5ab7a579204433ded07ea7f8367d",
+    "2022-07-18/rust-nightly-aarch64-unknown-linux-musl.tar.gz": "1cedaac34c83586329b300fb46d0164baa90a94075720a8c34736bf8a34a27cf",
+    "2022-07-18/rust-nightly-aarch64-unknown-linux-musl.tar.xz": "49bc8e2aa1357e33ff17e310c5a496c9fbe7e0ad60cd1c05c7d09cb4b8ba60e3",
+    "2022-07-18/rust-nightly-x86_64-apple-darwin.tar.gz": "d2f1d0638461ca41c1e0735c0ad7a1999bae9c76e3778ac63e53734214584e30",
+    "2022-07-18/rust-nightly-x86_64-apple-darwin.tar.xz": "b335174e1db2ef81007d9729498c92e6752501e46a375354b0912d8687ec9331",
+    "2022-07-18/rust-nightly-x86_64-pc-windows-msvc.tar.gz": "2ad7d5b5b18b17bbbf10a341b55396acccde1bef3578f50388188c449e148636",
+    "2022-07-18/rust-nightly-x86_64-pc-windows-msvc.tar.xz": "6bd8b423e93054df8111cc40af2a6a1833eff3667f91ef5aeba5011b70c92c9b",
+    "2022-07-18/rust-nightly-x86_64-unknown-freebsd.tar.gz": "8b10d055e9ca7a3a6736681876aec4df3030a47693dc2ba161edb96fe5b0a6c4",
+    "2022-07-18/rust-nightly-x86_64-unknown-freebsd.tar.xz": "0cebd0e279ee929a457b0403918f7beda60d7824b75649f4abe983e65f7bc1ce",
+    "2022-07-18/rust-nightly-x86_64-unknown-linux-gnu.tar.gz": "e20fc68c95bcd731e28418679ee1f3d6ef86215f6ebdce00f06e6a13fa1dddc5",
+    "2022-07-18/rust-nightly-x86_64-unknown-linux-gnu.tar.xz": "7357f4d15609c73f416edbca597ac7b914014bfbacf42ffc713426f97e010aca",
+    "2022-07-18/rust-nightly-x86_64-unknown-linux-musl.tar.gz": "7db6f84ed52db7ca67bbf55477ce3d0a106bab1da717152ac5cc9e38af3877cd",
+    "2022-07-18/rust-nightly-x86_64-unknown-linux-musl.tar.xz": "1abebe47e66397c81761011e0444c84243d192c03144009c8e41941dae599546",
+    "2022-07-18/rust-std-nightly-aarch64-apple-darwin.tar.gz": "775a5fc66c1afeba1a162ace909728648213614a620cfcd970b7786695497e31",
+    "2022-07-18/rust-std-nightly-aarch64-apple-darwin.tar.xz": "f7ae71284da008e0c2ac4efe9c4c103ee8ca2f509f1e7e36321857fddac79c79",
+    "2022-07-18/rust-std-nightly-aarch64-unknown-linux-gnu.tar.gz": "f2385d67b55d33aa14d2ced0c24696aca6bce58c62514ffdeafc471c52323711",
+    "2022-07-18/rust-std-nightly-aarch64-unknown-linux-gnu.tar.xz": "9e2a80681ae60554af79cda573afe2a0fc88e503552f8d5f9a8d3791a05eaab2",
+    "2022-07-18/rust-std-nightly-aarch64-unknown-linux-musl.tar.gz": "3be2ddc571cbc39093cc24c5c57646294c442d9608745e48265df6d8dcc6cbfb",
+    "2022-07-18/rust-std-nightly-aarch64-unknown-linux-musl.tar.xz": "28f3668e54115bc4a83d511fd2406733a12d8f94e7ee45a4a2f69c73989bc0b5",
+    "2022-07-18/rust-std-nightly-wasm32-unknown-unknown.tar.gz": "1ef74e59625735b20a4678ef19393f65322de51013a4f7b74b6274824ddec7ea",
+    "2022-07-18/rust-std-nightly-wasm32-unknown-unknown.tar.xz": "f506fc04713114309fcb08c71da700c6987ab539fe3c6ec3857d5d3a4eb7fe1a",
+    "2022-07-18/rust-std-nightly-wasm32-wasi.tar.gz": "01552e4b2cdbdbfd3a0581902b9e7713258860c10a85aed80e7e7cc3d8cd8c5e",
+    "2022-07-18/rust-std-nightly-wasm32-wasi.tar.xz": "88a9a2f6b1b85451ffd9f849c1ac97e370c430622da4cef221f595132c84f1ea",
+    "2022-07-18/rust-std-nightly-x86_64-apple-darwin.tar.gz": "dac908bc347e3807d8ddcb7ef70a8fa326d74507f7a9092c22b2e73b54e89f89",
+    "2022-07-18/rust-std-nightly-x86_64-apple-darwin.tar.xz": "d1e20950e41f08ed2a537e1ba6ab7b6f9e949c26f77cb662fdc10ddecd6571b0",
+    "2022-07-18/rust-std-nightly-x86_64-pc-windows-msvc.tar.gz": "1220d18ecd671f88cdfb8dd7e3cbcb467d2d08e9cb66a9dd48fd11916181386a",
+    "2022-07-18/rust-std-nightly-x86_64-pc-windows-msvc.tar.xz": "b637d05b44b0f85767ab4df1527a4c1df16b45bcfc5c1353e306b5df08f791a9",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-freebsd.tar.gz": "f1f2a6c1a174241a302b3b188f3d4407b863dad98dfb4a5665d357412e749df1",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-freebsd.tar.xz": "15f3f88905e191a5b80f5dbda32c6f02ee57bbd73d36ca5921fe85aa1d3f5317",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-linux-gnu.tar.gz": "fddd2016c18341295126b91916d30b6cd7a844a006a683e0ee27e1f84eb8f73d",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-linux-gnu.tar.xz": "409695e8f70410e4a1dfeae6fd08af794470a5c3f66798b8a61a3175a6a760d2",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-linux-musl.tar.gz": "cb931421d832440e21e9304e54d5f0dff3423cee50b420e0ed94a42fdf7db395",
+    "2022-07-18/rust-std-nightly-x86_64-unknown-linux-musl.tar.xz": "66db004714b66af77b6df304c015d027177648cc888fae273279e2754602632e",
+    "2022-07-18/rustc-nightly-aarch64-apple-darwin.tar.gz": "b7b6d8b4b3ece745ab82774e27b324bbf664106ca9640867df1ecee80fa43033",
+    "2022-07-18/rustc-nightly-aarch64-apple-darwin.tar.xz": "416ac4817dc671168d3cc2cb784ee923ed4defe3fb731be0703fd5ff45b0e75b",
+    "2022-07-18/rustc-nightly-aarch64-unknown-linux-gnu.tar.gz": "6fdfc79838f4fbcdb01b9431b827507b32dae374c49b2a5bda018a36240e82d0",
+    "2022-07-18/rustc-nightly-aarch64-unknown-linux-gnu.tar.xz": "6ca1130e48ddff59898deead8078b023df4b52e138dbfd848ed0921a49988f80",
+    "2022-07-18/rustc-nightly-aarch64-unknown-linux-musl.tar.gz": "89149126446782582d76f748b285dd5c7d192e736f86266bfa62fc2e777fcf24",
+    "2022-07-18/rustc-nightly-aarch64-unknown-linux-musl.tar.xz": "b334bef98e282267e9e2b2abf5301ff114efe4824c2f5ecc2792827ba89769bf",
+    "2022-07-18/rustc-nightly-x86_64-apple-darwin.tar.gz": "bb95ad994f2c85d5bb450abb5bb76b9041a627f0abeb625a95197226b0da5c7f",
+    "2022-07-18/rustc-nightly-x86_64-apple-darwin.tar.xz": "97a1c0849c4daa496bf8130c8cebfa6d4b9072bbccf5dde1d2f0c3f8ed31c6b3",
+    "2022-07-18/rustc-nightly-x86_64-pc-windows-msvc.tar.gz": "5cacd5e64c0652fead45e008b26c00e097e2cf966bab53b0dd3a66fd3d17c2b6",
+    "2022-07-18/rustc-nightly-x86_64-pc-windows-msvc.tar.xz": "b0e404d0a2e1767af42fdfe0c5d7465970830d76118490a06fa827e980ae9193",
+    "2022-07-18/rustc-nightly-x86_64-unknown-freebsd.tar.gz": "91cd87ca40d737d0f59d268ec8697f9a4f731b8555cba8323d0850e76bdb920e",
+    "2022-07-18/rustc-nightly-x86_64-unknown-freebsd.tar.xz": "75b4f0f6e9188b7bb2931a75d117d25b47e60bf70ca207e925df1625b98d56eb",
+    "2022-07-18/rustc-nightly-x86_64-unknown-linux-gnu.tar.gz": "c6a9fbf4e71b0e041931f736f272d9ceb5693bf073c24f6a93bf0c8563d47cd2",
+    "2022-07-18/rustc-nightly-x86_64-unknown-linux-gnu.tar.xz": "a71bce9c5a01fc4d67ec577d64f48371174e0180d649393c3c825c1c50b69b7c",
+    "2022-07-18/rustc-nightly-x86_64-unknown-linux-musl.tar.gz": "b89290d389e2271be3a273cec5e949ca51cd0c83831274825bc6bbe0970f7586",
+    "2022-07-18/rustc-nightly-x86_64-unknown-linux-musl.tar.xz": "5cfd8994fff435e7a01e14830f01ac4c4ca4e771a7bd1ebafbc6f5545a56245f",
+    "2022-07-18/rustfmt-nightly-aarch64-apple-darwin.tar.gz": "0eb8c4d52af4803102433134569a964e851b65c8e9e817c2988432d274c8fb79",
+    "2022-07-18/rustfmt-nightly-aarch64-apple-darwin.tar.xz": "ef2a01456abc2b87aa9cc4b6b57586d356665c151a4d11232aa310f89548bd8b",
+    "2022-07-18/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.gz": "f1c89a6d90b3e70bd24bc9e1b2c33d7be6a9893cb5a586f97b60dac41bbe2734",
+    "2022-07-18/rustfmt-nightly-aarch64-unknown-linux-gnu.tar.xz": "875e638ec4f0d9e11210b6be474915c93010b23ba402a1410bb4b7a35638c945",
+    "2022-07-18/rustfmt-nightly-aarch64-unknown-linux-musl.tar.gz": "3a94042860e31a40baf0c93bf43151e53452722d39c4d71edac0b622d2d45ba2",
+    "2022-07-18/rustfmt-nightly-aarch64-unknown-linux-musl.tar.xz": "27225572678179a94ced727cb51ac21ea3196da486e6e641a115cf6338c9a534",
+    "2022-07-18/rustfmt-nightly-x86_64-apple-darwin.tar.gz": "1c8f7e68b57c496705ac06fac4115eb2537596bd9ebc12a30e37e578244852ea",
+    "2022-07-18/rustfmt-nightly-x86_64-apple-darwin.tar.xz": "43b3ed1d52cd741f15890b3787664d2dc7de687a68ee2700a47b4af939417cbe",
+    "2022-07-18/rustfmt-nightly-x86_64-pc-windows-msvc.tar.gz": "87dd0a8f6693a4a4dd9029ed70061f0d4db349c01879fe0ab93b2a9fe155765e",
+    "2022-07-18/rustfmt-nightly-x86_64-pc-windows-msvc.tar.xz": "3a0b7c99da06ed4c93aa8de89ac0e83cc10a77531f4e87f44f487edb87577796",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-freebsd.tar.gz": "d3a9a7d08a9f6ab6e651f0703af1301c780ec451887bc566e10e286f7e95558f",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-freebsd.tar.xz": "b962c63605dc60bbdff2b9e8beaf490c6f2c12d9519964de7347120d19cf176c",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.gz": "a362b4e512f53d3736b9e48bbde9f2119cd39ccc3a348fa6a4908fcb5eb5ca18",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-linux-gnu.tar.xz": "33abaea1a4ebce88ff58354d2bab2d983419600c0c8d3b352e4e6f8c56baf2f5",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-linux-musl.tar.gz": "8c83332af6a06c6171a99754c19755d6496f9f200a4bd79c634cd14df4866f9d",
+    "2022-07-18/rustfmt-nightly-x86_64-unknown-linux-musl.tar.xz": "704c90da2cc18a189f5d3e3f4a36aaea26b5f4917086900114c4325008436819",
+    "cargo-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "71347016f0da96d4250225f7b52701274df958870b1a65482badb87d661035f9",
+    "cargo-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "9ea440709cf51cf28110847fd769e7fc937a01d03500edec5232408c4459fc80",
+    "cargo-1.48.0-aarch64-unknown-linux-musl.tar.gz": "873883a9f6eb2e0cae7dafdc6c4262157298b7bc6ac5c3ed899ed1f55cad7e82",
+    "cargo-1.48.0-aarch64-unknown-linux-musl.tar.xz": "8469e522c512d03a410462f2efacbc5b571bfb6d6ce824f1deebec26fd023ec9",
+    "cargo-1.48.0-x86_64-apple-darwin.tar.gz": "ce00d796cf5a9ac8d88d9df94c408e5d7ccd3541932a829eae833cc8e57efb15",
+    "cargo-1.48.0-x86_64-apple-darwin.tar.xz": "89c7d6d614a92071d3d1266508669aac2ec9f75e2aef78121f0af4875548352c",
+    "cargo-1.48.0-x86_64-pc-windows-msvc.tar.gz": "c1287b03522828b527ba95a5bc9de0246efa4365a43d22a212f50a5ca2ea1487",
+    "cargo-1.48.0-x86_64-pc-windows-msvc.tar.xz": "08a070d8b82af69764f963c82aa6bc7f7d18edaac0a8ef84608f7284bff55a87",
+    "cargo-1.48.0-x86_64-unknown-freebsd.tar.gz": "55fcdad2ac3a3f8066c323f75fb2b222822023f8b9961317d710f2f43771aa62",
+    "cargo-1.48.0-x86_64-unknown-freebsd.tar.xz": "2f98e263c3cdbbe22a931658ebf057aafc1ecc9272d6f097ebb13475e3f45728",
+    "cargo-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "52bf632e337a5e7464cb961766638e30dfa28edb3036428296678d1aaf7d8ede",
+    "cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "b11d595581e2580c069b5039214e1031a0e4f87ff6490ac39f92f77857e37055",
+    "cargo-1.48.0-x86_64-unknown-linux-musl.tar.gz": "0dd47d6342b17bc6c0fbf9ec007be0c90274e40e76d8e6a88cac73ecafc1583a",
+    "cargo-1.48.0-x86_64-unknown-linux-musl.tar.xz": "8728cb7515e593f6fcf3c7afba826a92cd227a35b8e936bae892b95482d4fb90",
+    "cargo-1.49.0-aarch64-apple-darwin.tar.gz": "2bd6eb276193b70b871c594ed74641235c8c4dcd77e9b8f193801c281b55478d",
+    "cargo-1.49.0-aarch64-apple-darwin.tar.xz": "d6bcefea3f24f9843ab19c089741f37393628ef157cdd50b984ce4e32df002b9",
+    "cargo-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "fce2bd0eabf9a9958b02f5ede3c227c992ee7048ab34293cce57bc3d48e63fc0",
+    "cargo-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "782b635dbba6eb88e053f5bc40ff54a4dcf7a8e0419fb4f684cb758f9d53a6dd",
+    "cargo-1.49.0-aarch64-unknown-linux-musl.tar.gz": "18b4fa2d7a737754ae2d5ce3a2f8c8881fc4d9b5aae20109d7d3d622cf3ac145",
+    "cargo-1.49.0-aarch64-unknown-linux-musl.tar.xz": "24c98aa9730286a65296f7b931ea3bff9d5b81583cb2e286226d08f05896a089",
+    "cargo-1.49.0-x86_64-apple-darwin.tar.gz": "ab1bcd7840c715832dbe4a2c5cd64882908cc0d0e6686dd6aec43d2e4332a003",
+    "cargo-1.49.0-x86_64-apple-darwin.tar.xz": "d99d636d575247caef2d26e96bac082f72a6a39c408c3e3c4cad3d47de42020b",
+    "cargo-1.49.0-x86_64-pc-windows-msvc.tar.gz": "84b44835a3f275fef70cd86a527d086c537e59fb3209fe8bbef1eeb1da6edbb6",
+    "cargo-1.49.0-x86_64-pc-windows-msvc.tar.xz": "937672fab733a8d98bfd8a25a83101fd4433f026395c051326ae006d0053bab9",
+    "cargo-1.49.0-x86_64-unknown-freebsd.tar.gz": "320aac1e31eed2db657380bce2d8ff8b65fc8de59f4aadabf8219bcb6b4ce1a1",
+    "cargo-1.49.0-x86_64-unknown-freebsd.tar.xz": "57bf92166f288e7330c7419286687552f7746eea65cfe6e0815dbdfb078aaf45",
+    "cargo-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "900597323df24703a38f58e40ede5c3f70e105ddc296e2b90efe6fe2895278fe",
+    "cargo-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "031eb3e4d88c6c53dd6f19de524b15377e7fcbd2744302658cf7d2afbba6b781",
+    "cargo-1.49.0-x86_64-unknown-linux-musl.tar.gz": "c2a3d3b27ac105acf7bfc25d6e401b9ac369597f57220332377b98b2f8cb550b",
+    "cargo-1.49.0-x86_64-unknown-linux-musl.tar.xz": "084dc2259379b502abd53cbad6044ac38c0b7e61f7ad5eb13cc988ad000fb093",
+    "cargo-1.50.0-aarch64-apple-darwin.tar.gz": "19d526ef3518fb0322f809deddbd4208a27d08efa41d2188348f1be8d3bcfe5e",
+    "cargo-1.50.0-aarch64-apple-darwin.tar.xz": "1113dd43e6ab92d982fdd38d07b65bb014b5b3dda6a19cb35a41dacbe964676d",
+    "cargo-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "9b6fbfec7f6d14013387433f3a907b1f474027d7f32f626dc1c5ca83faefe573",
+    "cargo-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "f3c772f455406f67991ac20cff56a4fcd2d01454e29280c566119ab5180307ea",
+    "cargo-1.50.0-aarch64-unknown-linux-musl.tar.gz": "7ec67e55fe541cfe32221e9b69349d2de83a24f7967f58eb4dc06e59f321babf",
+    "cargo-1.50.0-aarch64-unknown-linux-musl.tar.xz": "ca9a8d15826310ac52edfed10866bee570a17ccb914eb6be23d5a86d9262738b",
+    "cargo-1.50.0-x86_64-apple-darwin.tar.gz": "45640bb1cef40f25ecb4bd2a3bb34fdf884c418e625d4f9c9595d2aca84fad78",
+    "cargo-1.50.0-x86_64-apple-darwin.tar.xz": "329e9846f3d8bb721274731ba38f80934d08cf75c4292abe44dcb39f186b8ed8",
+    "cargo-1.50.0-x86_64-pc-windows-msvc.tar.gz": "dbd97ac5645668149d4a32b0b5f6274934d95f8b6d6e6926b7de13ee869aeedb",
+    "cargo-1.50.0-x86_64-pc-windows-msvc.tar.xz": "d682f7a7668f95dc83b397ab3fc9e6645cdfd01719201ae66016207dc749961f",
+    "cargo-1.50.0-x86_64-unknown-freebsd.tar.gz": "97cbdc9b94123e940f7ed7304aba418a1a10ee1cca5acfe302e841ea39efa190",
+    "cargo-1.50.0-x86_64-unknown-freebsd.tar.xz": "fbbbf8234b3dd8d875eaaf8ffba23ba29ac879846dd09f1284ab311fad9105f7",
+    "cargo-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "3456cfd9be761907a4d3aae475bd79d93662b7aee4541f28df3d1f7c7d71a034",
+    "cargo-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "3cb2c68e987e5681fca9c930973f408a71151b1b255e69669a08e54d446ee803",
+    "cargo-1.50.0-x86_64-unknown-linux-musl.tar.gz": "f1f99e1cfacaa69a12c4ee7ffd767bdcf80eb4d4b0e71af545e8e16b2b22d799",
+    "cargo-1.50.0-x86_64-unknown-linux-musl.tar.xz": "fda80f13606ae7b04ec420dd97480b362baf9ef9053aa9aed542ac8097a4e053",
+    "cargo-1.51.0-aarch64-apple-darwin.tar.gz": "3eb0eb6192635c4b844deb97004a7e38a631bb4507b1284c055df8533c00e77a",
+    "cargo-1.51.0-aarch64-apple-darwin.tar.xz": "1bf7bf8bf75a9ae645080373211f1b40b8cef789091cf59580453f5e7a8e4c43",
+    "cargo-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "eeeee860ec47ebe1c45f497ff99cfee9c869a592db573cd547a67681db695616",
+    "cargo-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "971d00bbbe885f57296e9670e1368e445a0e02e6241a4ae29515b41ec109a0dc",
+    "cargo-1.51.0-aarch64-unknown-linux-musl.tar.gz": "297a66f911298c55e7a494286769c045184e7b65fb3dc0a56d5a00d8655c6341",
+    "cargo-1.51.0-aarch64-unknown-linux-musl.tar.xz": "56dd0914bf1076abcae730ad546c5593d17e03748aa2ec9e6363ac654e461b97",
+    "cargo-1.51.0-x86_64-apple-darwin.tar.gz": "37eb709e5ed8fe02d2c8d89bc0be3dc1d642cff223c25df311ff5a82eab53d4b",
+    "cargo-1.51.0-x86_64-apple-darwin.tar.xz": "c9adb9746b59032df82a304c8f0288332797b8e7d58d42d5a25e5a032da75311",
+    "cargo-1.51.0-x86_64-pc-windows-msvc.tar.gz": "ee232ab24aa57f3c57218a5886af673725ecff38ad58e8d75257d4fd0c86b148",
+    "cargo-1.51.0-x86_64-pc-windows-msvc.tar.xz": "07c9d3e8b83eb075c9e019b401494f0b9009a8cf67e5862c01231eb60181a9d6",
+    "cargo-1.51.0-x86_64-unknown-freebsd.tar.gz": "fb2b8a5fd787944392adec0593f6921131069a5a95c1f53be75f98451d918300",
+    "cargo-1.51.0-x86_64-unknown-freebsd.tar.xz": "0f1a45f0854bbe2093de6179e55962a17996c7a350e819a25b0004851b087bf9",
+    "cargo-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "fe8abe2c2b467ac5f5021ff8020eda70de9e9f8f45b4a2e834afbd3b78323a31",
+    "cargo-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "2c557e448c145ed773baae0d6533449947bb130f8f8a2a0876d08f55b74a313f",
+    "cargo-1.51.0-x86_64-unknown-linux-musl.tar.gz": "3e3f1ca2aba2d7195bc447f4e446bbf6c8803f42ebaaf7a32e7f92268cf2f6ff",
+    "cargo-1.51.0-x86_64-unknown-linux-musl.tar.xz": "16ce1d5b31d52bd54975d4d22ce76bd9085cc1d1f595791944d120a0294cb9d9",
+    "cargo-1.52.0-aarch64-apple-darwin.tar.gz": "86b3d0515e80515fd93612502049e630aeba3478e45c1d6ca765002b4c2e7fd8",
+    "cargo-1.52.0-aarch64-apple-darwin.tar.xz": "1d40171c3af7b108fdf2e823772cfaf37375b3b5f721a5ec545b255fe32b5076",
+    "cargo-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "4a7f07bd9f30ed0409a21fad831afec0b9d0d10b5bca10cf826fdefe04a4f4f9",
+    "cargo-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "ac56f64a5b756c62b88cf7ac03b08f8778adcd5a0e40142cbac4262288264580",
+    "cargo-1.52.0-aarch64-unknown-linux-musl.tar.gz": "472cd83b79e173932ff436e77802c217599f73f672e88345bb61105dddf2a2eb",
+    "cargo-1.52.0-aarch64-unknown-linux-musl.tar.xz": "cf80261f6a3d0cf5feac52c3316ac47d778217a22dd4b174c60ad349971a96fb",
+    "cargo-1.52.0-x86_64-apple-darwin.tar.gz": "02a4be4aae1c99ca1e325f9dbe4d65eba488fd11338d8620f8df46d010ffbf3a",
+    "cargo-1.52.0-x86_64-apple-darwin.tar.xz": "530b1dbd84784e8b2e9831e93520bb4192477a0bc2d0075f06fb9d733862d282",
+    "cargo-1.52.0-x86_64-pc-windows-msvc.tar.gz": "866fc858fc422fa52afdabfb5feaf6e6aed41c575d6edfd4f343425faaf01023",
+    "cargo-1.52.0-x86_64-pc-windows-msvc.tar.xz": "d628789445cad294487b4ea268a0c72d707ddc440430a14f4b9032fe37bb4e5c",
+    "cargo-1.52.0-x86_64-unknown-freebsd.tar.gz": "c732090f26a36211de084fba0ffcc8d1b49591d935d3b4ebd515a9570043aeb2",
+    "cargo-1.52.0-x86_64-unknown-freebsd.tar.xz": "aa228f9b30bd239a358cfb3ea461b54f396f5b62fa35d4de3d2765ff545992ef",
+    "cargo-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "85151d458672529692470eb85df30a46a4327e53a7e838ec65587f2c1680d559",
+    "cargo-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "d0931a1e728afdfbe3390a2ff3a5256d1668402298a3a6c050ac65ad01c4db2b",
+    "cargo-1.52.0-x86_64-unknown-linux-musl.tar.gz": "ecb7b4968ca1b19c09ac3de9ea60420e8435c32e25f7412c19a0ac3f9dcb3363",
+    "cargo-1.52.0-x86_64-unknown-linux-musl.tar.xz": "680dbc224f2a1d9a33a256b15be8d1c58dbdfe88aae3ca9c2b0f805fea568ab3",
+    "cargo-1.52.1-aarch64-apple-darwin.tar.gz": "6787f8746cedd005b7abeabf6e2250ebc5fa767486c5bf23c597298e6965d576",
+    "cargo-1.52.1-aarch64-apple-darwin.tar.xz": "d345b60b5f66df9b088d40e474a75ead382ddf3aecc80d54b11a6783a87f2e7e",
+    "cargo-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "d2e15beebe22b6f6380d233f48599fc1b9228b064f0915eea02b2376f0bde1e1",
+    "cargo-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "3106a825d00f7bdd7880433c0f6bbcdeb516bedf42b3384a8ef96e785e67d769",
+    "cargo-1.52.1-aarch64-unknown-linux-musl.tar.gz": "dc8f6cf0c02f68b05b470087cd611cc4107060daae64f9d09677e97389c51281",
+    "cargo-1.52.1-aarch64-unknown-linux-musl.tar.xz": "f4b3353d36c4ad05bed8bb165b39ac958ddf5e83bf7a2ef5a5741fb28cccf727",
+    "cargo-1.52.1-x86_64-apple-darwin.tar.gz": "40d8fe950202763f633b6dd927f8e546e0a44b4b959945310c9eeb77f69e72d1",
+    "cargo-1.52.1-x86_64-apple-darwin.tar.xz": "d5980d68c23ed2f416f04ecc1faa4cd144f0d07c57ada31f490b4905a16bc6db",
+    "cargo-1.52.1-x86_64-pc-windows-msvc.tar.gz": "bb25d1ca297ac99a1dde7ce537880c1f5a37e392257b5aba589938b4f1bbf659",
+    "cargo-1.52.1-x86_64-pc-windows-msvc.tar.xz": "7254e8678608e1bcd32ed476ae7bf0527ba19b1ff63fb7256e7be225e0601286",
+    "cargo-1.52.1-x86_64-unknown-freebsd.tar.gz": "67f858cf9e46fb7efe825adb854302e187ad194d05ded1e7b8ce165607869947",
+    "cargo-1.52.1-x86_64-unknown-freebsd.tar.xz": "c90a364a8f749804e1a5559b3c9470142f456e8ebf6501e3efd5df5132247dd9",
+    "cargo-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "f3225c27ce16296400389285358b61e138811c2e0eb1388593817688145ab64d",
+    "cargo-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "e9f2ddeb8724cf89f4d6b6d88abdecbe27d9eac1b05b1c3a25f9e5573dd42f9f",
+    "cargo-1.52.1-x86_64-unknown-linux-musl.tar.gz": "300c30d1ad47c84a8d806ef492db2478bc7c17793b92513533166bd9d9b51857",
+    "cargo-1.52.1-x86_64-unknown-linux-musl.tar.xz": "e3e6a06b90def6864d6fe3b9a3f0b7abed354d9661efcca33ae7b47bde032ce3",
+    "cargo-1.53.0-aarch64-apple-darwin.tar.gz": "5f0aea0cd507ff6e3b1e1ae54a8726172d055a8b6d8b1ba550ce9ebc96a8a891",
+    "cargo-1.53.0-aarch64-apple-darwin.tar.xz": "0d82e353e4ba36a85cc5adecf4a3824629187f59e1136be4a9767734a59ca596",
+    "cargo-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "7c35c086e294af3ae82df5609c6833a36bd8e6634e8ecca18f863829cfe80ca7",
+    "cargo-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "4fa425a2d4633aeca67fa42695b3b9100f8b988dd1c21e60d6b2aa1164e55c0c",
+    "cargo-1.53.0-aarch64-unknown-linux-musl.tar.gz": "9c0e9137aaf5c13f9d65487ec3216fe39280f387be4133da088355e263ce42da",
+    "cargo-1.53.0-aarch64-unknown-linux-musl.tar.xz": "767e35e3a6104b89dacd0ce46d890c5a60133756c2db1a326d4e69eae3670574",
+    "cargo-1.53.0-x86_64-apple-darwin.tar.gz": "b42f4a7d054e219d8744af48cfab798473981455a050a320c46b164382726e50",
+    "cargo-1.53.0-x86_64-apple-darwin.tar.xz": "4c701b7d921051786abca50af4d535824aa3e167f14a61086b66d0dbd0288d42",
+    "cargo-1.53.0-x86_64-pc-windows-msvc.tar.gz": "7ab1bfdee65f19cb60671690566b89e3a0f210f04dd53078786f6c708b523223",
+    "cargo-1.53.0-x86_64-pc-windows-msvc.tar.xz": "30925e8eda2b424080fe321de73960eafdba958a9ee1fc436d7aa5d063d3a194",
+    "cargo-1.53.0-x86_64-unknown-freebsd.tar.gz": "3e2c5681793c86f21133ac7b26aa5af4525b8471ec5df840d41d0e563fb675c8",
+    "cargo-1.53.0-x86_64-unknown-freebsd.tar.xz": "17f18a0193a80721172fb5dd926946feb5d5222d99fa39d374434f8c44cb7924",
+    "cargo-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "e79d9d0b03cb331428ef3cfc4cbe60ded9f90708a7dd1714d974dab9a03ee7b3",
+    "cargo-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "e4437f6c83574fc60e183f4df439190f7610e4a669476802795645da66fbb83b",
+    "cargo-1.53.0-x86_64-unknown-linux-musl.tar.gz": "d8f632c0b2f8abafb1149446c695a8a7024134fa62faa37ac8922a41dd66c95a",
+    "cargo-1.53.0-x86_64-unknown-linux-musl.tar.xz": "ca236408cb2c35b8c3f7c2b4e9f1e69422ed24153f445192eafb6462351e5c2b",
+    "cargo-1.54.0-aarch64-apple-darwin.tar.gz": "7bac3901d8eb6a4191ffeebe75b29c78bcb270158ec901addb31f588d965d35d",
+    "cargo-1.54.0-aarch64-apple-darwin.tar.xz": "5207644fd6379f3e5b8ae60016b854efa55a381b0c363bff7f9b2f25bfccc430",
+    "cargo-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "d54d0bde0014e73a9c6943665bd236e5596c86d58869bc758aa6c24a9ad53061",
+    "cargo-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "b3b6e5358bf1ecd5d8d7e258a5632dac7d923b2aa8ab1c8c0f6aad62d9307b37",
+    "cargo-1.54.0-aarch64-unknown-linux-musl.tar.gz": "2dd6ecd46b769efbb397794e5bad4249779be3e91738efd26a7673fa728a5ac0",
+    "cargo-1.54.0-aarch64-unknown-linux-musl.tar.xz": "4db9e41713630fd559d42ac67e5d9c6c94daa40fe00279d3b5fa2bfe537d1144",
+    "cargo-1.54.0-x86_64-apple-darwin.tar.gz": "68564b771c94ed95705ef28ea30bfd917c4b225b476551c998a0b267152cd798",
+    "cargo-1.54.0-x86_64-apple-darwin.tar.xz": "f39796d6a1c721757bb3f09fb653b6f7d38e166a6e3ae3904e956a4a2c2e9f69",
+    "cargo-1.54.0-x86_64-pc-windows-msvc.tar.gz": "ad8808314e36af5de8e3e8e519c4e73d30b56a8020418aec2fd1f0f3d2d7a8f6",
+    "cargo-1.54.0-x86_64-pc-windows-msvc.tar.xz": "eeed5865ea80dc0f0fa8cf2755ba3f3f5fadb6ce5d3d707b0847f14cbe37c6b0",
+    "cargo-1.54.0-x86_64-unknown-freebsd.tar.gz": "3a2612b2073f5d3b45a4c88f359a8f5e2b86b85f7ef68bda518f532339f01227",
+    "cargo-1.54.0-x86_64-unknown-freebsd.tar.xz": "095f3b60ffad3b963d3ccadf73842bcdcf1dc5dc4b48d7684eeae9c77c433cc1",
+    "cargo-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "8c4f404e6fd3e26a535230d1d47d162d0e4a51a0ff82025ae526b5121bdbf6ad",
+    "cargo-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "8a9c80b7dc5d47e6eafe173b81ad96244522c97d74214ba7da57a502d49b231c",
+    "cargo-1.54.0-x86_64-unknown-linux-musl.tar.gz": "d6e2d8e2075f433b3a607b95ef170a85fc0b44356905111004d23a9b72776b0a",
+    "cargo-1.54.0-x86_64-unknown-linux-musl.tar.xz": "9a26b73e578227d111b221932d7cbeaf4b41f27a0f7597a49efb81e2bd0791f9",
+    "cargo-1.55.0-aarch64-apple-darwin.tar.gz": "9e49c057f8020fa4f67e6530aa2929c175e5417d19fc9f3a14c9ffb168c2932d",
+    "cargo-1.55.0-aarch64-apple-darwin.tar.xz": "7b33a1fc8069155dbe70de88449c2ece67cc844d3cea0162bab9227997da3d4e",
+    "cargo-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "48bc8751f548b08643fbdea7756ccda35f0762492e95ea41ca41137290f56513",
+    "cargo-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "0edee54dc42401e2a9a64556b6826fca8c9739d4a5766929b29ae02edece68b9",
+    "cargo-1.55.0-aarch64-unknown-linux-musl.tar.gz": "01ac6a21d74ac66a33e58d2d5766c4c90673be0e8385893da4e178a0ded56299",
+    "cargo-1.55.0-aarch64-unknown-linux-musl.tar.xz": "a529c2f2c956c323358e6ec13c23126b249cea0125b6adbd612ce406098de24e",
+    "cargo-1.55.0-x86_64-apple-darwin.tar.gz": "4e004cb231c8efbd4241b012c6abeefc7d61e2b4357cfe69feb0d4a448d30f05",
+    "cargo-1.55.0-x86_64-apple-darwin.tar.xz": "3c5a34e0533bb56795823477a3db2a13214da696cb78b14728e7b1c79746d7f2",
+    "cargo-1.55.0-x86_64-pc-windows-msvc.tar.gz": "2bc59373437d25e5cb9d4f573fa187078c5a924a244366787ce04106d3972f6e",
+    "cargo-1.55.0-x86_64-pc-windows-msvc.tar.xz": "9ccaeb794f08923fa8e16ed5b2542d99bd00a32961cbbfba784d2e31a4228dc1",
+    "cargo-1.55.0-x86_64-unknown-freebsd.tar.gz": "f574b15dee6c52f25076bb657f3e3129b5828a2617c82f2e1c4101e0bd21a880",
+    "cargo-1.55.0-x86_64-unknown-freebsd.tar.xz": "f44fab9f54be57bf8100d78cbe07ae7e709431376a2a119e643640911a5d4143",
+    "cargo-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "bb18c74aea07fa29c7169ce78756dfd08c07da08c584874e09fa6929c8267ec1",
+    "cargo-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "1ab9296faf1909fe3ac619ba208aeff905c39124504991c14e06462b9328493e",
+    "cargo-1.55.0-x86_64-unknown-linux-musl.tar.gz": "d91efc8e7a71845dcec9ec7db1edb6765cba5ded69d3ab734f549d6875b52e97",
+    "cargo-1.55.0-x86_64-unknown-linux-musl.tar.xz": "9faa4514576c4beafcc7b640a17b57e8103f2f9c88f646c216ccce90b1a0cdf2",
+    "cargo-1.56.0-aarch64-apple-darwin.tar.gz": "ced26df8edddcb7ebdedd2997b9005fc9a849e57b1b82f3aeba9241039f7b958",
+    "cargo-1.56.0-aarch64-apple-darwin.tar.xz": "f87f0830415d0a31c6bf14e9b2eb9240724887ab30610a89bea8855bd5b44860",
+    "cargo-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "3a3b0b74a18247db46badc1e94285fe5e60ad0e9c18fd2dbf15878aa56a5994a",
+    "cargo-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "9d97cd655845572846c058577f68ea74b6111f8ea7649db308f786475f764a09",
+    "cargo-1.56.0-aarch64-unknown-linux-musl.tar.gz": "bf24b7df97d93d61f6c1ed8382d99400c4197939502b14904c40ef96bb2abab5",
+    "cargo-1.56.0-aarch64-unknown-linux-musl.tar.xz": "7a6054d76019c583b6f36e4a32260a3b385e0e7358f12be72665b2a090eaabf1",
+    "cargo-1.56.0-x86_64-apple-darwin.tar.gz": "63b6558712050e7f8c57cac0b5b7cb2cafc125d157d9f4bd82f6f47b4648ed0d",
+    "cargo-1.56.0-x86_64-apple-darwin.tar.xz": "44f3ca081aac335179d2442daeb3cdade1ca8ae8892da2e7e0d33985e1a9bbf5",
+    "cargo-1.56.0-x86_64-pc-windows-msvc.tar.gz": "319ae8cde721f611ddf673a4aad21b145aec6577ccb75d40ad0856cbab9a2cfe",
+    "cargo-1.56.0-x86_64-pc-windows-msvc.tar.xz": "41d5887fea46276e6a3be273a598ef6115b83dd587ce086c287f0c5155f911c6",
+    "cargo-1.56.0-x86_64-unknown-freebsd.tar.gz": "e1e7400a16c7cb1d2ac83e567c8c23f04fb6ccfcb7b6d1978d327da6edc879f6",
+    "cargo-1.56.0-x86_64-unknown-freebsd.tar.xz": "ee042f70b6f3c22ef5d5d868db3f9d6793767056df6b15d18b42887e6434f734",
+    "cargo-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "e74bd0038893e76393f67a58786ec33ef9251cdb65550b3a2a8117c7355ead71",
+    "cargo-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "f972125810d2db7df2e0af56d9f6a3dcdacc52d983bdf0ca17309b45fc44209b",
+    "cargo-1.56.0-x86_64-unknown-linux-musl.tar.gz": "efadb9f545b6ce49d4a861ae7e75f0ce02a6fedb9e5b30e7810dcb4854ca6799",
+    "cargo-1.56.0-x86_64-unknown-linux-musl.tar.xz": "da68aabebb6352eea0a8737ad14de93f04a0ad3c79e5d9644cada87ba0663e80",
+    "cargo-1.56.1-aarch64-apple-darwin.tar.gz": "6ed30275214e956ee10b03db87b0b4297948fd102d39896cece01669555047ef",
+    "cargo-1.56.1-aarch64-apple-darwin.tar.xz": "f2e184a62e6b112fce2f6dd0d707c60a84addc29f774cdebcfded663ae81291a",
+    "cargo-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "9aa557436b0cf2a2f4f0d6c4aed5b95062c0637a4a94c000522402e59db1c93a",
+    "cargo-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "3d263eb1871b5d6ca4b198b9611925923e9353e1f5c2becf8c7b784298e88743",
+    "cargo-1.56.1-aarch64-unknown-linux-musl.tar.gz": "313f095df71bdd7cab5934641990cbcf325acdfefdcdf9d7a4a8aa950fc655d6",
+    "cargo-1.56.1-aarch64-unknown-linux-musl.tar.xz": "27f73d4ddcad9cddcc2fd25d194e26fefafbc9c6a98a14e0617b0fa63413f8b9",
+    "cargo-1.56.1-x86_64-apple-darwin.tar.gz": "cd60c32d0bb0ed59508df96bebb83cf6f85accb9908fb5d63ca95c983a190cf3",
+    "cargo-1.56.1-x86_64-apple-darwin.tar.xz": "46840c92c510b1bcfffb0ea7f0c0ee649a54ec0308965a2f3e154ae9d1780f29",
+    "cargo-1.56.1-x86_64-pc-windows-msvc.tar.gz": "0606835d9c41137552ee63f339c5df1a2ed6f722c871f9fc5cb92b02c7372373",
+    "cargo-1.56.1-x86_64-pc-windows-msvc.tar.xz": "264281bfee9fee1fabde6805a9bf916ca24337a7bb130a34b6a5fe1ed2fc42c2",
+    "cargo-1.56.1-x86_64-unknown-freebsd.tar.gz": "a1656603049a4612cdf44179ac7ccdb3c342f0b152cb114f61a228d321b0f384",
+    "cargo-1.56.1-x86_64-unknown-freebsd.tar.xz": "c987fc8c70bd4c92f753a51a14ce49dbe666a8dc209df681562575efcfe7921b",
+    "cargo-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "c896c033bb1f430c4e200ae8af0f74d792e4909a458086b9597f076e1dcc2ab2",
+    "cargo-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "dfed65a50e2b58b6807c1fb6f8afa7abd5c3b22c682d505721d615823687c708",
+    "cargo-1.56.1-x86_64-unknown-linux-musl.tar.gz": "4ecdd39695d9e09c3f4efffff61d67451cd41f28f09155485ac7dcc8f7a65a26",
+    "cargo-1.56.1-x86_64-unknown-linux-musl.tar.xz": "ceb8e3e273ade68766b526a7d076fc8ebfb19c2b2d4946f789bcf2597d06f83a",
+    "cargo-1.57.0-aarch64-apple-darwin.tar.gz": "2171ecf2c18fadd90588252aa294272aeb740f065772076ef36d04b1b4bfcc4e",
+    "cargo-1.57.0-aarch64-apple-darwin.tar.xz": "7314e53b73811913f63556860789d8a337b44bb240c485f3fab7d95f0e220b03",
+    "cargo-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "8c046fc59feb1d670757b6de30990e346faa4b2ff49cd42f6d5f6a2b92a1ad6c",
+    "cargo-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "6d11cd94618d80cda273eeeae7285980445f61a49ebacc616777b482a41cbf3f",
+    "cargo-1.57.0-aarch64-unknown-linux-musl.tar.gz": "87f7b1fb2b1a270336fbeac0ed2ea2ceda1fde26467f133e059907b57ad2bdb6",
+    "cargo-1.57.0-aarch64-unknown-linux-musl.tar.xz": "2f336c14418dbd117df136f99fc7c89459ee3553e8951473be138fa562483516",
+    "cargo-1.57.0-x86_64-apple-darwin.tar.gz": "26129f0e3ecd42e730f62d9c693e1a89aedfe6b7c8108cf970b2f1ed51900fb8",
+    "cargo-1.57.0-x86_64-apple-darwin.tar.xz": "019e0387ec5db129d1370311fa85024af5e0eb9bce4a79216148fb579027b7b1",
+    "cargo-1.57.0-x86_64-pc-windows-msvc.tar.gz": "23f4562605316f0c9002bb30d0e635f96577db9002052ef2f78b63e747b6b2cd",
+    "cargo-1.57.0-x86_64-pc-windows-msvc.tar.xz": "a68b853b7dac161472952958f0b4c81352473956982eb9391635624429a9758b",
+    "cargo-1.57.0-x86_64-unknown-freebsd.tar.gz": "c14839639299fce4e448629950c28de61fcfdd0393f9a751958c5c6d9c6d2ba7",
+    "cargo-1.57.0-x86_64-unknown-freebsd.tar.xz": "84bbe73e1806b459d310d3f213f5d7e80758e69d5549b417ce4ef7615d19ec7a",
+    "cargo-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "2b341034e4c30bede47a432751935549a28e40b566a1fd4b59c824ccd0a26ff6",
+    "cargo-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "ed2013713ae742895af5df8d91c5430ba9ba3c781e3bc7f3471b220cc06d565d",
+    "cargo-1.57.0-x86_64-unknown-linux-musl.tar.gz": "0f14c6bb7c413c3be2db1917eb0109b7563bff0ba02a03d30089004811d87f2f",
+    "cargo-1.57.0-x86_64-unknown-linux-musl.tar.xz": "0d8564d0348843d6c08d98990d9eac50b7b7ab790f89d514b4f45079e786d932",
+    "cargo-1.58.0-aarch64-apple-darwin.tar.gz": "9144ee0f614c8dcb5f34a774e47a24b676860fa442afda2a3c7f45abfe694e6a",
+    "cargo-1.58.0-aarch64-apple-darwin.tar.xz": "597c4fcdef065500b2fa5b50b811598ef994c0700a6636455c73579be71d331a",
+    "cargo-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "68e2e7493af55c5792636c2b2b0b497b1e43b12eb2e91da71e92426701884c24",
+    "cargo-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "0dd38e1c0217fec9a4075c74e3faa4ab5aeffe966f93e6ec56462b4df192c8b0",
+    "cargo-1.58.0-aarch64-unknown-linux-musl.tar.gz": "269fd3730644890725b3affbf5ad97c3f1a186fcd22e7fc122b6b9b97388aaae",
+    "cargo-1.58.0-aarch64-unknown-linux-musl.tar.xz": "ed8add6d82241ed142afa9c92f588cdcf4c98b894e38f4403a6094fad611cfc8",
+    "cargo-1.58.0-x86_64-apple-darwin.tar.gz": "60203fc7ec453f2a9eb93734c70a72f8ee88e349905edded04155c1646e283a6",
+    "cargo-1.58.0-x86_64-apple-darwin.tar.xz": "407289aee9ee6b3070714fb11b8ac94c2a1c24e20498dd41c85820b192d4b94d",
+    "cargo-1.58.0-x86_64-pc-windows-msvc.tar.gz": "ab0bdb95efa4084e19a706c14d826fa112306c25ec6304528dadff5f1017ab83",
+    "cargo-1.58.0-x86_64-pc-windows-msvc.tar.xz": "227bb7b1f018ec335ddaf25abf1a5e69b5e39c3084a540032a7d9fe8d6a82505",
+    "cargo-1.58.0-x86_64-unknown-freebsd.tar.gz": "8e280cfb6c7aa92d9c955fcfb80b6d09f067e779a5ca0b5799222f1a70ca4764",
+    "cargo-1.58.0-x86_64-unknown-freebsd.tar.xz": "26738bf888bc8d8bb688abda45d0a9f1ae1a9cac408d383aa17a4865601c660b",
+    "cargo-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "940aa91ad2de39c18749e8d789d88846de2debbcf6207247225b42c6c3bf731a",
+    "cargo-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "3d44be4cf353f4172b79485121286be667b76246d9998e7c48a3c2907f5e9552",
+    "cargo-1.58.0-x86_64-unknown-linux-musl.tar.gz": "926430f872e5a30b946bebe45df48ceb0d3dc8de04b35e295f33bb3b7dd394fe",
+    "cargo-1.58.0-x86_64-unknown-linux-musl.tar.xz": "94a4a8ea22daa39cc33f2372e83bc1a9f66cef43b002c78ee34551d4720d12a9",
+    "cargo-1.58.1-aarch64-apple-darwin.tar.gz": "fe4507d345fea40e2157a6d7d69100c234a83b5904747ce976df577e63819134",
+    "cargo-1.58.1-aarch64-apple-darwin.tar.xz": "b49f53631ff7dbbbe44d568714ac6b0b23172624f386b9285d64ed08b89d735f",
+    "cargo-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "b4603fe8207c1ac2b5755a5f8da04c32a8a3d34ec1506df28de5dac9010350f1",
+    "cargo-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "b37ce3b2e2b178bd57a42c3f12decb00a595123212a5ca963c8d4fa6f59d6de0",
+    "cargo-1.58.1-aarch64-unknown-linux-musl.tar.gz": "1bf9187170e8cdaf52ddd45aa7c93248f4d8a6c730b20251cb182b57d6624bd0",
+    "cargo-1.58.1-aarch64-unknown-linux-musl.tar.xz": "dcfd2c222153f969ae130c0e34ea195a790654ce6ce3a6dd7c87ae3ae7411b50",
+    "cargo-1.58.1-x86_64-apple-darwin.tar.gz": "27087440329a7d3b0bd2b73870c76677e52c96390c3a7b76e151f8a86ce442be",
+    "cargo-1.58.1-x86_64-apple-darwin.tar.xz": "d992d24816f9fd39c52601b682f39c944ed824a2e8ee05421a58d0451c7e28cb",
+    "cargo-1.58.1-x86_64-pc-windows-msvc.tar.gz": "4cbe75408c2745c72a27a37f77864745c7ce3e79c2d42708732c95fb3cbc9489",
+    "cargo-1.58.1-x86_64-pc-windows-msvc.tar.xz": "a7149bd053b9f14265d512abf28d6d74e235e6ea3b0258fa5dcb013140e84715",
+    "cargo-1.58.1-x86_64-unknown-freebsd.tar.gz": "f60d967c940400a92d142df1396a2031034374874a7575ad74bec2536e101fc4",
+    "cargo-1.58.1-x86_64-unknown-freebsd.tar.xz": "845cf81fdd59bfc8991f15583357eb3e7ecb9ba3837c953bd7c6323d669256e7",
+    "cargo-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "a6ca018e19eb25781b72e0ce9971be66c518adb6cebb0175ad88e6ff333f5118",
+    "cargo-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "1d3f01b973ea3de5174d0a48b50828cf913bafc223ecbf768a0293602cff0cdc",
+    "cargo-1.58.1-x86_64-unknown-linux-musl.tar.gz": "45cca848155e2ef853de74329ee45948e4f6f28f797679d9070f4ffa767ef209",
+    "cargo-1.58.1-x86_64-unknown-linux-musl.tar.xz": "7f577da5031790c4a0128038e50d1321a1ecc3b9968b511106d3ee1e3b35ae53",
+    "cargo-1.59.0-aarch64-apple-darwin.tar.gz": "4bdcb77ea084364b551a5cf969e263beb09afa39627f6dead262c8e2a7aed9c1",
+    "cargo-1.59.0-aarch64-apple-darwin.tar.xz": "9554dd8c9fc1889dbc099f22898e633454c77f2c127fa266f1d01ad5d211056e",
+    "cargo-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "857d0b4afa76773a68ebe616db01d1b97d24b6d02b55e7348c968aa48104793b",
+    "cargo-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "11b8da4b90ff74c6c796a3d6c1f5150de23c411ed2546e10b301077b904191fd",
+    "cargo-1.59.0-aarch64-unknown-linux-musl.tar.gz": "89ea1001d79ac7dc2158950c40a73aca6d1177d5e44562e9e5a8656b916e344c",
+    "cargo-1.59.0-aarch64-unknown-linux-musl.tar.xz": "3247b372bd82c01837be5947fbbe6c572dfaa04ed0936b35edd5933662c1532c",
+    "cargo-1.59.0-x86_64-apple-darwin.tar.gz": "d0202b50b4f3d0e943a5d7e8d14420afeac8cf36e6136e8d5b7ddefb3538d62a",
+    "cargo-1.59.0-x86_64-apple-darwin.tar.xz": "f85bc0b82788ae37a1909e7bd793f1e610566cefb2bfaef3422edfc06cef68d9",
+    "cargo-1.59.0-x86_64-pc-windows-msvc.tar.gz": "4cf585f1a3b295f6d51873c189c2b9d114861a4b41b44ad5245cbf119272a6f2",
+    "cargo-1.59.0-x86_64-pc-windows-msvc.tar.xz": "a3c7132dbb00a5ed62270573a34bb6ea962b84b569a29741ecf76da214c4360d",
+    "cargo-1.59.0-x86_64-unknown-freebsd.tar.gz": "a6732b18419efb4d246a35555f4ccbf904de261cde02f8e82fdbef67e70ddf80",
+    "cargo-1.59.0-x86_64-unknown-freebsd.tar.xz": "17651a873c096c477ba338ba8800cbc3649002375e49d1a3f32b85f6007bdd7a",
+    "cargo-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "703c1c66f1d68549d1ee0b7a96f91935a3583af8ec13cc1722ff7a0f1c69ca70",
+    "cargo-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "f56ebfb333ea46e4429377bf4b16a2ec889d61640a41c3093577cdd8f3c80b96",
+    "cargo-1.59.0-x86_64-unknown-linux-musl.tar.gz": "ee2fa67e67395f9b8e1b52433ca281454c3e4f55db536414edfadfa2d649c8bf",
+    "cargo-1.59.0-x86_64-unknown-linux-musl.tar.xz": "95f2727f22f40d7a294f08d24dc7b5f4fb4fe3991854becceffa75bf8f049745",
+    "cargo-1.60.0-aarch64-apple-darwin.tar.gz": "6839526ce51c47162e678e6329d90f04b565e2214f9864e15e14fe794d047a73",
+    "cargo-1.60.0-aarch64-apple-darwin.tar.xz": "e0451798bf0ebc88688b078aaf373810fa70358df90e4303be58c6c05fe5e443",
+    "cargo-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "60d58e3c7eac74c4e7a15799c374a49d0c3d5f9ac28534b28b9507912c1d6af5",
+    "cargo-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "36030f5cede7971eaed45284b5243b4103184a663ad934124de8a530e0e6d993",
+    "cargo-1.60.0-aarch64-unknown-linux-musl.tar.gz": "9a011bb88b8698568e61049c77c96f4842ba3cca4900b47f6d9abe566eccbc07",
+    "cargo-1.60.0-aarch64-unknown-linux-musl.tar.xz": "27da822bed107192bc87687b2b12b96fe096067139341731d41b3e602b37eb32",
+    "cargo-1.60.0-x86_64-apple-darwin.tar.gz": "fd479595f3c4035a555357c0bebffdf6fb5e244d590dc6b7eb2880dd71091cca",
+    "cargo-1.60.0-x86_64-apple-darwin.tar.xz": "9cabb437b5f6259f3f13cc6fd9d27f0a821f6637dfce30ff1032440e8be57748",
+    "cargo-1.60.0-x86_64-pc-windows-msvc.tar.gz": "00673d65d6a725f8d739e8e45c109fa9e11af741606b9a1e5eae26cdbf89dc45",
+    "cargo-1.60.0-x86_64-pc-windows-msvc.tar.xz": "4d4fb84e61542ca15721e31c0b210354cbd2d8e9b902877f0dfa9e414b1b6e2f",
+    "cargo-1.60.0-x86_64-unknown-freebsd.tar.gz": "a3dc279bfe878d676ca901b85c53beca8f7c1c7290c955377a893325f59ac777",
+    "cargo-1.60.0-x86_64-unknown-freebsd.tar.xz": "970deb4b423dcb6c0baeedf5adde92cac105d9a971fca57694c24d34e1157a4d",
+    "cargo-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "6dfc8b0e2d5ac2ccfc4daff66f1e4ea83af47e491edbc56c867de0227eb0cfd5",
+    "cargo-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "48edb2eb51d7c56ef9a3130f0b331e83f139559161f6f93b9588d28cf72610f3",
+    "cargo-1.60.0-x86_64-unknown-linux-musl.tar.gz": "24884c2a50b5e0320ba7ad115d0a5a5c53448ccadc8da7356ea071be455c9f96",
+    "cargo-1.60.0-x86_64-unknown-linux-musl.tar.xz": "38268edfebb190192f895134c73824ac9b017fa937510be4b35be17364ad05e4",
+    "cargo-1.61.0-aarch64-apple-darwin.tar.gz": "8099a35548e1ae4773dbbcbe797301c500ec10236435fde0073f52b4937be6c3",
+    "cargo-1.61.0-aarch64-apple-darwin.tar.xz": "5ed7ea11528f1100c0c015546e4f1646bfbc0f869e5f9bc0ad06e0eb322e3bd8",
+    "cargo-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "0d31d5a050e41f8b56c920527538886db96c09824a8ff619d0fc4c410dbf7e5a",
+    "cargo-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "a055e6cfd9b5f8938780db6179d2ef92990c714ce64278337d7edf3d29c8ab62",
+    "cargo-1.61.0-aarch64-unknown-linux-musl.tar.gz": "ac783fc2b18254efd9fe2dfcb3928e630f1dc4d81db72e2f6b073bd56e6c224c",
+    "cargo-1.61.0-aarch64-unknown-linux-musl.tar.xz": "6555ecd3fbe482e743edb505a309520ddcf8dd51e58d36080a2eaff4b7651fef",
+    "cargo-1.61.0-x86_64-apple-darwin.tar.gz": "f2b10ef8c56f37014d2f3e4c36d5e666e3be368d24c597e99cf2e4b21dc40455",
+    "cargo-1.61.0-x86_64-apple-darwin.tar.xz": "41154ccc20ade7b14a2f29ba1b7777684b87495ae94570de6726ae72731acc95",
+    "cargo-1.61.0-x86_64-pc-windows-msvc.tar.gz": "312e042cb6e65b0b7c01f7eceb968898d9219ee11e23528c8c7b2468f00b4036",
+    "cargo-1.61.0-x86_64-pc-windows-msvc.tar.xz": "0f3fa42ab7226fdfb831311fc1f998faba075bb7e76b50bb8572306bf67fa252",
+    "cargo-1.61.0-x86_64-unknown-freebsd.tar.gz": "cafd33b422db45e5e0a1e7236b0898966109686977058c79cc90366cfaa59f8d",
+    "cargo-1.61.0-x86_64-unknown-freebsd.tar.xz": "433906be12e99b9b371fba6aaf2391b3104c314059e76746c92827bdb91c3eb9",
+    "cargo-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "c6e108e13ef5e08e71d70685861590f8683090368cab1f4eacfe97677333b2c7",
+    "cargo-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "9461727d754f865ef2a87479d40bbe4c5176f80963b7c50b7797bc8940d7a0a0",
+    "cargo-1.61.0-x86_64-unknown-linux-musl.tar.gz": "b22fd5207b214839e71b8294f86787524d6a41610339de5259191ffdd3fa8761",
+    "cargo-1.61.0-x86_64-unknown-linux-musl.tar.xz": "db4b4423c2843b6e27737664cf8085afcba670374110ca24b9c8d341045e748c",
+    "cargo-1.62.0-aarch64-apple-darwin.tar.gz": "8a4c0f52491382d537753531a51a45355135e0b19f85f20588785d604f1eff2b",
+    "cargo-1.62.0-aarch64-apple-darwin.tar.xz": "270ac5f4196ad4e016a4da79f2f3b0417fd19f8680de619583fd1f4e240c2c7c",
+    "cargo-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "2b55f7073846cd269a2c0b002800699de89ed7ed38852457cf2dbae35f5e73fa",
+    "cargo-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "475038ecacca9ff586cad2082d5d950544b0d581a2a287facc7d899aae488813",
+    "cargo-1.62.0-aarch64-unknown-linux-musl.tar.gz": "3951ee228906caf03134a667662e2ac1cece5c0607f54d09a6c3a4759de59d7b",
+    "cargo-1.62.0-aarch64-unknown-linux-musl.tar.xz": "af4a5f2cb93ae4c78ea135f415ebd91a9bc33528617d6618c647641cc2520bfd",
+    "cargo-1.62.0-x86_64-apple-darwin.tar.gz": "4957c596cc5327921be523fb1de935b1072caa12f9cedaa68cff3e85898fd09a",
+    "cargo-1.62.0-x86_64-apple-darwin.tar.xz": "ddb05c2d74a9538ec989a7b2e5ba773a7d73def78050c4e4d14f495bffcf0a3e",
+    "cargo-1.62.0-x86_64-pc-windows-msvc.tar.gz": "4ae611128dee1ca2060cffec20df67a9fbb9731d51c6cd789b9161ab1e6eb3f3",
+    "cargo-1.62.0-x86_64-pc-windows-msvc.tar.xz": "407790462a9ed376299d602d038f5f9a58eac072d38872110327fea26022a41e",
+    "cargo-1.62.0-x86_64-unknown-freebsd.tar.gz": "575f7f8b4e185ab94567b52e943a837ca0153676d7a55e7b3fa04b96c4f27aaa",
+    "cargo-1.62.0-x86_64-unknown-freebsd.tar.xz": "258ea331ee7aee19135b9e9b6a9bbfce206c7aeac427bc6e63ff25dbdb7bc8cf",
+    "cargo-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "fb0141db9fdea4606beb106ca10494548f24866b39a10bde8d1e162f653e94d8",
+    "cargo-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "815c63119a9cf0282ff240c6444b6f867238763ee3dea182f10837ae7dbbb1d4",
+    "cargo-1.62.0-x86_64-unknown-linux-musl.tar.gz": "04c90e1f96f0a8c2e78638a2e98481ee449eed9809d01609264de4d627f186f0",
+    "cargo-1.62.0-x86_64-unknown-linux-musl.tar.xz": "1d8e958aa7b17433e0bdce3515cd6b1b5127220bfd654df8ec68d40be432f7b4",
+    "cargo-1.62.1-aarch64-apple-darwin.tar.gz": "363b925378e4e51e35db655abfad0ee8187dc30d502f4814ff3dfdec43238c23",
+    "cargo-1.62.1-aarch64-apple-darwin.tar.xz": "5970726dcfa316131aa5219db06df303e550d430a4127f0a2703923f89bca586",
+    "cargo-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "5c14e1bdfe37cf004cc7abac1f4498c36c5c7675849125ef4c48e1589c6641f7",
+    "cargo-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "dec2461c23fb587810ea47ed1a9a058d5c46755d790746295d6ecaa41cce2c16",
+    "cargo-1.62.1-aarch64-unknown-linux-musl.tar.gz": "c585b76b792e3b7e62d1523a40dcaf77a38de03a2ea220029d7a2d8cf9f170d0",
+    "cargo-1.62.1-aarch64-unknown-linux-musl.tar.xz": "6ac59a634f71ebb3130695fb31ff81fa66b09bc807884fe40ab76de4cc23ef25",
+    "cargo-1.62.1-x86_64-apple-darwin.tar.gz": "6a6ea26fba82ad3b6f8d2378fb006ce083e02fde77718e335b3942f59cf63cb4",
+    "cargo-1.62.1-x86_64-apple-darwin.tar.xz": "8b17c84c7931a9bb34dfa28a13bd8dc285ccfdd60138b59ac405376db83b3093",
+    "cargo-1.62.1-x86_64-pc-windows-msvc.tar.gz": "5a3a793fbdae409dcdfca8b232b5bd6a4f2899bce5234e91eb595b2ddb96086a",
+    "cargo-1.62.1-x86_64-pc-windows-msvc.tar.xz": "9ec69130eff75b2dc5cebf512d5df5cadf752f1a8901f37395f9c9d3180109aa",
+    "cargo-1.62.1-x86_64-unknown-freebsd.tar.gz": "8da1e16c594dc1e5483f3b27cf92bbe411e6d2cb8ae507dc9bc95d1f2dbeeafa",
+    "cargo-1.62.1-x86_64-unknown-freebsd.tar.xz": "f16097d8cfb3ba1992a513e6dc8a736228271e51540e9bd93830f9d7c8d6ba69",
+    "cargo-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "7a471270fe18dfe231693178c169b279c0747ae179fd755729eefd8c6052f595",
+    "cargo-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "9af4601aed486c982d5f07f8a0c2506a5a278316cfe30f77f5a41b5f69d8382e",
+    "cargo-1.62.1-x86_64-unknown-linux-musl.tar.gz": "35a5b6fb9950a1825f44bb9f69cc3c0ba9f2014b9645c774a7ecc4597009f7c0",
+    "cargo-1.62.1-x86_64-unknown-linux-musl.tar.xz": "089705fc085f2806c0c541a1bac918cfb83a775c69db6868185e6a9e62ae09b4",
+    "clippy-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "2cc894bf75d938c0f7b96c7711d93b6d5a0befed5c09232cdd8413a57942ed88",
+    "clippy-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "ff5fc4d3b4f1b6147f782d28669fa0e847b3660185fa147e4ebf4d9ace61cd4e",
+    "clippy-1.48.0-aarch64-unknown-linux-musl.tar.gz": "b3d740358470df6f4c1881a40db16c6fce4082bd251b012963147fdadab96879",
+    "clippy-1.48.0-aarch64-unknown-linux-musl.tar.xz": "782277e11c8508a0133c6d3d78a0ef9582a5a3f6db430cf4fc15583a69a804fe",
+    "clippy-1.48.0-x86_64-apple-darwin.tar.gz": "d70a5d224a90df3fc77d7bd38df931023a3966be755b888bf0888d6bfcbdc424",
+    "clippy-1.48.0-x86_64-apple-darwin.tar.xz": "1ee1766b112972de3b5b7a1f3424f072ef9e8a71b816d1187ee2eb744f3eec7c",
+    "clippy-1.48.0-x86_64-pc-windows-msvc.tar.gz": "e52103f31fe8d4e067b28273ba0aed9ae352d88ad1c3b9860ec1e08b81241ebc",
+    "clippy-1.48.0-x86_64-pc-windows-msvc.tar.xz": "956a73001292ff9f98a1cc11f1831220798533b4b13f48532023c9ee7bb6023a",
+    "clippy-1.48.0-x86_64-unknown-freebsd.tar.gz": "14459e9629b09c83c38fe2366d996490c1691fb3ae9937f4a8de48219857e14a",
+    "clippy-1.48.0-x86_64-unknown-freebsd.tar.xz": "254abc2f923fde7c2539550769fed884a4707c3ba6929f957624b7400d64960f",
+    "clippy-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "409c2e4a6b50f9a797379e687c2d0bcbda4a268e736fadd2be07f35a2fb9557f",
+    "clippy-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "84d66ceb4f60ea0cb86739648f972ef37326c562386ac9497b9811d588f30469",
+    "clippy-1.48.0-x86_64-unknown-linux-musl.tar.gz": "cf6480cc206ef4b615f95de2f048e6bbf17072b39dd76246faf3440fccea3704",
+    "clippy-1.48.0-x86_64-unknown-linux-musl.tar.xz": "43466ef8d99b8d9d01136b5f452f18c4c2003262ea4d98153e09e9efeef90180",
+    "clippy-1.49.0-aarch64-apple-darwin.tar.gz": "d6f2782d600f1a25d1fb9fe828be0cf170fe5afad50184c30e8c32310f26fd8c",
+    "clippy-1.49.0-aarch64-apple-darwin.tar.xz": "677862a01733f71bcd32ad0dd261d689ff4f0a292dd84b7dfb23efb7b4fd1e26",
+    "clippy-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "ed805952ab975e9f395fa68544448ff7a6e823c4bf7e04952e4c1dae5a550be3",
+    "clippy-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "697cfecf6e3df6f255bba98bd31d909b3e0ef7c5da8be4dc03cadd543443e3a8",
+    "clippy-1.49.0-aarch64-unknown-linux-musl.tar.gz": "f4329c16a6f448abe7be50b2206ca7d8a21605d9d8e3f01303fbe737d0c3bf7a",
+    "clippy-1.49.0-aarch64-unknown-linux-musl.tar.xz": "c7ae92ad591e4340ae9e4a44dffdeaccb02b0e3a4331d6d47d0daeb6aaefaf08",
+    "clippy-1.49.0-x86_64-apple-darwin.tar.gz": "c4a7baeda3a558a65af3afe857aedb5f25e8dd0ba42ea02cdd1056d92e610b35",
+    "clippy-1.49.0-x86_64-apple-darwin.tar.xz": "9fbba9540efefadd80ef12ff3a25523834762476aacfddc6804b2155587d3858",
+    "clippy-1.49.0-x86_64-pc-windows-msvc.tar.gz": "70eec30a80aebaa1f6f4dfc1a6fa681cdc833aa2281726319a06c9fb1af277fa",
+    "clippy-1.49.0-x86_64-pc-windows-msvc.tar.xz": "7e0c6ac885fdecf8387a484cee928032ce09cdfe626408617f70989f323854ef",
+    "clippy-1.49.0-x86_64-unknown-freebsd.tar.gz": "835bb7c1d4f4d57453f69b35e758347ad02f22949cbce3265282d2059aea4166",
+    "clippy-1.49.0-x86_64-unknown-freebsd.tar.xz": "ad1b291bf4da6caeb2afb0b5b2c0ddafa7ba97b2e4e2b225c458a296a95297cb",
+    "clippy-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "0be34ad7ddde82f54353d5322c6142b43d4dee54ea26b9428a3a34444aa4b9c4",
+    "clippy-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "9203aa7a372f8258963e13f661ae92f226a66ee6722551bbc11e2b87e8670707",
+    "clippy-1.49.0-x86_64-unknown-linux-musl.tar.gz": "c53a5e73e99ea9f3e14f2c1164f234eac4e60e428ed82502ffbfdd19be728f3f",
+    "clippy-1.49.0-x86_64-unknown-linux-musl.tar.xz": "793416c642893e4173df9ded9577fcfa73688f41c783407f7d6b67327009e867",
+    "clippy-1.50.0-aarch64-apple-darwin.tar.gz": "c0a335e4cc3b0775661c98937c767eb63f5cca4a8a224c164af2415158175025",
+    "clippy-1.50.0-aarch64-apple-darwin.tar.xz": "8e4b684306eb12d8befd2d08486af1ff7cf41a4aa6bd6e30e02f47df06740bcf",
+    "clippy-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "bfdd830f04b1dae6ffa71e750b391cdd43def5a9c266366eea8e6b8071509747",
+    "clippy-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "3b733892aa55f49864ad6b09cd541bfdf2e9e8f57aeaed5023382859e84e0101",
+    "clippy-1.50.0-aarch64-unknown-linux-musl.tar.gz": "1fb4eaf6c2230ff138edb906ac55fbb47b638e412c83580a783749a38096cb98",
+    "clippy-1.50.0-aarch64-unknown-linux-musl.tar.xz": "18e5fbe76317ab808158071e8171e5ccd5632e3e2a6f78e83da42292f3214709",
+    "clippy-1.50.0-x86_64-apple-darwin.tar.gz": "466be411c4eff28c006179ba5a45af5c37dc9a56395a24ad597fa54a475eb97e",
+    "clippy-1.50.0-x86_64-apple-darwin.tar.xz": "adec8f3f654ccfe01d3ddab3dcc7d14708434bddb05d8275115e210c5b636b49",
+    "clippy-1.50.0-x86_64-pc-windows-msvc.tar.gz": "65b3198dc0082d2ca77559047901dd102d100bf7fde513a0a3e81ab78c93d568",
+    "clippy-1.50.0-x86_64-pc-windows-msvc.tar.xz": "2a00881e8db9909592f50c54e1ed6cfcc032d6307236ca09212b794861105011",
+    "clippy-1.50.0-x86_64-unknown-freebsd.tar.gz": "f065a60cae99287eeed1ad479f159efeef7f79459b8b4369c451d966bc8b0bed",
+    "clippy-1.50.0-x86_64-unknown-freebsd.tar.xz": "12bf496dade56c6d300dbc3060a5150056ae881551ce1fc2e9b6ff3e137df11c",
+    "clippy-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "ef4098fdb39d67366300a63370c513ca97fdce8f4d6ce9e2a5fbff32d3a8ea38",
+    "clippy-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "ec38b632d13a66ab070104b31266b5c45dce9761543db7be03649ecd2c0727c1",
+    "clippy-1.50.0-x86_64-unknown-linux-musl.tar.gz": "b921d64ab3a130240372c069f72b549ec5c0d566dd302c6b7593453536688ed9",
+    "clippy-1.50.0-x86_64-unknown-linux-musl.tar.xz": "8929c01a290c9c530f567e1626d5043ef6e4d58d430dbf1980212ce230b79831",
+    "clippy-1.51.0-aarch64-apple-darwin.tar.gz": "1d4769e522ec3275b6a1b6e63f0d48b6995cf3647df4d97fc1c20bf2969cac6d",
+    "clippy-1.51.0-aarch64-apple-darwin.tar.xz": "272f5ea5c58533b2db979156826e3e55e82030d38206f582d4018e06d47732d8",
+    "clippy-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "bbf4f53e8c9496524384cf8e3a9e56bd80b19aae12135c058ef113bec40fd30e",
+    "clippy-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "b155d313f80bc41f864400aed4d128a8d31213394ea13a61792b902b11930df1",
+    "clippy-1.51.0-aarch64-unknown-linux-musl.tar.gz": "ede6e08307a91fb18feec8d4ea9e170dd3f522f79267ca39d258dd554af5eef0",
+    "clippy-1.51.0-aarch64-unknown-linux-musl.tar.xz": "b84cd09baa461a9ddd8c56972b979bc0b5423b2e37d0aa63ea2adee3fdd8eece",
+    "clippy-1.51.0-x86_64-apple-darwin.tar.gz": "6c1d2c143720058a67da274b1579b4e7e955bd35de6d4714d884b55030ead225",
+    "clippy-1.51.0-x86_64-apple-darwin.tar.xz": "bab39acab59485b4baede28179aac482caaa68de04783bb14c4f41c46ad3aa53",
+    "clippy-1.51.0-x86_64-pc-windows-msvc.tar.gz": "9d7c25c031257ec62b0800e418252e4a53319a513deb9e682b438bef1abc4056",
+    "clippy-1.51.0-x86_64-pc-windows-msvc.tar.xz": "098b7706503c20d490449f4796d0bdd633f87d93b4b4d14eeae767e10cfeceb6",
+    "clippy-1.51.0-x86_64-unknown-freebsd.tar.gz": "db15a34b5d829338f63c436665c7106817b2577d9417615d75e4aa6b27633c3a",
+    "clippy-1.51.0-x86_64-unknown-freebsd.tar.xz": "2ed5ab4a3ef3cf254c2fcf4047bb96b5af564fac42f11998c69c2e986415b291",
+    "clippy-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "61774912e775de826e4f9173c8f91a915d91319d353ecad46361775a035ed69f",
+    "clippy-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "b8e1fe865e98f183b272f897c218c3a07959d534319359bc02ee4ee8c29a5c83",
+    "clippy-1.51.0-x86_64-unknown-linux-musl.tar.gz": "4d3f51f4e1220e740e6d310c5f90652b8463e8897a9e4fe82d9c4b8e3315f9b5",
+    "clippy-1.51.0-x86_64-unknown-linux-musl.tar.xz": "333fe44d64f5ae45dabaf99fe481c0001642f7e102a2a0c1a96b58f97bdb6e92",
+    "clippy-1.52.0-aarch64-apple-darwin.tar.gz": "0e8a71e8567553ed625168f46e2253c04ef19f0ae7683b6500b3fc07cb81fefb",
+    "clippy-1.52.0-aarch64-apple-darwin.tar.xz": "3dea8e3c01952a15ac75642ce5db98bdca6556cb2f78071aee3bfca0c16b5a4e",
+    "clippy-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "06b0a9e579b93bcf5948f013c1e053f8ad6717b3349068b2dbe774215f4b0dd3",
+    "clippy-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "54afbf6e1ebd31875c94170d5b3e76d8f143197f009aa3039c0e397fb6ddb9dc",
+    "clippy-1.52.0-aarch64-unknown-linux-musl.tar.gz": "a2075592aeb37ad33ebcd93b228e79dabd8fb62eeee7aae531ac0d9682eb6abc",
+    "clippy-1.52.0-aarch64-unknown-linux-musl.tar.xz": "21cc5679d90d14ef44682648605404699e3c964ec38e7017f5b7de55e003aa0b",
+    "clippy-1.52.0-x86_64-apple-darwin.tar.gz": "baef3bd3c93872c67ddede8b657236f5f368a9e30b2ba9725c70881877c6db28",
+    "clippy-1.52.0-x86_64-apple-darwin.tar.xz": "ccb756a0cc7e048c3b53a55346f66c36222709e81f1e2738b0cdd061d23b76df",
+    "clippy-1.52.0-x86_64-pc-windows-msvc.tar.gz": "149418af4a93f3c4d8978eccf95a968d2fcef4cdd748b284c782d8efd06d38da",
+    "clippy-1.52.0-x86_64-pc-windows-msvc.tar.xz": "f95d2ac7f8a4cd2040f6504e3d9c7a2b4d30df39f4d2eb32ddb10cba0bb220ec",
+    "clippy-1.52.0-x86_64-unknown-freebsd.tar.gz": "db50b6ac0cfb3c8eca34e8059014bd5602dfd160246a51efef568165ff7bd4bc",
+    "clippy-1.52.0-x86_64-unknown-freebsd.tar.xz": "c6b8495662e0725f348d8fc01e0face4e8441aec7da8c23a43a68c6f00342b12",
+    "clippy-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "00a55613d1a47c12c08f6b101ca791052b07650b624c102acdda4569ba2652a9",
+    "clippy-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "3c3d29365cb5e3baa082c4df8288b61666b4600ba9542e4d19ee06356fa2ed91",
+    "clippy-1.52.0-x86_64-unknown-linux-musl.tar.gz": "95950b2455e706d500a2c2f02904e5d48394b998f5f486fe376a144edcd7f85b",
+    "clippy-1.52.0-x86_64-unknown-linux-musl.tar.xz": "5655b6ed10ca79cd45a5121bd3fe115a8fe076ee75cf98f58d161cc10a3caaa7",
+    "clippy-1.52.1-aarch64-apple-darwin.tar.gz": "fa19b0115201c9462f36eb8f51db07cf58af02ba2c997f1431719f78bea30904",
+    "clippy-1.52.1-aarch64-apple-darwin.tar.xz": "30dd71eb45f049f3c007069615fe5fbef2cfd89d799fa0caa479332e9886d6fe",
+    "clippy-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "91d914a83b5c6d1b551a4acfa96c9cd4365b674438fdd3d2114ee86f11f53849",
+    "clippy-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "fe704e62af7a6234261b25f68913803927d5f72eeeee833e51adad206d8e71fc",
+    "clippy-1.52.1-aarch64-unknown-linux-musl.tar.gz": "0910ba13838bf80b5ae86c219078340fc02ba5e0b570c54a510aedf78cc6837d",
+    "clippy-1.52.1-aarch64-unknown-linux-musl.tar.xz": "0671a1189b76b4007812e6ba09a700ea2f228100d3004d27fbad809002a38436",
+    "clippy-1.52.1-x86_64-apple-darwin.tar.gz": "39264348d1246a9cff623eb511979b71831ff331e16be6bf3371ccefa19a23f5",
+    "clippy-1.52.1-x86_64-apple-darwin.tar.xz": "8289c1765fe7d400a1624af912e5920c74d0406788421b5d4c84ca812b2bb873",
+    "clippy-1.52.1-x86_64-pc-windows-msvc.tar.gz": "2470d52eda90cd6f7a02901bb2144c40957b0decf2af8f6cf115265acc64c956",
+    "clippy-1.52.1-x86_64-pc-windows-msvc.tar.xz": "80470a7ff0a9dcc917600a650b94195fad7cc2be6ba80cf49af7aac6eb82fffd",
+    "clippy-1.52.1-x86_64-unknown-freebsd.tar.gz": "d9b4aeb263668e95b3fff8d4125ce28905695c1c8ed3d9d5bf949d47d386d13c",
+    "clippy-1.52.1-x86_64-unknown-freebsd.tar.xz": "d8e97c48ea2a6ac64bc0ee07ed5615393cd21dabf559af82b2d987f1f4f22dcd",
+    "clippy-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "33d6d2446ec4d381057f404c7081686856a001bd91409d81c96aeeb6c452d289",
+    "clippy-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "35598ab54fe6d0f204deab12a075b423a6cfdeb6f578b72fe0de072da99fbf5c",
+    "clippy-1.52.1-x86_64-unknown-linux-musl.tar.gz": "f37ccdaf359f1ae4aa31324490a9ab2ebfe56e5f11245dfea04930eaa0b5c5c3",
+    "clippy-1.52.1-x86_64-unknown-linux-musl.tar.xz": "b5b1aa6ca94a6e9d852042e96d2ea75be1625d0414c2c58125f106aa433f24df",
+    "clippy-1.53.0-aarch64-apple-darwin.tar.gz": "311247f7aabd4d846d1220f26a6ea6478219d6549a9abc546ad69092dde2e1a7",
+    "clippy-1.53.0-aarch64-apple-darwin.tar.xz": "d201b848169c532c6396aaf423dd88c743ff08e0c1d7e397405c9627ab79c64c",
+    "clippy-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "56842a410a38293a09cf4d880a5d237c10eaf8344a080bb1ea0d3e069ce12112",
+    "clippy-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "1d790bb0a580509647403b5040d72d168c5de5472e2bb3477ce833f0e56a977b",
+    "clippy-1.53.0-aarch64-unknown-linux-musl.tar.gz": "26db11ca69b33b3ac8e3379573f7e3bbc352f7920f98c4434465636c34d386dc",
+    "clippy-1.53.0-aarch64-unknown-linux-musl.tar.xz": "793b35090da358d87d07440571e39e21a8abd8f7ee26774bdff61b7ef454fc01",
+    "clippy-1.53.0-x86_64-apple-darwin.tar.gz": "ede5bceff1be27a21b12a3be4034d254925d3d58d39713fa4af9fa561f1ea671",
+    "clippy-1.53.0-x86_64-apple-darwin.tar.xz": "94a8dcc5e18558d91dc8a3e94674968413fdab3b06b7009c4c18f656f0886a20",
+    "clippy-1.53.0-x86_64-pc-windows-msvc.tar.gz": "dcff1fcdae5ca816a71c9f080246860e8e1d90022576d28d74d033f940ed8aa5",
+    "clippy-1.53.0-x86_64-pc-windows-msvc.tar.xz": "d3d647df154db7cbae4a09209362c2a0b29bd5e211060fb3f234fe8e97b91eb4",
+    "clippy-1.53.0-x86_64-unknown-freebsd.tar.gz": "4de1e957c3999a130ef3cb0362a28746ffaf79197cbb1ebabf7be6be115b2f29",
+    "clippy-1.53.0-x86_64-unknown-freebsd.tar.xz": "b45773cd162ea04205f23c6746ea035613c300029a4e81a30984c7a364058741",
+    "clippy-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "bf065f9c7710a5e7305fb511bd1e21bd248ab216230ec0c71d8bdd2383e0b088",
+    "clippy-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "13a79c06ba4af69b04f34e409d0317ee71527d7b8970d33027f7b15ad3b199e2",
+    "clippy-1.53.0-x86_64-unknown-linux-musl.tar.gz": "ae84cd0677a5446dd07384d4006f52fc6e2d290728edabb5a169a56ca9bb388b",
+    "clippy-1.53.0-x86_64-unknown-linux-musl.tar.xz": "8476052653a62ebdaea971491201407215f1cee71ad0173b624d8e64377906eb",
+    "clippy-1.54.0-aarch64-apple-darwin.tar.gz": "086e52350792a8b4e3f3f40753948e7d067c38c9c0f22492f2c7d88ba7c94e95",
+    "clippy-1.54.0-aarch64-apple-darwin.tar.xz": "164f0aea08a452db9823f401401010c68ed5ea8d66cc100a4c93bcb2603f0194",
+    "clippy-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "e25bdd281f3fa9cb194eaefe75cea7f4f0cd70c615ac7077a015764360d45953",
+    "clippy-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "bf2b912221068af11a68276af4d1e50df0f3ef7f12deeb241b3fff85bcc0ff84",
+    "clippy-1.54.0-aarch64-unknown-linux-musl.tar.gz": "8de3e94808e40540402aafed1343ce6cd058c86fa7ac174c6ec591e4a03d6c09",
+    "clippy-1.54.0-aarch64-unknown-linux-musl.tar.xz": "2551c9f4b36981d1fae104d0817752cdb36c356e8d73e54bb2ca70cc7b018d16",
+    "clippy-1.54.0-x86_64-apple-darwin.tar.gz": "b1548c2d6d524aad02865e98a367dc665cd5b1847a20d29b142cc13adfea43b8",
+    "clippy-1.54.0-x86_64-apple-darwin.tar.xz": "d3a6841fbcb8ca5acdb84fb4631de619067189d57105dd0b754a5933c3442ae3",
+    "clippy-1.54.0-x86_64-pc-windows-msvc.tar.gz": "36e03f67f45d83d66187df2380b4acaaa2cfe5924c53c724a83a2780f78212a1",
+    "clippy-1.54.0-x86_64-pc-windows-msvc.tar.xz": "b3726c5be98d38a066c1ce3de34a0834810697f2a70baa98fe785d644801696e",
+    "clippy-1.54.0-x86_64-unknown-freebsd.tar.gz": "92569c0f9faab4501d47ab6958d6535d2039490e763cc65c1700b0c5436106b0",
+    "clippy-1.54.0-x86_64-unknown-freebsd.tar.xz": "513ee2337d63cdb2529080a2c280342caba2a97cabc2037318aab3710aec175c",
+    "clippy-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "4896d754064c781611901c459d326dfcc10d9916cad5c1dd6a0898bca7e6428e",
+    "clippy-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "a6d9087ca16987827502e39d48c23919234ca121088caef279662fcb8a408e40",
+    "clippy-1.54.0-x86_64-unknown-linux-musl.tar.gz": "8184892daa7b652af96c9634ad15f33e97b022c7aad16e1e95bb95bf3fa96972",
+    "clippy-1.54.0-x86_64-unknown-linux-musl.tar.xz": "7104530862c17861bfe00d24277cf03cf02bd1dfb6fe0cc1ada941219a438b8c",
+    "clippy-1.55.0-aarch64-apple-darwin.tar.gz": "470c8c99050a7785c4b261ab95575141bb48f19dc135dec96b8424e175898670",
+    "clippy-1.55.0-aarch64-apple-darwin.tar.xz": "80cfb671e7bf8cc7c80a6156955b66d9a49b8c8cc8a936c34e8a0b17e0707838",
+    "clippy-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "ace2cface85e199c5d1773a88ca5ba4d1527cf3936bc844113e4defb54fc13b8",
+    "clippy-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "834096ecaef316682c2cd42e9ae1d0ba0e6d725b6822ae2d872dbc07f9148589",
+    "clippy-1.55.0-aarch64-unknown-linux-musl.tar.gz": "f1dead08b21cc8a67a3d27c785e107d2aa5363e60dcfd74c7fb81fd663d288b8",
+    "clippy-1.55.0-aarch64-unknown-linux-musl.tar.xz": "e8b0c2e5f497d47444f31ee8815ed5a7ee807a715c7641aed1d494dbe9143be4",
+    "clippy-1.55.0-x86_64-apple-darwin.tar.gz": "fff5969a2a6795e28e040eda2ab59d29a48ff5aad0f15bea194b61befbffec77",
+    "clippy-1.55.0-x86_64-apple-darwin.tar.xz": "1a8d785842143d52d85cd0ed7b838302c756382daa1d461ddfd416e0051b7f6f",
+    "clippy-1.55.0-x86_64-pc-windows-msvc.tar.gz": "d7dfa77cc50348023d973311bf378181bdf18d5aff7c2fde69cf8031564667da",
+    "clippy-1.55.0-x86_64-pc-windows-msvc.tar.xz": "8fae52db158d05d5151422a08dd0667f6d15fc44f44ac056c69eedbceedfe3b5",
+    "clippy-1.55.0-x86_64-unknown-freebsd.tar.gz": "ba035cd7f62468fc75a56f604ac3579adce4f90ba2e6df219299f21668def51f",
+    "clippy-1.55.0-x86_64-unknown-freebsd.tar.xz": "d99e576a00d5c3a8a8e95c7879d56459681718c9fda9c7ce6bd64f71a89045a4",
+    "clippy-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "108ebbc6b311fc0cafc125f1fd7f35a82935000c60cad49a565958e47f63193f",
+    "clippy-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "1aa42d51b80e2bdadac5128bf66f84b9b1c6ca6262995a1bf34f438a55a0bdf8",
+    "clippy-1.55.0-x86_64-unknown-linux-musl.tar.gz": "e248a8b3987c2750439966ed5df385a089147079105d85041a8147b1044b4f3c",
+    "clippy-1.55.0-x86_64-unknown-linux-musl.tar.xz": "fb6818a511ccc6b49d943c8c5df85864f47df5ade77769b17ffbc48e7a2b7bc8",
+    "clippy-1.56.0-aarch64-apple-darwin.tar.gz": "70eb9ec3d9ab79c20030bd0df903ff972dea451dd2a4b55c7eaa8837c1782071",
+    "clippy-1.56.0-aarch64-apple-darwin.tar.xz": "b7fa611cd2520b1295d1c7da7f801362b53e84224e50460f838709a7a9c2afd4",
+    "clippy-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "fb62502c82cf35fecc55761fb3f7a816d2d355cb31ad89fa844be4a1368853de",
+    "clippy-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "a5df55745445a3337c799013112ad8909f02af368f63703435d6ea6fd7bf8437",
+    "clippy-1.56.0-aarch64-unknown-linux-musl.tar.gz": "fb1852dbeff93f1518ae3d0f7adfeb95596aa55069ad24dbcda14e59bd9ec9a2",
+    "clippy-1.56.0-aarch64-unknown-linux-musl.tar.xz": "f4bc1a9deb52455780d7951d6ac747624e83f40b900c3fc55f43a6426f49287e",
+    "clippy-1.56.0-x86_64-apple-darwin.tar.gz": "9410b2f7096ecc3f495fc8a36e14bd566fdd3e6fda2923b4732c3055da81fcf7",
+    "clippy-1.56.0-x86_64-apple-darwin.tar.xz": "71982616a49d329c02ab9f6835084e5f819335f12616ff4c543958f8345878d5",
+    "clippy-1.56.0-x86_64-pc-windows-msvc.tar.gz": "cdca7f40793889dca4eb19b846c7ca7bc60ffd8f5cc2fa20c6c71b66c26e9449",
+    "clippy-1.56.0-x86_64-pc-windows-msvc.tar.xz": "4c09010d38fbca074ee9d8c3dc9fad2b38c89514d271ed82644bf398035f7440",
+    "clippy-1.56.0-x86_64-unknown-freebsd.tar.gz": "c5751a4a7043c7a29755459193cde2a1468b4a0726fb3b188853afc6d6870510",
+    "clippy-1.56.0-x86_64-unknown-freebsd.tar.xz": "a7ab2b170e992ae9b28452c312cbab22cfe225d2cd6c0574faa413d9f51acd41",
+    "clippy-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "52b49ecc5d44d7f83983ad1aaa37ed9d0ac86a72395cef9e31d06f4ba2343c03",
+    "clippy-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "0792b033388566452102c527887d38c25477fcd68a01517d1c65120d6a2c91d0",
+    "clippy-1.56.0-x86_64-unknown-linux-musl.tar.gz": "32b7b596225dedf38f9228edd1fde9211f6bd1969f924c3de7cc0d5150577487",
+    "clippy-1.56.0-x86_64-unknown-linux-musl.tar.xz": "3f80ef76ed342fb970cfc33bbb2660519340c28a110e975db4e653f708b7bf1b",
+    "clippy-1.56.1-aarch64-apple-darwin.tar.gz": "a3ea45a2c569bbfabe556c6d3c3ca6caa3aa84cd1c4897027a7ae17856ad9c9c",
+    "clippy-1.56.1-aarch64-apple-darwin.tar.xz": "e3a19daed444c493899e270ce3e531c4d3aefa2d033143fd5f70762c557e4ee5",
+    "clippy-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "2b9bea99c887b07b960325f51989600c120278ba658ada17ca9b9f8c75270265",
+    "clippy-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "bad8580d031ee3b51e55cfea408e44d375ae7baad8841a455f5d5983a998bc93",
+    "clippy-1.56.1-aarch64-unknown-linux-musl.tar.gz": "578aeb964a07730e8f92b360e7e96c89728ff35d9d2bd21b1e7436b06960b0a6",
+    "clippy-1.56.1-aarch64-unknown-linux-musl.tar.xz": "562ca14ebcb2ca6ff633f14c3c397c880ed13d067b8dfeaecba8ab1712c565ff",
+    "clippy-1.56.1-x86_64-apple-darwin.tar.gz": "00690eb127e30b75992256481e75d4f3dd6afcedd0d00495eee88137cdbfc6a9",
+    "clippy-1.56.1-x86_64-apple-darwin.tar.xz": "dabcafd0287fd45f5ded4a13ae2c9582e2ec168bc4d860196fefda80879dde5d",
+    "clippy-1.56.1-x86_64-pc-windows-msvc.tar.gz": "932cb41989bb9f72c1a8c37a306a663d311fba26e34f3759e3fe533c963c1571",
+    "clippy-1.56.1-x86_64-pc-windows-msvc.tar.xz": "7f449cec3545e5bf40f28a3bdaf6b41ea572ce3da2d012682e10eb657123b7f1",
+    "clippy-1.56.1-x86_64-unknown-freebsd.tar.gz": "2e25fdf46fb4144115583cc2ee9a43d9d8a5ee8806a00ed676c89ab3f26ff799",
+    "clippy-1.56.1-x86_64-unknown-freebsd.tar.xz": "0dee72fa7b8159586119e7ec600f187961d778e7590415b91b8ef8250347fbc8",
+    "clippy-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "07bfe461a7da0631917a1c2ff0f319af85d1083ada911a089a76e792cf673d16",
+    "clippy-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "5f295ce72bdea0e1da07df703f0ccbf01b235c8e35c7ebf7612a747c833ee14e",
+    "clippy-1.56.1-x86_64-unknown-linux-musl.tar.gz": "031f5118516ee442d9489ac32922cfa322b76629ba2dbcbd10047891651e8955",
+    "clippy-1.56.1-x86_64-unknown-linux-musl.tar.xz": "48a17a9b411a77e944fef8e0afe0a8dca72bbf09e5c853a4a564acb42b378a80",
+    "clippy-1.57.0-aarch64-apple-darwin.tar.gz": "1e29be461daed9196ffeabca4855501de118a503863f54873cb24b18ffb785ce",
+    "clippy-1.57.0-aarch64-apple-darwin.tar.xz": "148bdb4854df2d53e8ef0971ddd2d2898fc63c4c68efac81a50f2a5b64e61294",
+    "clippy-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "c6f082eeb70580e293feb68a0bf415d8e490675a50e66c67384cbbf2c38539e2",
+    "clippy-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "d73b283093aad701749c9ab4a8a891fceab1439e6797d068ba8202712b259393",
+    "clippy-1.57.0-aarch64-unknown-linux-musl.tar.gz": "f8ec644a01ef3f69db2b90e91640334de4b5b557ff2a085053e937f12d428f14",
+    "clippy-1.57.0-aarch64-unknown-linux-musl.tar.xz": "df4a723ed40a8510fb89e36c8212d9433bc8e42082e27b420a31a9898d4550d6",
+    "clippy-1.57.0-x86_64-apple-darwin.tar.gz": "f232a98a50cc0cb6237a09e59e12bf0ed67051e369d5371519085f91f7bd9411",
+    "clippy-1.57.0-x86_64-apple-darwin.tar.xz": "b755d61cff4f97d5034cf84e6c16024f141533c0e4f000afd293cd25326ab093",
+    "clippy-1.57.0-x86_64-pc-windows-msvc.tar.gz": "e24ba652942e85bba965b61045f0515f4c7f3537eeea6ae7023c2110179545d5",
+    "clippy-1.57.0-x86_64-pc-windows-msvc.tar.xz": "4fbf7c930d25f697be01c3018f83228d7595b60f84c07477e515eedc1324e5d1",
+    "clippy-1.57.0-x86_64-unknown-freebsd.tar.gz": "664d64fa5557717b7ea14fb3dfa8c7a32fc03296ff6ea38243e42dbb371776b7",
+    "clippy-1.57.0-x86_64-unknown-freebsd.tar.xz": "05723d3f72002d77aa1630afca1574cc4a185002b5b1f14a42518dd097cc51ac",
+    "clippy-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "650a417e4adb00c29795110fb07d671e8fe79ef54a682a357defe7b402d09838",
+    "clippy-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "b82b6181b451f6aa71703a54e97f756a3fb4c5dbff5f1f58135f91c4d59151d1",
+    "clippy-1.57.0-x86_64-unknown-linux-musl.tar.gz": "ba8eb172cc6435e396312509925058af6bc16ddd6da8abca7a89b8dbf4dd32d3",
+    "clippy-1.57.0-x86_64-unknown-linux-musl.tar.xz": "0eefe5f20d9ac09139bcd7c2398041e1636256f32abe6e7bab7ccaf57eafe289",
+    "clippy-1.58.0-aarch64-apple-darwin.tar.gz": "8370af0cb5e274de23adab83eb62ce32bf117dfe4681a731719d2b3d1a9758b9",
+    "clippy-1.58.0-aarch64-apple-darwin.tar.xz": "995192fd0c3db63929b3c8766ecba63957550714ed56535fe165317c5e5af349",
+    "clippy-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "d228ee69d7552d66f637d0afed4d43098fe0b87fc4cd15ff670f06aec642e171",
+    "clippy-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "d1a98ec6344aebdf3b72b11deeadf6ab51cded7d615236c6da3ec87aac4165a0",
+    "clippy-1.58.0-aarch64-unknown-linux-musl.tar.gz": "5dd6ae5262d0b02f417d37698e9ed72a44880cf389e6ca4c2ad6fdcddbc87e3d",
+    "clippy-1.58.0-aarch64-unknown-linux-musl.tar.xz": "4c1a11ebdff3e30998b9a1993ab65bd5389bbb0824b6ea37930970b02dec373d",
+    "clippy-1.58.0-x86_64-apple-darwin.tar.gz": "98489c63d307db213c66d18f375c4feca49eaca1a48967d0b13e5395a1564924",
+    "clippy-1.58.0-x86_64-apple-darwin.tar.xz": "425003e97760662dc01bbbe9ade86c8d0c43b1f0a18ab82a4804389668d1c153",
+    "clippy-1.58.0-x86_64-pc-windows-msvc.tar.gz": "52ca3e4cf88a39ed02aa573de29a88868b5bf326c4d148b12b791071d004c79a",
+    "clippy-1.58.0-x86_64-pc-windows-msvc.tar.xz": "1a1e13a5989f49a2c0d0d644fd7b3802f71b1685d608ba760b340a4f9c092a9d",
+    "clippy-1.58.0-x86_64-unknown-freebsd.tar.gz": "801695120c015e84980408fce40ce0797c7720c291a7d8b56ca0a642d133d336",
+    "clippy-1.58.0-x86_64-unknown-freebsd.tar.xz": "b92ce8afa864226003d8edc9aba6b5e7d5b286553f420377b7e27638ff0163ce",
+    "clippy-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "747524e25f22659447bef677083625657caa2138a945d44998eb375b4262f9c7",
+    "clippy-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "2ed31e60dade08462fc829f89a780144de50604d601eed1c4cfa5492918a3a59",
+    "clippy-1.58.0-x86_64-unknown-linux-musl.tar.gz": "dd4bb678e1f48e6013b46e350355a4911dbef865d23613cb950cfe3691cae88c",
+    "clippy-1.58.0-x86_64-unknown-linux-musl.tar.xz": "efdad26de16a4809316acf7ddf6a0f55a9653acaee26761595ff93ece1cb8137",
+    "clippy-1.58.1-aarch64-apple-darwin.tar.gz": "89e881ec4e8e2a54cef8999fc85bfec72fc749f4bf3eb292d0b6b7318652992b",
+    "clippy-1.58.1-aarch64-apple-darwin.tar.xz": "3796203287313e58f286d0366acc745dd139d5aed97a4afc09254499ced5d3b8",
+    "clippy-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "efc65bf92fc1011dc34805d6b2ae18ecebd85f9593fc4dffd9dd1e59daf6eb6a",
+    "clippy-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "93c5fcdbf93d4559bbe325af4ec3139b9765eb1db1606a8a10688b2a2d7c1b0a",
+    "clippy-1.58.1-aarch64-unknown-linux-musl.tar.gz": "d28e4e64aa8b96dea036165481ba0b3df118edad7cead3902b1bfe5becf0dd33",
+    "clippy-1.58.1-aarch64-unknown-linux-musl.tar.xz": "aec7b7e7d8077175b256d967ffadfb8aed43527a683a7c8f78786bcb01164eec",
+    "clippy-1.58.1-x86_64-apple-darwin.tar.gz": "e5a67b36bec6c0ba128f134fd08621a6a72b08db64020592b171ea66a1af300d",
+    "clippy-1.58.1-x86_64-apple-darwin.tar.xz": "72bb66d4b12c656fd96c66579352b586a558187e0d3faffa300ba527104f7533",
+    "clippy-1.58.1-x86_64-pc-windows-msvc.tar.gz": "ee3186a2fe0dd68cfc4d63771d5cb67fd7c34bffcf8bc60fc7f0e70e0c37e94e",
+    "clippy-1.58.1-x86_64-pc-windows-msvc.tar.xz": "92b76b4b8ffa8bcbcb2374cc444876023c5e3c11a374d7113a1611c7d4b02769",
+    "clippy-1.58.1-x86_64-unknown-freebsd.tar.gz": "e52bdea9a882c610b4510011f36b359df5dd0c6b33e3e6c7c1ea1336b59774e9",
+    "clippy-1.58.1-x86_64-unknown-freebsd.tar.xz": "05d49ed2b4d9f47157c93742ed7dc9c6142d36f27355a0c4409146ca14d88f08",
+    "clippy-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "8a750e67626799c6d7c2424f5ba47c9d9d4aa128bc2f7b78f9bedb8e4e8c46a3",
+    "clippy-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "affbb29601df1afc15db2883271b2b57f989acd78433c4dbabecb35300fc9d96",
+    "clippy-1.58.1-x86_64-unknown-linux-musl.tar.gz": "74ee750364731d8a1f67a7dda33381e64f07adb8af782a5fd00f1b8b5f09b083",
+    "clippy-1.58.1-x86_64-unknown-linux-musl.tar.xz": "24b94bfe9559ea133b269aaa0248113a94018ddb5a8e99af37d5dd0e8da12524",
+    "clippy-1.59.0-aarch64-apple-darwin.tar.gz": "37e2589cb182da7c7878eac4386973ee0539e11de6cea047d500247e57214573",
+    "clippy-1.59.0-aarch64-apple-darwin.tar.xz": "bef023f286d3c44777e14bb93c7244d12334013ee10b438a8bb8f473d893c3b9",
+    "clippy-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "d4278d73c317d487ea4cdfbaf43ffe048744c0ce887c584eb396016b9cc007af",
+    "clippy-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "061d7eefa1e669a8df9195e96a7d8341e92a897cd505a61892561ae11300d83c",
+    "clippy-1.59.0-aarch64-unknown-linux-musl.tar.gz": "9f8e96d61a23c83cc59c44bac7b42b997f173974ee8b6cd4a9c3b4a54caa0107",
+    "clippy-1.59.0-aarch64-unknown-linux-musl.tar.xz": "acee673f639135e8531b3cc6d88b3ea111e08233e2a127af454fd32e6e476c56",
+    "clippy-1.59.0-x86_64-apple-darwin.tar.gz": "932e843d538f3775d7996ad2f9a4e412f431d413c6585521fc95dba85aca2bad",
+    "clippy-1.59.0-x86_64-apple-darwin.tar.xz": "c0d5426868567606bc5d5964f33a02cfb0ea0d48b97f922c242ea7ec5e74dece",
+    "clippy-1.59.0-x86_64-pc-windows-msvc.tar.gz": "786751cdc3b1937c19e555255092c888509e81ab6295887da0e92f1de7f5900d",
+    "clippy-1.59.0-x86_64-pc-windows-msvc.tar.xz": "e8b61f0d9544cc43e6074dfaab023512f2a2a7c00b18eeca7afc73d83f474ff5",
+    "clippy-1.59.0-x86_64-unknown-freebsd.tar.gz": "d1c2ab40e6be423d4d4e29af85b56dec090cc49afb82684c07b0cb19317d043b",
+    "clippy-1.59.0-x86_64-unknown-freebsd.tar.xz": "b27a1aec40afae6ed5c905bd0dfe97b718bf911c12cbac4539253f24a13d33f3",
+    "clippy-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "aad54aae93bd8cad8fa1ae77a0e4f79b8439d471b1478a0fb67294497a782edb",
+    "clippy-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "6677bf4d2b46fbd3a205b304b56482d92da3dfe7c45668ed59222724c7c83bd3",
+    "clippy-1.59.0-x86_64-unknown-linux-musl.tar.gz": "23b57a9b3b30b6724df278860d9700e50e88b5dff5afd8b8ddaf0bf235695762",
+    "clippy-1.59.0-x86_64-unknown-linux-musl.tar.xz": "e8c74d7676c9938843d4d10e3fa8b6a0d6a3ef0f12bfcd58e7cd1658997f0ea2",
+    "clippy-1.60.0-aarch64-apple-darwin.tar.gz": "67af957c613f1a9a3de032a4ec92c97694d3b210ff9af7998a9c9a41b6a0ab07",
+    "clippy-1.60.0-aarch64-apple-darwin.tar.xz": "70c34acd2dc0c203016a9d40a76b0135b4a4b7a146d8c2b8d7a08d982fe70a01",
+    "clippy-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "225383cf9b630190ed4ad0841b98e1cfe40580571515ee2d8a3acf89845e1190",
+    "clippy-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "c419069055c8940279c10cfb19b96c7bad09a47eaa773652c2c47da83fc78cf1",
+    "clippy-1.60.0-aarch64-unknown-linux-musl.tar.gz": "e658017604bf3b52a2a6ae348401cc95d6167dfbe6c5b030e7972537f9a05f7f",
+    "clippy-1.60.0-aarch64-unknown-linux-musl.tar.xz": "800981b5325a23f49d8acf431dcdd5a3205a0ace7066ba25052381a09744cbb6",
+    "clippy-1.60.0-x86_64-apple-darwin.tar.gz": "1ede0da348aa9dcccc4a2366db99bd39ac9b3f1575137d63702d49a9a65b0b4c",
+    "clippy-1.60.0-x86_64-apple-darwin.tar.xz": "ada91302c1fb5062309207a1e3583a90d55bbc9508e97b98c6ef225f63475c12",
+    "clippy-1.60.0-x86_64-pc-windows-msvc.tar.gz": "e5cb742b74a7430545af4900e9b63e260c3b4d8990b5ce3f5e18e66ce8855ab7",
+    "clippy-1.60.0-x86_64-pc-windows-msvc.tar.xz": "b8a998c4c186664e73702ecf3bd38e59f64c37523b8092536da7cddd9a82dde8",
+    "clippy-1.60.0-x86_64-unknown-freebsd.tar.gz": "ec9076b4c934b7b6eef8159044e6e2296991d662f2cc867e44956ca2abfc4d90",
+    "clippy-1.60.0-x86_64-unknown-freebsd.tar.xz": "e4987b4df645f6720017d5e2b2a1d45d03ecc289d56f5f4d8fa75092da9dc37c",
+    "clippy-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "2efda20cbc60287cb0ea91a057568f9266f8589192c257cd9f21dd3294eae0fc",
+    "clippy-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "cbfc51f46cccf4cee9d87f66d1206883d6dfa2c47051a1fafd42bd84bcffbabe",
+    "clippy-1.60.0-x86_64-unknown-linux-musl.tar.gz": "3f6f9cdcdd5ab81aad2cadd3cbfeb9a752a3dbeb5fbe4cab382b2ccc5ff25329",
+    "clippy-1.60.0-x86_64-unknown-linux-musl.tar.xz": "23056cc386b172ca987c414fcf7b601a3005db80c6af158f84fd27ac0888db37",
+    "clippy-1.61.0-aarch64-apple-darwin.tar.gz": "f9d24b7f596d580061dec5fa47184842945f8f5a440247e08ddca3a6196cac54",
+    "clippy-1.61.0-aarch64-apple-darwin.tar.xz": "721a6f26f8082a82506fede6ebdd12d8c1d23fd6c80f2ba242ebe8b27ed67d75",
+    "clippy-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "f6062dbd5137468ca5acca314e36dea1b74a77b433ac874b7a2c2caf47b87bea",
+    "clippy-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "c9ddba5eeca792516a5dddbedbb55adb1a0cd96ba410325d6a8b445b72209845",
+    "clippy-1.61.0-aarch64-unknown-linux-musl.tar.gz": "8c3e9d1a9e33891b9f9eba74fbedc84180579742ef79023670dc99f2b3b694d3",
+    "clippy-1.61.0-aarch64-unknown-linux-musl.tar.xz": "4ba2ba81832921e9212b8782790cab2ae955284aaa403b3ace392f0644040a74",
+    "clippy-1.61.0-x86_64-apple-darwin.tar.gz": "383c5088789e09dad44e670bb4df1f07ba4c7b36bdf9186d0bfd20a19a188a9c",
+    "clippy-1.61.0-x86_64-apple-darwin.tar.xz": "78f8b0cd8ec46f03697cc5183659cf9cf6d56d8cbab1704c67529908e4591730",
+    "clippy-1.61.0-x86_64-pc-windows-msvc.tar.gz": "294d907c95839b2cc21ebf73a8ce85252c6ed093d38fef3a64665b3a24197f3f",
+    "clippy-1.61.0-x86_64-pc-windows-msvc.tar.xz": "05dde2a545248bba975d97750838e283f2d9c9f97aa65812639ec4e0cc1f1a9d",
+    "clippy-1.61.0-x86_64-unknown-freebsd.tar.gz": "1804477befcc3e26118dd40c815055e35d13ccfb277ee9a324868139a5b43ee0",
+    "clippy-1.61.0-x86_64-unknown-freebsd.tar.xz": "31c35a66bd139df588489f27a67f45e5dc544b20f7194b4d8436a7940f1c0a2f",
+    "clippy-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "89b07f598d98be902ca678d156cf280feb5fb0ced4bccb6c0d6b286233f5c892",
+    "clippy-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "821b1275799937a5273c48d2d652938bfa75f1f06ff4443fda66d0ab659c44fa",
+    "clippy-1.61.0-x86_64-unknown-linux-musl.tar.gz": "4cbf5e5a6957f351c38b78a9725be127bac826f83466bd6cbd86ae0d8cf54f91",
+    "clippy-1.61.0-x86_64-unknown-linux-musl.tar.xz": "5a6b76e0945f4d16423ce3f7f71398f15f90d2d13702de246b105366ae6c268f",
+    "clippy-1.62.0-aarch64-apple-darwin.tar.gz": "8d01abc5fcf5af194008091f79b5aa4044c3f199c60d4d7b1e8fa9587f590709",
+    "clippy-1.62.0-aarch64-apple-darwin.tar.xz": "32610d7fd41b342bbfbab32e4bdd5669fe701cca57b1da6f25baaa5dc4837704",
+    "clippy-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "7f7c399ec6feff30cba05f3ae41a5bf11674bd89dbd1bac3befcab75c6524b6d",
+    "clippy-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "ed413e817b702fd7275f25798f1a935286367d3ad7da12c9b460a7dd9882d64f",
+    "clippy-1.62.0-aarch64-unknown-linux-musl.tar.gz": "05b7d6b91838ecb140432bbc32aee62d281b7f5e56a64d5d8a0b0f4b2ffba26c",
+    "clippy-1.62.0-aarch64-unknown-linux-musl.tar.xz": "609b64e7244b75cb053f835d51dc6b45c583673dba0f5b5776cadb0835980334",
+    "clippy-1.62.0-x86_64-apple-darwin.tar.gz": "ec6d5296bdfbacf0e7c44be0c89f5ab3519fd18c68df184c18172b6ad650c0d1",
+    "clippy-1.62.0-x86_64-apple-darwin.tar.xz": "10eaa92b0409a2272c98f7117e42aed996130f6eff1630fa22c71791aef075a4",
+    "clippy-1.62.0-x86_64-pc-windows-msvc.tar.gz": "dbed1bc07a30a86f8f17a2353ae8fec97167202f7db477846182c0bf898e685e",
+    "clippy-1.62.0-x86_64-pc-windows-msvc.tar.xz": "bf42669c573a24a0efcd295eacde7b1378bf1d39c06abc41cca18fdd8cb89d83",
+    "clippy-1.62.0-x86_64-unknown-freebsd.tar.gz": "21bb4f0b5f9633a4aee1231dea7c66e76757a1fed88dca8420a1724db547848a",
+    "clippy-1.62.0-x86_64-unknown-freebsd.tar.xz": "952f3568f6e1d4c8d4f22dd3e6fcbebc99541044185312460483fed767a013f3",
+    "clippy-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "6f5ff978a18c557c4b21d327de25eafd5346075d12278bdc6677dea51509184b",
+    "clippy-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "b80b3572139036810eda80a4716f47b7166b42f935827773b2c7e74410d2951f",
+    "clippy-1.62.0-x86_64-unknown-linux-musl.tar.gz": "ba37e0ebb2c6778103bc7d437b13de670beb6a2d9dad3ac1f81eb5626cc06c78",
+    "clippy-1.62.0-x86_64-unknown-linux-musl.tar.xz": "f5f3f0334232408328dde685b50f210d1f0378e8d8fed6effdecbe2cdf5db4db",
+    "clippy-1.62.1-aarch64-apple-darwin.tar.gz": "70ec000ba2615d62a853dd1b28e8446510c44d486f254e111a9ee752eef6b133",
+    "clippy-1.62.1-aarch64-apple-darwin.tar.xz": "133ee7470c78caad37ebecb7a7878302a4cd2c04dd6b75bb10b50f9d5d4886ad",
+    "clippy-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "8d3266b3f1139a0cc51db63b55949353852483804410b80ac71a1654eeef237c",
+    "clippy-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "05a257e6269c061dec7fe200a78b10ffd83d3eda15df7e3f3ea365cbb2803b6b",
+    "clippy-1.62.1-aarch64-unknown-linux-musl.tar.gz": "cdb6b257e1c2d5c5fd06458e577f5eab876e65cc5cc65f3e54ba040116d8c97b",
+    "clippy-1.62.1-aarch64-unknown-linux-musl.tar.xz": "838d795bdadad0f598dea51284a5ba4c7e1640979052b5eb52a12c08ae1068a9",
+    "clippy-1.62.1-x86_64-apple-darwin.tar.gz": "6c4c4b1d4d1f9d4f99f7417942f3c08cbcacba89e58a38b91fc392926a5d9029",
+    "clippy-1.62.1-x86_64-apple-darwin.tar.xz": "4036047ef496110a9ba45066a8fb8bd57e69cc670be762750f6812bf1cf0bcf1",
+    "clippy-1.62.1-x86_64-pc-windows-msvc.tar.gz": "e9212f0be51000bf0e3c6e7ae5070c8f7840454f74515a8a571260d7a89e9523",
+    "clippy-1.62.1-x86_64-pc-windows-msvc.tar.xz": "12956ab701220d0d881d0006ab8aeb3c2a3e8ae416ee9e1ac36ca300d8289203",
+    "clippy-1.62.1-x86_64-unknown-freebsd.tar.gz": "0d3e2a2478d74261ef868796f282e464e4e120f279effa79ac9d4c3acbba93c8",
+    "clippy-1.62.1-x86_64-unknown-freebsd.tar.xz": "65e03c44c5e636e7315dcbbcc0db49684393f9e805d5d1aed261d0907a5ccb70",
+    "clippy-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "8d0cf0fea4132e3e57793e01d494d85b4010e2073b531119f0c4f88a28fa8f05",
+    "clippy-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "1d7d113459ae1ac060d37c7de8d981c651eac16527e8ba5bedcd89309aca1e10",
+    "clippy-1.62.1-x86_64-unknown-linux-musl.tar.gz": "470fcf84bc8ce04229f16f493513b05902aa600cb85ddcd7a80a9212bb415a91",
+    "clippy-1.62.1-x86_64-unknown-linux-musl.tar.xz": "eb07eb7ec59e4a332f3a8d761612fb11eaf6c669f3451c1a056117f3c1ab466e",
+    "llvm-tools-1.36.0-aarch64-unknown-linux-gnu.tar.gz": "942856e49837a1c3b9c7d48b52cf0ac0fcb2bb31bb691fe53bfb934afb561c7f",
+    "llvm-tools-1.36.0-aarch64-unknown-linux-gnu.tar.xz": "e2671f3710f65642779023e46ad7402cc3bdaa15861ccfd6b48f1607e0b76ae1",
+    "llvm-tools-1.36.0-x86_64-apple-darwin.tar.gz": "ed702a4174a27fcf118f301e79835c3da205d3d98adb4acc294b72293a2ec790",
+    "llvm-tools-1.36.0-x86_64-apple-darwin.tar.xz": "790cfc66b0b0cb9ce00567e624aaa334b6e3719b44efdcdba1745982da228509",
+    "llvm-tools-1.36.0-x86_64-pc-windows-msvc.tar.gz": "cf72242bcf873227c026505f56f3ffdaa2febde828d67ad7fc04c4a2e72d7587",
+    "llvm-tools-1.36.0-x86_64-pc-windows-msvc.tar.xz": "244c7a0b1b5bfc211317748991cae1d93721597056500317e4013fcc5f875c7e",
+    "llvm-tools-1.36.0-x86_64-unknown-freebsd.tar.gz": "37c19db740acbe462d878fe193b59653a5073b23a840c6a2e2924772c0642b56",
+    "llvm-tools-1.36.0-x86_64-unknown-freebsd.tar.xz": "1242f280615f66d1388bbda36dd15a15343cd35028a24ee1070dc97787aad9ae",
+    "llvm-tools-1.36.0-x86_64-unknown-linux-gnu.tar.gz": "beae1690418b4adffac166fbfde525be8f5e2b2ce220ffd19b420edb1efa4477",
+    "llvm-tools-1.36.0-x86_64-unknown-linux-gnu.tar.xz": "6104a8a3edec668b4771e5314fc5355267e636a73c33bdcb15b1b39ccf17732e",
+    "llvm-tools-1.36.0-x86_64-unknown-linux-musl.tar.gz": "6f2754a2305792e3160fe3d1710e8609b242fbe753b8b18867acf6f3d326dc95",
+    "llvm-tools-1.36.0-x86_64-unknown-linux-musl.tar.xz": "62868eaafbe7b095203435078dd80df9883b3298c2d16e6a7600b32e1ce2bd81",
+    "llvm-tools-1.37.0-aarch64-unknown-linux-gnu.tar.gz": "fb7cea148816422466aee656d81b08f9cb819cff8c431574f08c281b58547413",
+    "llvm-tools-1.37.0-aarch64-unknown-linux-gnu.tar.xz": "42547197197a333084d337ca672ab99175042f004ff7276a01c3d8910045b786",
+    "llvm-tools-1.37.0-x86_64-apple-darwin.tar.gz": "b882607b0f181d3942eb00a13cb375d820d000ced456a0cfd626ad79f597f8ac",
+    "llvm-tools-1.37.0-x86_64-apple-darwin.tar.xz": "09547519effffff5e394c9566ca8d4e4d16aac5c92b259ea4ecc6ff9222cddc6",
+    "llvm-tools-1.37.0-x86_64-pc-windows-msvc.tar.gz": "804a1455879b72f9439e9f2d6469f328847ccb432f69b41ccbad2ecc0e124fb2",
+    "llvm-tools-1.37.0-x86_64-pc-windows-msvc.tar.xz": "b63007bb2400a76afeb86eb998bbaa8923aaf4fadac78e350d8665f09adbde09",
+    "llvm-tools-1.37.0-x86_64-unknown-freebsd.tar.gz": "206bf31dc2851a27b697acd5ad978d2b0d1cfdf26e01b7798388030591fa7899",
+    "llvm-tools-1.37.0-x86_64-unknown-freebsd.tar.xz": "118d35a8513767ce563907a47c093c578fb1ced9ec7950f032ef4cddf8b121f0",
+    "llvm-tools-1.37.0-x86_64-unknown-linux-gnu.tar.gz": "da54ade6c7e2776edab1b6f1216477168cadf30fe40e503cca8b4bce20d89bc6",
+    "llvm-tools-1.37.0-x86_64-unknown-linux-gnu.tar.xz": "c1dab477e0fddb62276cbf33eeaa598c43f793be675b9bcbf5e66ffe1a94d0f0",
+    "llvm-tools-1.37.0-x86_64-unknown-linux-musl.tar.gz": "737f6f903340700c7953c46f3143418d90f8bc1f879cd940ce0bcc479109b7d4",
+    "llvm-tools-1.37.0-x86_64-unknown-linux-musl.tar.xz": "f9526d0f3fd4d51b8b9a31b687ae50fd7730f4c412be05d1c175df56832901c5",
+    "llvm-tools-1.38.0-aarch64-unknown-linux-gnu.tar.gz": "dbbfdc0dd802feb94e8e0f0eb0dad2c2f3e6bf69bb58d371622c94e8c7e82e25",
+    "llvm-tools-1.38.0-aarch64-unknown-linux-gnu.tar.xz": "1521b4e54a13e50dbf6df0c6dd64f7d290456d5f52dcef6da40e818daf2ec3c5",
+    "llvm-tools-1.38.0-x86_64-apple-darwin.tar.gz": "7a4f8502b93e6fc3a4d89ab94230a90c94778d17badcdde25ebb545f4e37a7c0",
+    "llvm-tools-1.38.0-x86_64-apple-darwin.tar.xz": "5c6843bb4716a16a5e5b621f95485c5713864e736404d5942d19ee095716beea",
+    "llvm-tools-1.38.0-x86_64-pc-windows-msvc.tar.gz": "da005a040ee70728c224eb23d1374420422ac64e2b4ba328ac6d7b5934389061",
+    "llvm-tools-1.38.0-x86_64-pc-windows-msvc.tar.xz": "38757118c55cc0ce2153914d86775477d78c9db18f8bc44cf153c726922016bb",
+    "llvm-tools-1.38.0-x86_64-unknown-freebsd.tar.gz": "f4da25e84e31a78b6f761b3f597c98391bd6873298c7708dc886b2c72f56f874",
+    "llvm-tools-1.38.0-x86_64-unknown-freebsd.tar.xz": "d9ab51a8f51dc37325f47410f6cae0646ef68905bb0c3c64cb69d628e90588ac",
+    "llvm-tools-1.38.0-x86_64-unknown-linux-gnu.tar.gz": "0fff5bc69ebf49fec0372aa73f9b6757b8a6bb506f14f48d153e6f14de2fd19a",
+    "llvm-tools-1.38.0-x86_64-unknown-linux-gnu.tar.xz": "c53fa8ee6322538548bc7dbd29b85daa4135f6d981cbd4274693807af643aef1",
+    "llvm-tools-1.38.0-x86_64-unknown-linux-musl.tar.gz": "5877d995125b6d17f25f23f9eaccb5775dc2bde5f3b7062fff8cad23221e80e8",
+    "llvm-tools-1.38.0-x86_64-unknown-linux-musl.tar.xz": "1d715c93929bb8bb0ad7ef04b2c6f8d404b00db54577824cb3cacb1151f35b28",
+    "llvm-tools-1.39.0-aarch64-unknown-linux-gnu.tar.gz": "9c7eae2e5770d20872f6012b273d2ca5dab09f97f497a0cc82ea5af8e2b08527",
+    "llvm-tools-1.39.0-aarch64-unknown-linux-gnu.tar.xz": "eb9cd89e3e9b927269de3e18ea1f1dfc7029bfeec5a5c12f18b420668b24f8a3",
+    "llvm-tools-1.39.0-x86_64-apple-darwin.tar.gz": "52c15480345a18d55a2141a9f440fe874a8686d3d94e4637b2c4884df7c88a43",
+    "llvm-tools-1.39.0-x86_64-apple-darwin.tar.xz": "b0f1de2062f8e7dea2996c4a7f1940b8e8d401e00e6b0b2e854c6efe15194225",
+    "llvm-tools-1.39.0-x86_64-pc-windows-msvc.tar.gz": "87b7cf10ebab53bb7fab625d603f80e35111afaeacd915df63c19ad68382f31f",
+    "llvm-tools-1.39.0-x86_64-pc-windows-msvc.tar.xz": "bc26aaa56dd7236b274ab5f345391157d56108535d3b0a9e0a60b10e965c2f3d",
+    "llvm-tools-1.39.0-x86_64-unknown-freebsd.tar.gz": "f451ffb87b00a277264c5acf5267f8df61300089a9798607b4cdfebc88fabee1",
+    "llvm-tools-1.39.0-x86_64-unknown-freebsd.tar.xz": "5f10f893813aee17a546e1527d995a791877eff699c61a40722448d2aa9e3e0b",
+    "llvm-tools-1.39.0-x86_64-unknown-linux-gnu.tar.gz": "0a87b543e3841d415887a4543587b783fce678a7097a774a56a2032cee842991",
+    "llvm-tools-1.39.0-x86_64-unknown-linux-gnu.tar.xz": "61e8e3352c5f829f43af66cb421e5efccb7889f4139efaef8c20089796776262",
+    "llvm-tools-1.39.0-x86_64-unknown-linux-musl.tar.gz": "da87e08670b7dad359f3d0b3f132d212713dcb21cf1c5e308acf257632de0075",
+    "llvm-tools-1.39.0-x86_64-unknown-linux-musl.tar.xz": "495297bfdfe53857870ed60372128e52ce6e81602843a7f58c4c6ddfe0f5a1fa",
+    "llvm-tools-1.40.0-aarch64-unknown-linux-gnu.tar.gz": "caf36148d0f5a885cad05605d80cc2c805ce8456837b6dbb34b47420a4d52475",
+    "llvm-tools-1.40.0-aarch64-unknown-linux-gnu.tar.xz": "37df56699d89b3ed43240995ee7ddc80478fc5820a8dfc5e3f69a6a4c6e9b287",
+    "llvm-tools-1.40.0-x86_64-apple-darwin.tar.gz": "d4c4abb2a7b2800500ef4e0a46493c5340bb7b0be84d38897573281e93b8577f",
+    "llvm-tools-1.40.0-x86_64-apple-darwin.tar.xz": "105f368b0e931e55c681d4945929d9ff1bb194a9c4b52501fa3add1d962571f6",
+    "llvm-tools-1.40.0-x86_64-pc-windows-msvc.tar.gz": "0fe4cfa0e4ce99e45c810b8301edcdfa694db75e291b497ce8c52ec5b89e4861",
+    "llvm-tools-1.40.0-x86_64-pc-windows-msvc.tar.xz": "a06ed2207f0f01e67f08503f780e49425a0e20fcfdd73eb95730a25100f52d35",
+    "llvm-tools-1.40.0-x86_64-unknown-freebsd.tar.gz": "aa11c881fa728fa8df233c220fecd6b25cb27cbb673569cbd9a90865ae464d9f",
+    "llvm-tools-1.40.0-x86_64-unknown-freebsd.tar.xz": "403114271e36bff76dd6d50c5daf5bbde76571f50948fa1dacdfb2f50502e27f",
+    "llvm-tools-1.40.0-x86_64-unknown-linux-gnu.tar.gz": "40c5ad2c53802b8b722ebd5a06b9f51f32644d8a6d6fdc32aacc60a33bed5839",
+    "llvm-tools-1.40.0-x86_64-unknown-linux-gnu.tar.xz": "db945532a422eab326b9d74f07e018fbb35323be35434d296e255743c9773bb2",
+    "llvm-tools-1.40.0-x86_64-unknown-linux-musl.tar.gz": "8e98e884442ade699f951bdab603a012c683de5809cae6bcb25bdc81abc3c4db",
+    "llvm-tools-1.40.0-x86_64-unknown-linux-musl.tar.xz": "db8036095418c7332b0eb21e9d1a42e838d8b1b6decfdb5f8a878cb16faa20e0",
+    "llvm-tools-1.41.0-aarch64-unknown-linux-gnu.tar.gz": "279aedca8c3c12a0608de9a51fa38a33b910600e4f980487c1706cec29270c63",
+    "llvm-tools-1.41.0-aarch64-unknown-linux-gnu.tar.xz": "d39cc5de88558b4920e4525e6133235b617f68d7c6960765fe77612291d82b5d",
+    "llvm-tools-1.41.0-x86_64-apple-darwin.tar.gz": "621676b4ae3d75662463876315a58bd188ceb4b22ff249ad033e0181fe30df74",
+    "llvm-tools-1.41.0-x86_64-apple-darwin.tar.xz": "0aff78996330d8ec944a478bf6e5ba357c4a57ba1a89649051b3e2509ed64772",
+    "llvm-tools-1.41.0-x86_64-pc-windows-msvc.tar.gz": "6d1b3a2a74497b0a4e9420d87a6fa462dc608a3b41d4dae9f164cf66c290a00d",
+    "llvm-tools-1.41.0-x86_64-pc-windows-msvc.tar.xz": "166ffa82555a57638188e872381662c6f6d7f745c2f1486f80f651725f1766ac",
+    "llvm-tools-1.41.0-x86_64-unknown-freebsd.tar.gz": "311a056371edbad2194b5714f3e8d17e7a897f27b67bdbe2d827ed437d06d050",
+    "llvm-tools-1.41.0-x86_64-unknown-freebsd.tar.xz": "ff2ed2a8bf9a653399e568f16df01f92a076fc7c98cbf07245086e0b1f8c0b86",
+    "llvm-tools-1.41.0-x86_64-unknown-linux-gnu.tar.gz": "d2cfa10a162cd9b63c5b8eb3db49560532c11823bb15f836abc5e42cca1a1170",
+    "llvm-tools-1.41.0-x86_64-unknown-linux-gnu.tar.xz": "5c9b6840754f6aadabc83f6ae8d7cdb17dbcf897d126de4b6dea547aabf85968",
+    "llvm-tools-1.41.0-x86_64-unknown-linux-musl.tar.gz": "dd176d66f6f04d2e1c0deeb11d07d5882937af6c72121cad4bc7e63bba3fa0ff",
+    "llvm-tools-1.41.0-x86_64-unknown-linux-musl.tar.xz": "3ef4b31f327fa7744451599e88b449321afb533f73758767a2fe4c1ffa244934",
+    "llvm-tools-1.42.0-aarch64-unknown-linux-gnu.tar.gz": "7601ef92b42a321fee08f6adce3ca0eb612ca8703fda1db63e30bd4952f7fcc9",
+    "llvm-tools-1.42.0-aarch64-unknown-linux-gnu.tar.xz": "f34ab844163f5d005e257ed7ca26e24cc3b38fc279906c9de5e5b24520275af3",
+    "llvm-tools-1.42.0-x86_64-apple-darwin.tar.gz": "c4c0319e8be687b104162ce3654249ed76040229a77d77016e32570fbfbd3439",
+    "llvm-tools-1.42.0-x86_64-apple-darwin.tar.xz": "ce05568efa9619f55fc8f1c329373e7e157d7965d4bd8425d7c068aa07d9c4c7",
+    "llvm-tools-1.42.0-x86_64-pc-windows-msvc.tar.gz": "721b14d159d6df877991db62a0f5fcd11d8d9cd642d8f51311a2d2c99c0f9e43",
+    "llvm-tools-1.42.0-x86_64-pc-windows-msvc.tar.xz": "c560d4e3e26b7eb92fb77dea4fea2870ded85161f65f8f9f542a56f220aa800a",
+    "llvm-tools-1.42.0-x86_64-unknown-freebsd.tar.gz": "4fc2bb1ab454b21750c78f9ce19d7138e4929a804770202319a3f457b1e5c2f9",
+    "llvm-tools-1.42.0-x86_64-unknown-freebsd.tar.xz": "8a48af8442ef53dd75a38c9a8ba3dd6a01a431af372082d2d97ed6857b3ee6cf",
+    "llvm-tools-1.42.0-x86_64-unknown-linux-gnu.tar.gz": "d306ee9009eeab2062b813123628cc440f58c71c0e1d53afe1563f4eb1a5e0e4",
+    "llvm-tools-1.42.0-x86_64-unknown-linux-gnu.tar.xz": "62318956f1e3f56ab7f9f89a5d51825dd558dc9f419b78e4c4a86c061a2f696d",
+    "llvm-tools-1.42.0-x86_64-unknown-linux-musl.tar.gz": "7fc21cc7f2a8879b052fed92fedff55df5afd528912c8405ec67640f663d716e",
+    "llvm-tools-1.42.0-x86_64-unknown-linux-musl.tar.xz": "b48cd8b26c8f74467fea9a7089be7b501c954702638d603a93393201b6fbc2d4",
+    "llvm-tools-1.43.0-aarch64-unknown-linux-gnu.tar.gz": "647dc36be8dc5130a703f6ba151bc79936503d0251481ba40bfacc5bfa251947",
+    "llvm-tools-1.43.0-aarch64-unknown-linux-gnu.tar.xz": "b50aeb2f895db3f7f660a772e30194fe22685aab5661749c10840871452523af",
+    "llvm-tools-1.43.0-x86_64-apple-darwin.tar.gz": "890bf12d80b72fc0c58966e1d229cfb24764eabe356762dcaf126afbd63fd47d",
+    "llvm-tools-1.43.0-x86_64-apple-darwin.tar.xz": "3ae3418e42dcc0944b8161608946ef72e21382d77cbe2ea73e8970ff4ef5e9ba",
+    "llvm-tools-1.43.0-x86_64-pc-windows-msvc.tar.gz": "e299dea627f89f6b14897d45f39dba3036298b2c94f35ba4dfea276996682977",
+    "llvm-tools-1.43.0-x86_64-pc-windows-msvc.tar.xz": "7c61e3b3a2581dabb0e11adc095a4c8e7ef520c6a6adf5b86f33eb4e8c7bd489",
+    "llvm-tools-1.43.0-x86_64-unknown-freebsd.tar.gz": "6a64cc4b3dd0b8218b350b4fad36197edf2da33e5ab43c4670737e4d392ba586",
+    "llvm-tools-1.43.0-x86_64-unknown-freebsd.tar.xz": "ccbcd86d47041cb5064c069b684c7354ceec3f8d0585d5d41111476c4e239185",
+    "llvm-tools-1.43.0-x86_64-unknown-linux-gnu.tar.gz": "4f62cab67e89d78d886cb03379d71f6722f8c5e5c069b3c243e334381c5948cf",
+    "llvm-tools-1.43.0-x86_64-unknown-linux-gnu.tar.xz": "f0a05f05cfd563db236880a0560557527a4413e5200d359c5face0c74add4cdc",
+    "llvm-tools-1.43.0-x86_64-unknown-linux-musl.tar.gz": "ea90e9540b5618698088171793dc571614d434571d6c81a80259a597d536a265",
+    "llvm-tools-1.43.0-x86_64-unknown-linux-musl.tar.xz": "eb816917c6894cfd50ac60a86187a48169c0eaebda017d9636d9a2091f225a45",
+    "llvm-tools-1.44.0-aarch64-unknown-linux-gnu.tar.gz": "e25ee71a187d6c8969b17788fb678c9b358034ad2a2fb7557b755534eaf9cfa6",
+    "llvm-tools-1.44.0-aarch64-unknown-linux-gnu.tar.xz": "9c32279327f4fc93324aa24c13b6df94c862786a1bc8019cb60a772e077f20d0",
+    "llvm-tools-1.44.0-x86_64-apple-darwin.tar.gz": "d684de7783ee15537f78231acacb9079f821c8c8b85b889e54c40b095ae6b0a1",
+    "llvm-tools-1.44.0-x86_64-apple-darwin.tar.xz": "364067b085cc88e36a7f0dbd68a085b509d83d4869fc047b9bdaaa0fdd0613d5",
+    "llvm-tools-1.44.0-x86_64-pc-windows-msvc.tar.gz": "ac84fcc25d5d8d20592d6491576df7a72059fe9317889692badac2fc9028bd8a",
+    "llvm-tools-1.44.0-x86_64-pc-windows-msvc.tar.xz": "7733a2adc0a5da567b12b792b8ec8be8fc342d5d9306dd52dc6a794daec29711",
+    "llvm-tools-1.44.0-x86_64-unknown-freebsd.tar.gz": "3f4a17239b9dc9e84d98922ea4725f741249ba597ac1345b09c818b54b7a0765",
+    "llvm-tools-1.44.0-x86_64-unknown-freebsd.tar.xz": "f34977a0e806f3c071068619f3ffa32892195a86d4841b5794f36f12c3bc63c6",
+    "llvm-tools-1.44.0-x86_64-unknown-linux-gnu.tar.gz": "1755b589718c652071e354c3629f41a9a90a84a3649078ed697e630ba19b3592",
+    "llvm-tools-1.44.0-x86_64-unknown-linux-gnu.tar.xz": "46355e1c136687998815ad580dc1a9c0ecbb98ce6d048bd6260aab7fe3ba23e5",
+    "llvm-tools-1.44.0-x86_64-unknown-linux-musl.tar.gz": "c3abf2adba70a8cce16e4a6962b6868238858e54c9822cec64c5f981e43489b8",
+    "llvm-tools-1.44.0-x86_64-unknown-linux-musl.tar.xz": "7c88f27f55ca6ed5a009e6a3ca010538be5e2dc4877ef9db9f20b50309568e4b",
+    "llvm-tools-1.45.0-aarch64-unknown-linux-gnu.tar.gz": "1432bf52b301e16a5a57398a7f59bcee43358913627c7caf7b1568cd8824c5c4",
+    "llvm-tools-1.45.0-aarch64-unknown-linux-gnu.tar.xz": "a92b175c89bee15126ed0cc07ca7cd701f70fd951a7014638ca2cfc9739e5b39",
+    "llvm-tools-1.45.0-x86_64-apple-darwin.tar.gz": "9c4e5488be910b8b5ded830ea4c8844090801d3f35e7d9cb1f272e3e7df90a0d",
+    "llvm-tools-1.45.0-x86_64-apple-darwin.tar.xz": "e8fc28076470b574fbdad79907200ad8eada5afd947c22fbd8a441956216555c",
+    "llvm-tools-1.45.0-x86_64-pc-windows-msvc.tar.gz": "5a2b5f49e04def6bc6bdb148412bf62ca7fd01d0e8ed61d07fe6716003425350",
+    "llvm-tools-1.45.0-x86_64-pc-windows-msvc.tar.xz": "3aee953c82e7d705988cd4b873eb187000537443b8db48a7e0953fa0486c3d42",
+    "llvm-tools-1.45.0-x86_64-unknown-freebsd.tar.gz": "dbeaa09b90aab06a8450afaa9018a859a440be48d98e9437a7d827a138d3ae7a",
+    "llvm-tools-1.45.0-x86_64-unknown-freebsd.tar.xz": "17e445fe6d87100e63f75917bd0cd7d934979cedef86ea080cd32f4515f3f644",
+    "llvm-tools-1.45.0-x86_64-unknown-linux-gnu.tar.gz": "54a2ac31ad53d3d346c571fa1d25b730b614a8214b5484c511f21f7dd0bdbd5f",
+    "llvm-tools-1.45.0-x86_64-unknown-linux-gnu.tar.xz": "e700b1a2182511f494b0b9bd723292f703340f6659d00083703dee91821c8d08",
+    "llvm-tools-1.45.0-x86_64-unknown-linux-musl.tar.gz": "5e610db342edfb61ac702b36eebb4cfa1a4d2c0b89ca400b2ca89055167e07fc",
+    "llvm-tools-1.45.0-x86_64-unknown-linux-musl.tar.xz": "7a5511e7c69ecf807c80a703fb0df6d462c577a2785b013442a0914fd998ac59",
+    "llvm-tools-1.46.0-aarch64-unknown-linux-gnu.tar.gz": "1d8107ff0682d20c37a0d42f54fa1e2e96e70f7c4694fc71a84f7b32e3793247",
+    "llvm-tools-1.46.0-aarch64-unknown-linux-gnu.tar.xz": "d8e3d3efca327fd86ebc577ccbf73ae972f5c56dcc1f824e45cca1e60c4ea210",
+    "llvm-tools-1.46.0-x86_64-apple-darwin.tar.gz": "1045f55a6e59326e0f5b46616e8c945f0cc04c4519f21aa095f87b3e35420422",
+    "llvm-tools-1.46.0-x86_64-apple-darwin.tar.xz": "9d2573ca03f5b40e49ed894ac1417c7853cc8c898ecd613f935deab9286ceef1",
+    "llvm-tools-1.46.0-x86_64-pc-windows-msvc.tar.gz": "037719e7774bae1e3084949123a8a10d4d2c89134849333a53c7dcad00fe412e",
+    "llvm-tools-1.46.0-x86_64-pc-windows-msvc.tar.xz": "900bda8310804cb98e850e9edbfe398114dc8ff862b2ef4c2816dbb38488ea8a",
+    "llvm-tools-1.46.0-x86_64-unknown-freebsd.tar.gz": "55d9194cd9ac3f26f95f4f94db899c86b140753ef57aa2996dd8be528eaf8ae0",
+    "llvm-tools-1.46.0-x86_64-unknown-freebsd.tar.xz": "04bbc35799740aa1b80f6f9c7f0a376668be348a0fd1277a09bd96f8073c61ee",
+    "llvm-tools-1.46.0-x86_64-unknown-linux-gnu.tar.gz": "2a98e7290148575cdc6230610fca3ce68d1bd7b7dd105124f8a1673859ecc9ad",
+    "llvm-tools-1.46.0-x86_64-unknown-linux-gnu.tar.xz": "5add40772b66537dfbf0cee662708b9c7366c1c506d6489a9988ca63da5ebc45",
+    "llvm-tools-1.46.0-x86_64-unknown-linux-musl.tar.gz": "431339bdd829224c0d3a3c835d65de95e52f042c1e0c3a286718055af4b2b977",
+    "llvm-tools-1.46.0-x86_64-unknown-linux-musl.tar.xz": "4090f9dc1b833831bf64f46e4e17ba8982e1b0d64d4ba49579871c4f52fc3c2b",
+    "llvm-tools-1.47.0-aarch64-unknown-linux-gnu.tar.gz": "6f9cc27ea4d33ef81be176392d169a2ca2ba6d3e6e8c037917133823cc4979c1",
+    "llvm-tools-1.47.0-aarch64-unknown-linux-gnu.tar.xz": "9608f4946e573973f49f6a3204917699e5ff758621cae877be253e3fec87a68e",
+    "llvm-tools-1.47.0-x86_64-apple-darwin.tar.gz": "75a8381f7f521ad8afc8480e2bda27d3d3730b9ee154022deb26db3ca6216505",
+    "llvm-tools-1.47.0-x86_64-apple-darwin.tar.xz": "f06164e4dcca255d4f96780d7ece2553cb65a03a1d3bc88c924553378023957e",
+    "llvm-tools-1.47.0-x86_64-pc-windows-msvc.tar.gz": "e9a5d9db6f899904f094cc745a1b5cc47f7d7bbcb708217ad68933316e814880",
+    "llvm-tools-1.47.0-x86_64-pc-windows-msvc.tar.xz": "d4108d5edb30b634952e31fa1d661f1f3fb628d3980af7a764cf088f63157b70",
+    "llvm-tools-1.47.0-x86_64-unknown-freebsd.tar.gz": "47592da88536cf5c44085907c7e5d57bf695d5ac8add76d2c7d1c0518e6e05e6",
+    "llvm-tools-1.47.0-x86_64-unknown-freebsd.tar.xz": "46d347658d77c5ff01a145b1af8ccdeb745df4942ed90478bf5390991b5dfadc",
+    "llvm-tools-1.47.0-x86_64-unknown-linux-gnu.tar.gz": "a52c3cd18a6895c91a49d0a00f2cb4b12d64dd5b1ef6607fade1fed88fc36dac",
+    "llvm-tools-1.47.0-x86_64-unknown-linux-gnu.tar.xz": "0383f00d485323ea3a70d765f2c7ed9872938495cf4379e5d12f0af6c4953ec8",
+    "llvm-tools-1.47.0-x86_64-unknown-linux-musl.tar.gz": "08ec337e44c1d83438d84e79dfacf6f123a8ed1af90c8130da784ded74966187",
+    "llvm-tools-1.47.0-x86_64-unknown-linux-musl.tar.xz": "a37285e83f29a6b4ad59d8a839e8b2906639530fb8e336ffc76c8d71088226d6",
+    "llvm-tools-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "133e6b94d3c34d91ea9689c9288c66acf169d59877c0c924fc99b1fee283f4f4",
+    "llvm-tools-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "01263dff426dcec2cc76c589fc36b4976a7f5ad422e95303093b518a6cea78b7",
+    "llvm-tools-1.48.0-aarch64-unknown-linux-musl.tar.gz": "5a643eb72e06c4baa68ab38481b0e24ad40468e07dced9dfade04f469cce3b26",
+    "llvm-tools-1.48.0-aarch64-unknown-linux-musl.tar.xz": "92c90139457682b6960e0fb81e924f10656bf60fbfa1d4806cc2021afe8ac2f1",
+    "llvm-tools-1.48.0-x86_64-apple-darwin.tar.gz": "de0715d6cb0456da647750605ea1a3e3832278a4fa500d9c13bd148e7b278afe",
+    "llvm-tools-1.48.0-x86_64-apple-darwin.tar.xz": "f1f9b782c2503e30b02741f5fbe3d18bd727834379da54a239d54e3dc24c3cf3",
+    "llvm-tools-1.48.0-x86_64-pc-windows-msvc.tar.gz": "a0506c1619708e2bdf6bc198db5d130965613ec0609a9fe75556ce5effdf4f78",
+    "llvm-tools-1.48.0-x86_64-pc-windows-msvc.tar.xz": "6207c5b461779287e0849f1f459ceab800e9c31ce81f3f126f723f8deb7cb46f",
+    "llvm-tools-1.48.0-x86_64-unknown-freebsd.tar.gz": "61a56f1436c7e4bfe68be160abb61989a8b4b4fef5e939764d488587484d6da3",
+    "llvm-tools-1.48.0-x86_64-unknown-freebsd.tar.xz": "66a40243c99fad04a87ee3e7cb9b1fba14f677dd54ac88f80043d32877088084",
+    "llvm-tools-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "a4932dafdc84a2c2f4f67a9aa207ce306c36a4ed8e682e6d79764d438ebd00b8",
+    "llvm-tools-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "e305612c3ce0be1f1e9dd788d15455f107193841b844d67fec2b2d6e2ad228d0",
+    "llvm-tools-1.48.0-x86_64-unknown-linux-musl.tar.gz": "904e1a0009819b626bd643cfe7f82d8de7e277e69aa0791de26fb3754d897046",
+    "llvm-tools-1.48.0-x86_64-unknown-linux-musl.tar.xz": "88cc37be0d922b8051d0f57f389b992f0558e7ebd875184fc1810988f285beed",
+    "llvm-tools-1.49.0-aarch64-apple-darwin.tar.gz": "78f666e9608c6b38f704447ef270170154c55dcda033e4fab00c42bebc3319a5",
+    "llvm-tools-1.49.0-aarch64-apple-darwin.tar.xz": "af20c411654ab87271a2fa9d84c62a3c4c3495a61fd8902d23fabc09666d91ef",
+    "llvm-tools-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "50228dd0c1ea9f483cac055fd1ff82f202427ef970266e904be01133c40f0c91",
+    "llvm-tools-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "cc01a4d2f6cf54284f010669594020f33f979ca705df599434174eed84c23185",
+    "llvm-tools-1.49.0-aarch64-unknown-linux-musl.tar.gz": "0992328492832f96f4ee35661d8706e8e5f630bb92de117398f0b27556bc98cd",
+    "llvm-tools-1.49.0-aarch64-unknown-linux-musl.tar.xz": "5a8ebd7311db21634d3d37292b460d67c13f08233471c49f90e74857c1b55c9a",
+    "llvm-tools-1.49.0-x86_64-apple-darwin.tar.gz": "39c294fb87e6dc8c29975469a0566d4f8a47e50c1defe9f3dabbf1d598772bea",
+    "llvm-tools-1.49.0-x86_64-apple-darwin.tar.xz": "0b3df21d49629d14a723ac311669593edff80f881b534fb8c6d255eb839dd8d6",
+    "llvm-tools-1.49.0-x86_64-pc-windows-msvc.tar.gz": "3e57ff66c2a0091e3373e479fec699d3012e9249b7e0da36500fa0071308114f",
+    "llvm-tools-1.49.0-x86_64-pc-windows-msvc.tar.xz": "d1eb72d19b178cfe376844e9c87f66ea485b5659fa692ac692c87b0c79c44513",
+    "llvm-tools-1.49.0-x86_64-unknown-freebsd.tar.gz": "c2b3c06bf4b2f6010f9927391c8e72f96642a528c486ec98f66c16066298e015",
+    "llvm-tools-1.49.0-x86_64-unknown-freebsd.tar.xz": "1af3854baf75fad64d6ccb02c816f69f8e8473e1e8dbd2e51c1f0ca394b1790f",
+    "llvm-tools-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "aecf6c322dc4064dcedf2315d443a69e099fc52e617711306fa1269cb180aa68",
+    "llvm-tools-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "4414c9212eabf60f3b177b82e5f2849cf08289313fb4b8ca81da3213c2b5837d",
+    "llvm-tools-1.49.0-x86_64-unknown-linux-musl.tar.gz": "c53b602056f48c38624942c1f6b6cc1a5a542cb56249a3a90c67355da531bd40",
+    "llvm-tools-1.49.0-x86_64-unknown-linux-musl.tar.xz": "5ca195b382b1feba7efab207996dfe58bff7730b3ad2a6b70e2670e2a301cbab",
+    "llvm-tools-1.50.0-aarch64-apple-darwin.tar.gz": "4a03b09dc15644fd5a10ac8aa1dc3ec32bc832f0c27bce4fa6128f18ac22a90d",
+    "llvm-tools-1.50.0-aarch64-apple-darwin.tar.xz": "a3ab52c3e53db359148b9310c83ed8c8a0e615dc2189493dd765f5f95ead5c09",
+    "llvm-tools-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "25256ce02516667890abf82fa4d49a86f16dcea448d63c9a03782c0a3bbe05c1",
+    "llvm-tools-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "5c06f277f4b1a67dcac93fb59a6ebcfe3da5a8871f625bed71923f715e4f22b9",
+    "llvm-tools-1.50.0-aarch64-unknown-linux-musl.tar.gz": "cfe980fe89486c78a5c88701e8ce6a9c7914030c703d2b3ee841b84c1ccdf31d",
+    "llvm-tools-1.50.0-aarch64-unknown-linux-musl.tar.xz": "33513f143348854fc0cfa611e720a1b4374c7066b2e4f900fd46ff42f27ba2b4",
+    "llvm-tools-1.50.0-x86_64-apple-darwin.tar.gz": "d8b018570e8ff163c4ab37a36ce16128b39c2ea55efd1be3caf14bdd85d03394",
+    "llvm-tools-1.50.0-x86_64-apple-darwin.tar.xz": "4a261c8732b518fa736f85e2ac76909ef0525ec92204eeba2303a92dad09d58d",
+    "llvm-tools-1.50.0-x86_64-pc-windows-msvc.tar.gz": "728f7a656f27eb6361847d245d23b56b7109c7ef5f47117044e83aaf49fcc536",
+    "llvm-tools-1.50.0-x86_64-pc-windows-msvc.tar.xz": "c31172e78ddd66da5fb4414f927664fe1d573352de7bc814d5c2b4103ed01377",
+    "llvm-tools-1.50.0-x86_64-unknown-freebsd.tar.gz": "4300261729751c6a7353cc4a4bb3d6c448fcc24e90a82e3d626af037fb6aae4c",
+    "llvm-tools-1.50.0-x86_64-unknown-freebsd.tar.xz": "c47b6fb63c931b314e7d5a64c80d79497f461d50450a6e45cc8396d40940736d",
+    "llvm-tools-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "86871fb83afba38ba818286c20bc863798b64a7a403ecb0454535bf1a09df482",
+    "llvm-tools-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "ca2b5da9035a6d97bd07d4c4151a244a06ff8e6690ebd347e80c78d738ae2ace",
+    "llvm-tools-1.50.0-x86_64-unknown-linux-musl.tar.gz": "98f2266ffbcf1d94e2d6961341ef6488ef3f49a81ae4c857c4b817cc9528535b",
+    "llvm-tools-1.50.0-x86_64-unknown-linux-musl.tar.xz": "da81298857716ee3a5c4e1451d829fd0096f42d969dce1df4c69fee981737f83",
+    "llvm-tools-1.51.0-aarch64-apple-darwin.tar.gz": "1a12dd5bd2c354a89737640ac105600f59fc038809ad4611b29eb0d225bd783d",
+    "llvm-tools-1.51.0-aarch64-apple-darwin.tar.xz": "5b84cd7e31d9fd8fb85bf3299d26b73dbe6e7d542c167ba7cd4ede634a611800",
+    "llvm-tools-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "5295ca2bbaa8d37942ed95f801107900d40f326f543edf4c80a1c2adf48fb077",
+    "llvm-tools-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "a5ccc1469304e3a3dd0a9c28fd8975d9a6fcc99dfa73b78a18a40a6784c5bc12",
+    "llvm-tools-1.51.0-aarch64-unknown-linux-musl.tar.gz": "2dfbe582660bac4a674186a475a5a3d118aa2369dc70eb9d8e93cd13a66cb50f",
+    "llvm-tools-1.51.0-aarch64-unknown-linux-musl.tar.xz": "2fb85d5eb2706a037b6510d2bf7adfcee1bdc6f3881e34ee75e80f9ec4be5204",
+    "llvm-tools-1.51.0-x86_64-apple-darwin.tar.gz": "1c52b39cae8fb17e64c311eb9ab66e475b6ae8190b35c6513344271b7e172d3e",
+    "llvm-tools-1.51.0-x86_64-apple-darwin.tar.xz": "56cace9df88661b74ff30cfdb692190f4c1f3610ad59aa980569114bce93563f",
+    "llvm-tools-1.51.0-x86_64-pc-windows-msvc.tar.gz": "cb2dd2a21deb3228ce3e7e2495b95d34b5c985eae39126170d823ff1b585a240",
+    "llvm-tools-1.51.0-x86_64-pc-windows-msvc.tar.xz": "4a35ef127c26a698a46b1bfd6c4fc7e57eb99d14735a34b315af539ab22cfd2a",
+    "llvm-tools-1.51.0-x86_64-unknown-freebsd.tar.gz": "a2f698841b8f860bf5a841f5f53dea8fd9df53c19c3b6d15cbe43a327696ffea",
+    "llvm-tools-1.51.0-x86_64-unknown-freebsd.tar.xz": "4920c4de108f39aadeac3ce71ff4a59c328458a8bdb02102b6193312e4e10761",
+    "llvm-tools-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "398a587c088ac159322bf47d1736409ab88d3a45eb9e09bfb7bacbbf20627e49",
+    "llvm-tools-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "fa327cccd923b20ee374db5747c019d16df14a76d5e927dac38c2f2aabee2d68",
+    "llvm-tools-1.51.0-x86_64-unknown-linux-musl.tar.gz": "0b7a9e46dd64fdef3ce22bd5a69d4599a17c120ae645fadadd7371b03f2dacd8",
+    "llvm-tools-1.51.0-x86_64-unknown-linux-musl.tar.xz": "8623de70a64268eee2da2fccdf7204c77110c2f57b141ef3d3c0778492de23f8",
+    "llvm-tools-1.52.0-aarch64-apple-darwin.tar.gz": "f3b3a9dbef7a00fe26a38d143585d3ca79b85c6dc6326c31ea3de178715d2456",
+    "llvm-tools-1.52.0-aarch64-apple-darwin.tar.xz": "ab9ae847a2c8aba3c79b3eb3a54768d98636c1c8f71772e04c78c3a31ecf771b",
+    "llvm-tools-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "9550b39d38ffdb32231fbc3893a362dc325448aa05b4197845d7fb799ec556e6",
+    "llvm-tools-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "419d854376f42c0a012592eda1b58b541da20293508c1f0c2c67fce796211cbe",
+    "llvm-tools-1.52.0-aarch64-unknown-linux-musl.tar.gz": "7dd8f795ec2d9f2eeb67e98e08341ab46416bf8f307a8395d6c7d289f4f6a641",
+    "llvm-tools-1.52.0-aarch64-unknown-linux-musl.tar.xz": "41ef1be907d17b920c607b500596e16b8f437671881390dae63481ab9fc634c6",
+    "llvm-tools-1.52.0-x86_64-apple-darwin.tar.gz": "0160eca2c73cd54b47c226c6f0f6ae4841300bbf8384426bbfb03a814b30cf84",
+    "llvm-tools-1.52.0-x86_64-apple-darwin.tar.xz": "2c026e25d66c3b922f00766ac877eb1145ce336e5b5ffeccb82db4d313826e25",
+    "llvm-tools-1.52.0-x86_64-pc-windows-msvc.tar.gz": "baf0810ece6694ed431010a24d9c81386f150567b48f79fac952e411927d3058",
+    "llvm-tools-1.52.0-x86_64-pc-windows-msvc.tar.xz": "ee712b43285f295170d08c80dd2cb75ba89af177f6d939002cf34fc9d4960757",
+    "llvm-tools-1.52.0-x86_64-unknown-freebsd.tar.gz": "cdb385cc036a9f354639050384584e64e6464a8ccfd422db17b3a2df82b88eb8",
+    "llvm-tools-1.52.0-x86_64-unknown-freebsd.tar.xz": "e62b684e38e0ff7517de04530028a553841025d1b7c10aebee80b0ea0c0b9389",
+    "llvm-tools-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "bd5056c50b92e48787d164d4d93db332c3f02e2913b3d86edabddfa248c3aeba",
+    "llvm-tools-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "9522324726098cf4da8e979d7038258332d797b02ce761a6ad3b7b717569a02f",
+    "llvm-tools-1.52.0-x86_64-unknown-linux-musl.tar.gz": "2f5905d5b3198311d2b335ad59d6e14bde9e5eae201df5d723b8b07de37740eb",
+    "llvm-tools-1.52.0-x86_64-unknown-linux-musl.tar.xz": "9899c3a5b303cf006c849a5728c243e90041b3d6fd153027e1884bd5fa965a64",
+    "llvm-tools-1.52.1-aarch64-apple-darwin.tar.gz": "749d77f5877395081ccbdde25183a4934fa9f771191f1994ef67ab6b845b380f",
+    "llvm-tools-1.52.1-aarch64-apple-darwin.tar.xz": "4d911b52bce6d3ef78bf22522a9ff0dadf2f7e04c5e06be2ac66b05427b45712",
+    "llvm-tools-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "94fad9186731f9428ec8a73165294810d63583a04798377298d1569ddf373503",
+    "llvm-tools-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "3fe21c44b641a862cdc1653bae387243d7207bfbc9a125896c5b90bee67db64d",
+    "llvm-tools-1.52.1-aarch64-unknown-linux-musl.tar.gz": "afd4fd18b981bda0a351bf5fff8f6cf76be877aa8840e5e5b159aaffa6979f69",
+    "llvm-tools-1.52.1-aarch64-unknown-linux-musl.tar.xz": "9956718036d67d8612588ef012766fb076976f548f85ae09f26132000a1e128b",
+    "llvm-tools-1.52.1-x86_64-apple-darwin.tar.gz": "ef5e0713fee477262bff9a8cb2212bd775050ea768a5ba50ceb33e13b58ede17",
+    "llvm-tools-1.52.1-x86_64-apple-darwin.tar.xz": "8d1094f48807d87f5abcf1aa8966c421f153ef732527c9ba67229dda9eac68a3",
+    "llvm-tools-1.52.1-x86_64-pc-windows-msvc.tar.gz": "6823c114ae05ebf515401e44d1ca6fb8d108cbaa495ace60c5fdbd7e81f2b32f",
+    "llvm-tools-1.52.1-x86_64-pc-windows-msvc.tar.xz": "6391c502fa05b9d8dc5137229d3b8e82345017d523099b76f1b45f40167257d6",
+    "llvm-tools-1.52.1-x86_64-unknown-freebsd.tar.gz": "470789210cd51acab85662ea5d80f3275d0766f98f59399b6aa3741bde86e773",
+    "llvm-tools-1.52.1-x86_64-unknown-freebsd.tar.xz": "573a9091c5a8c2de3fb2ca0183de934863c50dea3ac85d6bed1491bd02fedfd0",
+    "llvm-tools-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "db70724d4010273644c4e0ef4739299940b47e307f3dbee094050703147b60f8",
+    "llvm-tools-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "fa05fe718989797e0a8e8c84314fe64d0b0246d2d6df460c99d01113202ef319",
+    "llvm-tools-1.52.1-x86_64-unknown-linux-musl.tar.gz": "ad0755ed04d3e17d11e99aab793a5752e6ef0943a92822874277a13f5b91373f",
+    "llvm-tools-1.52.1-x86_64-unknown-linux-musl.tar.xz": "ae1fcb202b5e9ab79d6b19d8852cc64190cd6bb25f2233f47037cdbc25f40253",
+    "llvm-tools-1.53.0-aarch64-apple-darwin.tar.gz": "cd700c4ae2c6fe2a568f477a9db7d7c9cd1079456cd777aa04954fbb3bc64e37",
+    "llvm-tools-1.53.0-aarch64-apple-darwin.tar.xz": "4667b4cb1be3b5a0ec9fcc090b04b8795011cba3bad9804500754f86ceaceeeb",
+    "llvm-tools-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "916307648b13cd403e5d89e26dc0057a3d6517033b04199b905af7b216ff191b",
+    "llvm-tools-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "40fe74b0bb699ba8531f66ab8ac00b0fd2b8d3bd7628eb45ff8bce462d7d7f33",
+    "llvm-tools-1.53.0-aarch64-unknown-linux-musl.tar.gz": "f19e5396e69a12c854294c61c2ba647e8d06a67750b4bc741c1ec8b44e27ad76",
+    "llvm-tools-1.53.0-aarch64-unknown-linux-musl.tar.xz": "65afdfd224b72f1a07fe1005d1d57418ed8aeb6314d036460ae33092fd7746be",
+    "llvm-tools-1.53.0-x86_64-apple-darwin.tar.gz": "5a693b933e6755fc42983912c0a9197107b61c5ded051526aa0eed60cbb038cf",
+    "llvm-tools-1.53.0-x86_64-apple-darwin.tar.xz": "7dfef3b6181d7401d6143e4b7406f2f95d0d499858897beab95360cc2072aa68",
+    "llvm-tools-1.53.0-x86_64-pc-windows-msvc.tar.gz": "8d2800c3460935386c0ea368460d0b4cadb152403d3125b9616a1b4fa856cfc4",
+    "llvm-tools-1.53.0-x86_64-pc-windows-msvc.tar.xz": "e3bf420bc96be8bec9e317403f6fe169a98106670247b6c02c4c93a8e61cb5e6",
+    "llvm-tools-1.53.0-x86_64-unknown-freebsd.tar.gz": "221f677502c4d648e5578cf75224fb017dc4df486bbb15408100f6dc63fb72e9",
+    "llvm-tools-1.53.0-x86_64-unknown-freebsd.tar.xz": "1bed894ae1b131da5008932298db3447a025c1d4b57b372f08f01601cd92ed8b",
+    "llvm-tools-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "4aa6e3c9ef91efc082a6741013fc7886dc669b1532c0c3b23f922e4307200800",
+    "llvm-tools-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "98e6bc6dbac57acfb23063c99c65f2faf8756200d4104fb0fdf0603eebd13013",
+    "llvm-tools-1.53.0-x86_64-unknown-linux-musl.tar.gz": "b5054bcd14e5a5361f29fe5efa970ab8340c75feebc3c6b7719ee4cf1cf1027a",
+    "llvm-tools-1.53.0-x86_64-unknown-linux-musl.tar.xz": "995b287d5ebe77e961a1636cfa514847b5ee874ba3d1b2ebb62dd85e6b6507db",
+    "llvm-tools-1.54.0-aarch64-apple-darwin.tar.gz": "61bb98566e77f998f59c2399c5db3b488cd88e4a7bcce74061bbbb6de5c85c62",
+    "llvm-tools-1.54.0-aarch64-apple-darwin.tar.xz": "9a0dc88d3dc01a6ebeeae28da868338d2e815275e68bdb0525e103332eb1a228",
+    "llvm-tools-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "95dd016daee815e6511ed09becba913e5aa1fc6b9ef42bc27d1a509f660dec99",
+    "llvm-tools-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "ef22bf11d60529db53872179177f390070a58ec2a35dc1b75653113f1b507094",
+    "llvm-tools-1.54.0-aarch64-unknown-linux-musl.tar.gz": "8cac2dd2d1ef582c77b37b6810122426369028351a66a355c38ff72efb8f6ec4",
+    "llvm-tools-1.54.0-aarch64-unknown-linux-musl.tar.xz": "1759587415fd92f768a090288cac950d2959d13597ba39df5f5bc0598c89d804",
+    "llvm-tools-1.54.0-x86_64-apple-darwin.tar.gz": "a287d049bf7beb3a3cddf62974e0450d21bb09da72ab453222dffc3f5ef72fef",
+    "llvm-tools-1.54.0-x86_64-apple-darwin.tar.xz": "b833a10786bf6e74b25ff0c745187ea38565b3466c357c5fb2f5dab820683acf",
+    "llvm-tools-1.54.0-x86_64-pc-windows-msvc.tar.gz": "e1437993d0088f93871e2563c570fb62aec6109087227df7da8779ef226abbc3",
+    "llvm-tools-1.54.0-x86_64-pc-windows-msvc.tar.xz": "a2e8a9c6d4c637f1efa0b6401025a491bbd0b7c964201f4c3a63d560da2940d7",
+    "llvm-tools-1.54.0-x86_64-unknown-freebsd.tar.gz": "024fcaabada32629381b5d1ec856d595eacf5cf506c43619d2ab454aeac7da4c",
+    "llvm-tools-1.54.0-x86_64-unknown-freebsd.tar.xz": "6a0ab83983ab7a48be27953b84f0a194a81224f2aace6780a84c9a50b9bdc8a8",
+    "llvm-tools-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "aa4000bccc5e463c9cc3aecb6b400813a0f122b5f14a747710f23b838b4fbcc8",
+    "llvm-tools-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "0553aa7ef7d14f4b1d6c8849e81318532ceb4542e7b2a0ecd39cf2df76dd5251",
+    "llvm-tools-1.54.0-x86_64-unknown-linux-musl.tar.gz": "b0e2a74c6e1fb0c9fa888887996cb168c0d119ee4596736a4785b1200b79021b",
+    "llvm-tools-1.54.0-x86_64-unknown-linux-musl.tar.xz": "fa8e143d4740e7f5fb53271d0dc22ab65eac1592afa62f6446932b420b2755df",
+    "llvm-tools-1.55.0-aarch64-apple-darwin.tar.gz": "00a0a90cd743480a192d3f1c905d57b98986d75c88fc738effcbc50c43b0ab85",
+    "llvm-tools-1.55.0-aarch64-apple-darwin.tar.xz": "9169cd5f7a1d6444c325993390afd31ecd6059cfe0cd5319afc7716fc97171b5",
+    "llvm-tools-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "259a183333a4f19eded8a2b6fa4382b7f36a9a23605d0f0a7b59a28d794c77d1",
+    "llvm-tools-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "a82c2ad41aa602e15bc27dc47d14ef17969fe883fc7a4822e3420dcf16971e69",
+    "llvm-tools-1.55.0-aarch64-unknown-linux-musl.tar.gz": "a6a6756bb3091d15b772e57189c4279d17e218193b7d795b307effb88d269ef5",
+    "llvm-tools-1.55.0-aarch64-unknown-linux-musl.tar.xz": "35bc3f9d0897ae90c949a9f131ee146ae759dce700fa734a2b38820c7f1ae95a",
+    "llvm-tools-1.55.0-x86_64-apple-darwin.tar.gz": "fce7354b071f2da56a100f89846e0c5bb3848f2e85e8583102f1d8b409214a95",
+    "llvm-tools-1.55.0-x86_64-apple-darwin.tar.xz": "36c34f4141a024cfd74c615fffaf225af064a02d6e41ca70ffb9b2ab226f1d3a",
+    "llvm-tools-1.55.0-x86_64-pc-windows-msvc.tar.gz": "03307e359512652648b296cecf1e446befbeaf4a3a73db5cec1e6dfbc03f6376",
+    "llvm-tools-1.55.0-x86_64-pc-windows-msvc.tar.xz": "499cf530c626b58fc123226951a55270606e4255052c5695acd628268b098dfa",
+    "llvm-tools-1.55.0-x86_64-unknown-freebsd.tar.gz": "f186caf30fadf738275f4daf077815445b4c3496cc7d3e85fbf53b5f8f57eb21",
+    "llvm-tools-1.55.0-x86_64-unknown-freebsd.tar.xz": "0bdd48bccfa2508ec0be2c704eb28a9c940562f2b8c166b5d78ec234feaa9e45",
+    "llvm-tools-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "ebad576075c4dd039444ca7335ff244d6c0c566a7ee1532ac80d36a2de1217a5",
+    "llvm-tools-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "91b23de8e4fec5f4a00dff089a370de4a3115e4e627758d9b5d0b5cdd8af5c6d",
+    "llvm-tools-1.55.0-x86_64-unknown-linux-musl.tar.gz": "28de296a08d173bf5bad236935ccc547c8eb741fb91900cb10499e80e2472ec5",
+    "llvm-tools-1.55.0-x86_64-unknown-linux-musl.tar.xz": "e444cd7dc835b949692e69557a7a87adc052d689800ec0fe41215d5ae1f3b519",
+    "llvm-tools-1.56.0-aarch64-apple-darwin.tar.gz": "4ad514255a87b0aba52bf995cb999bc7b34d42419b675fd757664d6682a45210",
+    "llvm-tools-1.56.0-aarch64-apple-darwin.tar.xz": "8dbf7f9aa4092283b52671a3c9bc5f0011e567964b3a660388c0f328ce050621",
+    "llvm-tools-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "9518804888281bd1b0c8d8467d7c3e312342649ce3660248728a8d4faa193564",
+    "llvm-tools-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "8f1e135ed9d22f58466ff45b15d13c6c1ec7ba3df5b749a5ef3282534fadf300",
+    "llvm-tools-1.56.0-aarch64-unknown-linux-musl.tar.gz": "095acf10efb3a4561758da9f9374488ab73c88a2f78b6d1ee97147ac8f039fe9",
+    "llvm-tools-1.56.0-aarch64-unknown-linux-musl.tar.xz": "2a79b8262c8634832cd236bf92e87d870f7fe3e50da1dcddad3d516693d945e6",
+    "llvm-tools-1.56.0-x86_64-apple-darwin.tar.gz": "e40341be6619513f50bf89d445e3b30696853f3553bbe98fa9aa3527cd7c49cd",
+    "llvm-tools-1.56.0-x86_64-apple-darwin.tar.xz": "df1ec196dfb2bff4c238b68f7267731fb3068ce1b0b5dc2ea537a4919cc19415",
+    "llvm-tools-1.56.0-x86_64-pc-windows-msvc.tar.gz": "838bf630fdaa404f9899a92e58c1b5646f4f4b6d54729e4f1c3aade5585a74f7",
+    "llvm-tools-1.56.0-x86_64-pc-windows-msvc.tar.xz": "38acd0c54d580eedc44de7b4c03d112c6257c830f52c593e5dbe23fcf9e544cb",
+    "llvm-tools-1.56.0-x86_64-unknown-freebsd.tar.gz": "05225a9aeb481757b470ee604a129bfc7707d85dc487fffcc2585f4124e012d9",
+    "llvm-tools-1.56.0-x86_64-unknown-freebsd.tar.xz": "77209f17dd310b1321e62562ba03460ef33508b0f6ce061524f3865ee57c391b",
+    "llvm-tools-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "ac54b5c1bae0955945cd779291bc443b3e6d52f217ce1078a3505bae1c0e2ff2",
+    "llvm-tools-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "884836bdcc7e436d4820e87d87f188763828f06b8d27edf7eec1ab9ff5592509",
+    "llvm-tools-1.56.0-x86_64-unknown-linux-musl.tar.gz": "9512db06f3090028b0ba26aeea21c3a80e6676177c92cfa1e60d13acd6871f0e",
+    "llvm-tools-1.56.0-x86_64-unknown-linux-musl.tar.xz": "d97a6ad1028ba750cc81c3cbad969fe7e19c6255c0c12413cce05824e0c981f3",
+    "llvm-tools-1.56.1-aarch64-apple-darwin.tar.gz": "8feb4429f37d2c59a97a657052a8518492ea3e0c43b37af1e44407bb04d5fd8c",
+    "llvm-tools-1.56.1-aarch64-apple-darwin.tar.xz": "00ae070257a1cb7eb8e42c24b2ca3b8c9b0b5360ebc0d906360363e53e821a3f",
+    "llvm-tools-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "3c831ad4ee247ae29a5acecba1609d70b02777ba8181d40a945d2efedebc8126",
+    "llvm-tools-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "27a13ab2545078ece271231310fce351a655cabd28f482f31f1b6a730fec118c",
+    "llvm-tools-1.56.1-aarch64-unknown-linux-musl.tar.gz": "bf62fb69c222c41c83cb5e647dbce207519724c92de8e05015e7fe62396ad33e",
+    "llvm-tools-1.56.1-aarch64-unknown-linux-musl.tar.xz": "ebb13e524a7b3fb25e74084eb8244c77df213937a80bdb1f75255440cab39c5b",
+    "llvm-tools-1.56.1-x86_64-apple-darwin.tar.gz": "75dc2fb8105e33e3f86753eb2f97615f62bc3433591c31f63fa7c4c12b643321",
+    "llvm-tools-1.56.1-x86_64-apple-darwin.tar.xz": "b32e5fd39841182e02ad7ab3c5ecee3f0456a8d913b631c6925d47de2d02d839",
+    "llvm-tools-1.56.1-x86_64-pc-windows-msvc.tar.gz": "34ff6e95ce6397b954691f5ae59068bf33f8ecf71fe8aa8b1ac2db6eaff81720",
+    "llvm-tools-1.56.1-x86_64-pc-windows-msvc.tar.xz": "399578b46d7aaf37fff53ae368c1b525f2f0be28b8f1a17c25f825414ea15f4b",
+    "llvm-tools-1.56.1-x86_64-unknown-freebsd.tar.gz": "b8d281cdae768bdd87409e69c916612e1fed29334d861fd07b0d44dd8b6d086d",
+    "llvm-tools-1.56.1-x86_64-unknown-freebsd.tar.xz": "0d3b2e63c45858f1a6514e87119294e6789a59f959888e3e1af5578323b6be3b",
+    "llvm-tools-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "61e322fc405540fae66790a0317d3fe4bb500da20879ef53c14eb32e93590ee6",
+    "llvm-tools-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "6cf7335fe068134c031b9ea84f4a3e912d9276074c46bc1d3af3a9479e9cff5b",
+    "llvm-tools-1.56.1-x86_64-unknown-linux-musl.tar.gz": "880e2eae8998ee390c3cd325b1806adb627c7491a252af99fc87f43380e1f11a",
+    "llvm-tools-1.56.1-x86_64-unknown-linux-musl.tar.xz": "644880b655dcdee774d12ee92fcdf0ccc4ab72cb08d6d7ece101c045533bf67b",
+    "llvm-tools-1.57.0-aarch64-apple-darwin.tar.gz": "712e59804a2dc7c0f0a91680c3ccd7463bfe75784e508b4a47b7eebff258867f",
+    "llvm-tools-1.57.0-aarch64-apple-darwin.tar.xz": "855c093b59f5767ddecbfa3850d5cd33ea3277462eca9f3319d8bf6c7fd78260",
+    "llvm-tools-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "340fcbf4555cc56232225284b500679f33601689bde3122cd54af7648c9d0ce1",
+    "llvm-tools-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "d68d6bdf270e5457547fdf532822e071ff3ecab047099d867db2b7e6c5d823a5",
+    "llvm-tools-1.57.0-aarch64-unknown-linux-musl.tar.gz": "5de4f546695db024c74ad8c4ffbd03f549ce6476bdad8d40bd8fce59e4c3d4ce",
+    "llvm-tools-1.57.0-aarch64-unknown-linux-musl.tar.xz": "ecc41ba620c19c892d8b05796e9f94289e33edf832ed77343aa1d9dce8a0e6a6",
+    "llvm-tools-1.57.0-x86_64-apple-darwin.tar.gz": "4ee2065bf9ca04894c6ea700f5fe13f222843dc34b1bf92fc94f37c03e47f6b3",
+    "llvm-tools-1.57.0-x86_64-apple-darwin.tar.xz": "4debc65ba9df5a76805b9ef9fb48b3642f9b2acab6c85fcb4e986a2dcbd4f8df",
+    "llvm-tools-1.57.0-x86_64-pc-windows-msvc.tar.gz": "dd042fd62e75ff14c1638b9a63072eac42530d29deca2c0277964091f974d3b7",
+    "llvm-tools-1.57.0-x86_64-pc-windows-msvc.tar.xz": "722f7e515a3138df236093decd0af2ff6db91d4c86f07476d2ffa5d8e222e607",
+    "llvm-tools-1.57.0-x86_64-unknown-freebsd.tar.gz": "0d23df22a31816f5545b5af083dde75a74060889b42ebc8231795bd478f803ce",
+    "llvm-tools-1.57.0-x86_64-unknown-freebsd.tar.xz": "c1b8eb4a12dfa3d195975962db82ab57e079a25017f2b2daa320a4245c406134",
+    "llvm-tools-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "bb2f45e0efe77886da2b8b9d3519b6a2929d1654258158d847996867d5b4ab40",
+    "llvm-tools-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "f0eabab66bdd36a36d2136cec03358f2ad94251c9bcb2975a01f3899dd757507",
+    "llvm-tools-1.57.0-x86_64-unknown-linux-musl.tar.gz": "7c53a882379938b319c859f41d1f5569b66f1b4f03e745dec2bb3dc8eb11f2b4",
+    "llvm-tools-1.57.0-x86_64-unknown-linux-musl.tar.xz": "ba0a2a390518418e3f9c55fa79ce069763ee3590096aa6824aad5364d41fe03a",
+    "llvm-tools-1.58.0-aarch64-apple-darwin.tar.gz": "55b8ac5d42e3910d7f77f2022a964ec54e4c8082cc6624070d8664c4449b5161",
+    "llvm-tools-1.58.0-aarch64-apple-darwin.tar.xz": "9ca8345545066d41e763ad38656e30cc8dea2e86071647a218aea6b2640aff23",
+    "llvm-tools-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "765d797cc11d746616d71015a52e564220e4e10b8f10efa2fd5fb74ba308ce30",
+    "llvm-tools-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "4423beab0473f9af8ec9bb70cee1aa142996baeeeb2dcf2bfe2987963041355a",
+    "llvm-tools-1.58.0-aarch64-unknown-linux-musl.tar.gz": "e4b221ea279f698eab0bfebfd2dabca8e2b02c0423c48fb5d0ef281920771b99",
+    "llvm-tools-1.58.0-aarch64-unknown-linux-musl.tar.xz": "8f6812054bcb81a0c6661d0e0a8997710ca392395cfe98a351b3bfcf191dd9cd",
+    "llvm-tools-1.58.0-x86_64-apple-darwin.tar.gz": "7e3f807c85d8b6ff00747d20e88c115bb56a52ac1964593b5ff6bff84bf05647",
+    "llvm-tools-1.58.0-x86_64-apple-darwin.tar.xz": "44369feeaa2f5b133ea054a0fe34a2bf97ac5192c0a5c3dce20f09680d250e7c",
+    "llvm-tools-1.58.0-x86_64-pc-windows-msvc.tar.gz": "11aa6d93678766ea8a4625146de43290418f3b9076a69bb183b12613fafc7e5a",
+    "llvm-tools-1.58.0-x86_64-pc-windows-msvc.tar.xz": "801ccd75d616d6e8b62faf28978eab87dec535edf99d92ebe9c5b515d77e2d13",
+    "llvm-tools-1.58.0-x86_64-unknown-freebsd.tar.gz": "5950fe6c5a9c27ce0e85d07fd54cfa0ae0687a797e4cc957e91d2deb07451ad1",
+    "llvm-tools-1.58.0-x86_64-unknown-freebsd.tar.xz": "49dbd87e7c9784038eb996ea583e68135fd3d1af84d3e6b63a11145c095bf4fa",
+    "llvm-tools-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "26cee659335a999d1c9dd47ac2bd2a8c94c2d42f7cda27b96b419f0c0c785bc7",
+    "llvm-tools-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "b0b21efb1101ba1d56bfb418816cdb44650cd7f0153dfcf47949b1f85db7a748",
+    "llvm-tools-1.58.0-x86_64-unknown-linux-musl.tar.gz": "b20c27a6cfef891f4ac9bfcd06c38dd17f9f4021a7876599092da84c318b8b6b",
+    "llvm-tools-1.58.0-x86_64-unknown-linux-musl.tar.xz": "b9bcc47ffb317e44e55f7a196d67a4d6acdbd4723b50903f0cc962a7c7658835",
+    "llvm-tools-1.58.1-aarch64-apple-darwin.tar.gz": "c43a9166c2cbcc1858afe2de696ee3e6233316603e9f5963bedaaf200a531d29",
+    "llvm-tools-1.58.1-aarch64-apple-darwin.tar.xz": "9fe6e609d48c7a010de02e12ee63527dbc5e3ab6b857973e81b3dc431a152ba1",
+    "llvm-tools-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "bec9207417c9bafa311119565e2a38f36d3aca5f642b8f0e19eb6fa0898fca5c",
+    "llvm-tools-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "a4b46955d4cabbda7770065b3d4b975d33e0c15f8d47d48d3b4c0ea453074cf3",
+    "llvm-tools-1.58.1-aarch64-unknown-linux-musl.tar.gz": "0faff43fbfc9806355861b906fa0a32dca786843874fcaa7cf911f3899fe9313",
+    "llvm-tools-1.58.1-aarch64-unknown-linux-musl.tar.xz": "bc665f4717c893bea4000db7e1242cd7e240257985b95fdb2be88e3599c06d00",
+    "llvm-tools-1.58.1-x86_64-apple-darwin.tar.gz": "0810cbbe2c590ed03128075aaccc77fffb16ceb41bb92490dca2c018117040da",
+    "llvm-tools-1.58.1-x86_64-apple-darwin.tar.xz": "d1f262e23cd40522ef5f9d0e6eacd6582e8a4717405f05592bd920acefd53089",
+    "llvm-tools-1.58.1-x86_64-pc-windows-msvc.tar.gz": "8c5887ebb551ba392cbe915474b4c2494c4b36ece102683240cf4150c5dc1718",
+    "llvm-tools-1.58.1-x86_64-pc-windows-msvc.tar.xz": "a4749a6cd55b354223659fa4c1a143e8e85395051df6bf3e5e39fe054a0d24d3",
+    "llvm-tools-1.58.1-x86_64-unknown-freebsd.tar.gz": "b33b2ffa80bb8e3f116b15532acafe56bfb799973ccd97fbe35cb5c8eaeeb8bb",
+    "llvm-tools-1.58.1-x86_64-unknown-freebsd.tar.xz": "c3669b80ee7fecaeed84f44d725fcdc77daa516bf1aa4631a4d5ac4df7c62b55",
+    "llvm-tools-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "3d003e6b2a38a6364667ce033ba3fe8029320acbb5b34f9bb103001ffcfef044",
+    "llvm-tools-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "9b646d0fc397e7aeb4e9cb944c97ec1403499174d8f1132b049f83a6e99b1855",
+    "llvm-tools-1.58.1-x86_64-unknown-linux-musl.tar.gz": "a3206ec957f0e8728ad79203f700e4a7d64acccf8b83d11209ac5e459eadab2d",
+    "llvm-tools-1.58.1-x86_64-unknown-linux-musl.tar.xz": "c303b077488a241bf83947eda56ef9b8156d11bc9cf5a125db513ec37f315c80",
+    "llvm-tools-1.59.0-aarch64-apple-darwin.tar.gz": "474ba73365de82fa00940887d945931dde56efeb28789c036ab62b90c2e528d1",
+    "llvm-tools-1.59.0-aarch64-apple-darwin.tar.xz": "ae3c752ebd9954093b8d85ab60b43e7c051e6fdc868694220084db151786ba33",
+    "llvm-tools-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "e3bc96a602e8cb7768f279c020a3830417e767095dc784b1549510de42c37f5b",
+    "llvm-tools-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "b7606acfbd1964361dbe3ff729f1223408539a6858528387c4fe91464b7f956b",
+    "llvm-tools-1.59.0-aarch64-unknown-linux-musl.tar.gz": "5b28d1c6a73b99346dc9f29b4fb0b475814d8bcc3fd9661a2b53bedf606f1bc3",
+    "llvm-tools-1.59.0-aarch64-unknown-linux-musl.tar.xz": "e1a935be20ec528a969f1fc5e56fb95d8e4313cceeb2c4be4560ffa5b076d0e4",
+    "llvm-tools-1.59.0-x86_64-apple-darwin.tar.gz": "988593882b294423fbd88895b88887da8b47bf28946ae78263b0169a2b2b4597",
+    "llvm-tools-1.59.0-x86_64-apple-darwin.tar.xz": "f7de97180f014c8ea5eeeb1a9f0b39ba01b56fc32e3f25b59dff06a7136f5167",
+    "llvm-tools-1.59.0-x86_64-pc-windows-msvc.tar.gz": "45f393a71799392ff73cfb17ee071b7304b304c8375db6cdd86f3025b4ba56b0",
+    "llvm-tools-1.59.0-x86_64-pc-windows-msvc.tar.xz": "a6c2431b0278c0d6afb64414c8d72aedecee6df4f0a15b396893589777b96902",
+    "llvm-tools-1.59.0-x86_64-unknown-freebsd.tar.gz": "dbb0a7ad6c0e7a87e55a8e3fad05c1ed9ee5944e41e841267d0dfbb748060135",
+    "llvm-tools-1.59.0-x86_64-unknown-freebsd.tar.xz": "b8801fd282707302be00f775c1e3a7ed730fd5a55574305cfab794693bbdec5c",
+    "llvm-tools-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "3bea89788f101b7ea1aca5dad94c3d2bd5f5133999ba78cea878ecad00c8c602",
+    "llvm-tools-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "6b16f529c10d9e4cd1f36369f04ee2018501a09e3c84ee7556b80760715a871e",
+    "llvm-tools-1.59.0-x86_64-unknown-linux-musl.tar.gz": "db090aa8093efe163f54e1b211846b9061f835ba21e55cca2e37a5af7ad40e80",
+    "llvm-tools-1.59.0-x86_64-unknown-linux-musl.tar.xz": "2c7febfaeef400c3611c247e4a1c679adbee9ad50abde536aa5c8fb304594a0c",
+    "llvm-tools-1.60.0-aarch64-apple-darwin.tar.gz": "95d3f40816355158031bb7e4391136b4528892ec469aa1931d128ce26fd9e0ef",
+    "llvm-tools-1.60.0-aarch64-apple-darwin.tar.xz": "1a07ce1b629818d4c28cbc33741ac51c82f17e7d0031aa1abec3b16976704a37",
+    "llvm-tools-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "bf38e24ce4241e048f19f108b530d01ff0efe9da88745d15e5fc8faef32acfa0",
+    "llvm-tools-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "43ecfec07c0b7dc415bfd7eba0e8b9d181791c0769d3b157e6f0030965704fd9",
+    "llvm-tools-1.60.0-aarch64-unknown-linux-musl.tar.gz": "aab2512204860f6fa69d763f849aedca5f4214ba97ef8fe6548ef86ebd1838f8",
+    "llvm-tools-1.60.0-aarch64-unknown-linux-musl.tar.xz": "2f89f4890a23ea7e36f4a9121524a957fcd82d0ac0dcd7227dc030c61bbfb404",
+    "llvm-tools-1.60.0-x86_64-apple-darwin.tar.gz": "c3d2b8f6e3fd5a21967bcb27db8bb9d9988d6ba9544cef1233caa1f392745975",
+    "llvm-tools-1.60.0-x86_64-apple-darwin.tar.xz": "e55b57ffbcb8df5f57b62025649e83d2e0f9dcdef1b9419356c931cf41d18609",
+    "llvm-tools-1.60.0-x86_64-pc-windows-msvc.tar.gz": "e8decc0da38ce22dfac72db30ce5a2f8367f92d78369d1eed821148025092477",
+    "llvm-tools-1.60.0-x86_64-pc-windows-msvc.tar.xz": "cebcb62b0a9ef209781538c13dda2c0045602054e90904bffaaf568d67719e6e",
+    "llvm-tools-1.60.0-x86_64-unknown-freebsd.tar.gz": "6e77aa4dc5d562ef1e6596c2afdf59d70590880b987754524dc5989cf00bda09",
+    "llvm-tools-1.60.0-x86_64-unknown-freebsd.tar.xz": "65537bafa70073dc9d827357b8de81f00dbe9a9ecfe19978262d4e4253e1a25f",
+    "llvm-tools-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "25d4d8d27550c5653ff5dc3504de44eee9dc362fc7f3d0047e7e7ad0db805201",
+    "llvm-tools-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "ea97f66834aedb7c9f7afa6985f61b078609f4e3e17a3fee7e6c089adf357e0e",
+    "llvm-tools-1.60.0-x86_64-unknown-linux-musl.tar.gz": "c9e5b1aaddb8883ba36f8f1fb47f7f2a46cacf877c3d856a446c9670da03a9ed",
+    "llvm-tools-1.60.0-x86_64-unknown-linux-musl.tar.xz": "be170088f969b810b89d7fcd4f10129108ba11a0da5886c860c7fecf65deab9b",
+    "llvm-tools-1.61.0-aarch64-apple-darwin.tar.gz": "44a30e16313ce338310e9e6c0c173ca44180407139b0f1bb12d976b125abbf34",
+    "llvm-tools-1.61.0-aarch64-apple-darwin.tar.xz": "3498be8ee3b3f8dea029beb3fbd306eaed65214a82d8f6b5b27b1d45735c90a8",
+    "llvm-tools-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "6307c7943edc5e0e471690c829b7632e8fd9e3dc11cdd30d40db46bb2722bd10",
+    "llvm-tools-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "b7f79fa77ffa963268b1cf36b75d1cf45b136051b464c9abcb47e37929c5c243",
+    "llvm-tools-1.61.0-aarch64-unknown-linux-musl.tar.gz": "433836301570c1289426b74b9a71130be8df635555ca4dbb4d066f65b6559282",
+    "llvm-tools-1.61.0-aarch64-unknown-linux-musl.tar.xz": "54b2e2ddb750f2aa4580153ab7a3d4d46a37c69df91af01f38d17b6d13aaebcf",
+    "llvm-tools-1.61.0-x86_64-apple-darwin.tar.gz": "c0a99ea8f6203bfc58517f25a144bf1cd7a5d53ebedb38a0d347c2afebf23417",
+    "llvm-tools-1.61.0-x86_64-apple-darwin.tar.xz": "d9795208a655bb8feb9a3b665b277cb72915c7279319a0e4ff865df9675324fd",
+    "llvm-tools-1.61.0-x86_64-pc-windows-msvc.tar.gz": "51f57b496755921d77021f47f880d8e37e99448975e875261e862a09c37d71f4",
+    "llvm-tools-1.61.0-x86_64-pc-windows-msvc.tar.xz": "909c7cb9ed6c2e285a7c46ac6115ca80851c721c03849345bda646b06b89fed5",
+    "llvm-tools-1.61.0-x86_64-unknown-freebsd.tar.gz": "c655f969db68e7ae89ab23ffe3956fa5062ee9ca6a2497ea22ac0b51b822a5ec",
+    "llvm-tools-1.61.0-x86_64-unknown-freebsd.tar.xz": "6b46f7be11615c303f17165acdd8658f88fba7474ea3e8749244fc6f7666ce2c",
+    "llvm-tools-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "14b6aa44fd275e776660a5f31328f9344407c2d89db3c87af74614e6e9915d28",
+    "llvm-tools-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "0e97c3b1aecafd114a47fee1f7ab3c2764c72733b8bf5302db95031c864ea253",
+    "llvm-tools-1.61.0-x86_64-unknown-linux-musl.tar.gz": "ecc67ba8e60ab4ba612ce190379141bf1786671c76db2437284d4a21b0ae318d",
+    "llvm-tools-1.61.0-x86_64-unknown-linux-musl.tar.xz": "e4aa4a938b47f7ee3e58a20fb25d00ca18cf7ca5861aa17ea1565781a5c6dcaf",
+    "llvm-tools-1.62.0-aarch64-apple-darwin.tar.gz": "3a469b15f2c8e33b48a36e80fdcfb4be2bda812fa83b9f46ffb86fd7f6837999",
+    "llvm-tools-1.62.0-aarch64-apple-darwin.tar.xz": "c05c5bfa78de37e0879ae32e76e60b4dfc49dd0f5e7a7a8d621869a9ad61e697",
+    "llvm-tools-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "e4ba2e2cd1359dddacca146155b4edd6fb9a525db52580fff29216a6ff067451",
+    "llvm-tools-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "be8f70d222113704a429545ad333b788b3534ef5850ccfdc73f887b7eecbc06c",
+    "llvm-tools-1.62.0-aarch64-unknown-linux-musl.tar.gz": "644038bf2e247fa432a85778b3c30b346c21261b15393a8fe30f26c01e12a0f5",
+    "llvm-tools-1.62.0-aarch64-unknown-linux-musl.tar.xz": "ad9e3f6a6071415b63d81ce7e3965f1303bdec63c0cc6f0d3c071a92544e2786",
+    "llvm-tools-1.62.0-x86_64-apple-darwin.tar.gz": "0f2c8a1e06665ed0b26a78edec373ce775684acea4f4f932ee151fb6a292f9c7",
+    "llvm-tools-1.62.0-x86_64-apple-darwin.tar.xz": "cfe0dd1112b09aea4de1c009ef2fe778115c2b36541ffdb0b1f6ae23d7523dc1",
+    "llvm-tools-1.62.0-x86_64-pc-windows-msvc.tar.gz": "4e2673a5868ff02ac8c82154f08098f9e1d3ddd9d8a5087d497bb0f0b9199868",
+    "llvm-tools-1.62.0-x86_64-pc-windows-msvc.tar.xz": "1dadfcfaaf681c6e0913ae3a4e232aa90f77c976035517de1673dfa9efa08706",
+    "llvm-tools-1.62.0-x86_64-unknown-freebsd.tar.gz": "c3cc6d24038d780716fef7867e51d67cb4e0410e5d136dd55e8a78ddc69517a4",
+    "llvm-tools-1.62.0-x86_64-unknown-freebsd.tar.xz": "9c9e239ace8b765d472103544501a78e3cf5a137d9b9c634f5dd2de45c76765f",
+    "llvm-tools-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "136bc8120b5f282dc4cbb2899a889192ea32cffcd913777d8d036527dc32c79e",
+    "llvm-tools-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "152afbd674846e51343d5c1f8c7b44c8632023ca3d6b6ff25ae29ec644ae1a19",
+    "llvm-tools-1.62.0-x86_64-unknown-linux-musl.tar.gz": "d65dbb8e0ac759293c5f290e1a82a745f08c675037608c740b8e04d335ccc317",
+    "llvm-tools-1.62.0-x86_64-unknown-linux-musl.tar.xz": "9997f83856bc4e5b15228fbdcca43aee3e10c9e756e1f99381a3bb21a529aa2a",
+    "llvm-tools-1.62.1-aarch64-apple-darwin.tar.gz": "4489a75247fbeb987f258aa80ebfde2995d4e72106d7b872ac2910179f3bfacc",
+    "llvm-tools-1.62.1-aarch64-apple-darwin.tar.xz": "17fba281b7f6048cda65aedc323f9a41786e8b93bd2fbdf7df79c6e0b1390004",
+    "llvm-tools-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "f7dbab7d9e4783916cf3b97014cc37d3a2d806aa6e67973f0b3dda89aa6a0ed5",
+    "llvm-tools-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "69ece924c2ee322a5e9cb2a7a5244eec9aeeecf52d2922e8fdd58e119a9dd90a",
+    "llvm-tools-1.62.1-aarch64-unknown-linux-musl.tar.gz": "b5acf95518118b12b8c979b4916fa175e963fc7652047d77f34b0d6bd413f82f",
+    "llvm-tools-1.62.1-aarch64-unknown-linux-musl.tar.xz": "121898a9579e28d9257d3c1dc6262e5d97adf2f873ce59c597882a2f8da71a25",
+    "llvm-tools-1.62.1-x86_64-apple-darwin.tar.gz": "15255d787ab1c9dd5ba52489be098b3d4fa3745925f9902db1ade53ad6399a38",
+    "llvm-tools-1.62.1-x86_64-apple-darwin.tar.xz": "311ef246a87bcf32823324e162324d265f20849332fe8a90c8f4f195de1d1471",
+    "llvm-tools-1.62.1-x86_64-pc-windows-msvc.tar.gz": "f0e82148033a289f8e49ae8650192b63aec5857d04d65759bbae6a3e92cfcfb4",
+    "llvm-tools-1.62.1-x86_64-pc-windows-msvc.tar.xz": "096543b27c215180575bb9ce1ebe6c9d8edb7a884c5ac4833f572ac8b897d56a",
+    "llvm-tools-1.62.1-x86_64-unknown-freebsd.tar.gz": "1c649e4674d05646ee938344f9177a59f4f0f8e968bd0c99c6749ae47752af64",
+    "llvm-tools-1.62.1-x86_64-unknown-freebsd.tar.xz": "3492b2814d1dd343735704f9df2934056fa9c5cf90d3eb10d4443866ccadd1b2",
+    "llvm-tools-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "d06911db8d7ba0844e9709e61813ecfbe0c398353803e1675a12fbbecf91f4b1",
+    "llvm-tools-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "e3a87c051b6a668abaf5394584917e2d86dd8a8867cb95e309d0bfe345fc2154",
+    "llvm-tools-1.62.1-x86_64-unknown-linux-musl.tar.gz": "a3a25356445da9e4c433e3a4d1c307727824031ea2aed34c314bd053c4f62fbb",
+    "llvm-tools-1.62.1-x86_64-unknown-linux-musl.tar.xz": "4e71a395a9cc85364ceba82fab89f5bcaf03ead646eec88405b49a45bc20dc78",
+    "rust-1.26.0-aarch64-unknown-linux-gnu.tar.gz": "e12dc84bdb569cdb382268a5fe6ae6a8e2e53810cb890ec3a7133c20ba8451ac",
+    "rust-1.26.0-aarch64-unknown-linux-gnu.tar.xz": "773560f577d4bfc34efa69f035b0d397fc8f4d55835d163416bc4f2012a57a4a",
+    "rust-1.26.0-x86_64-apple-darwin.tar.gz": "38708803c3096b8f101d1919ee2d7e723b0adf1bc1bb986b060973b57d8c7c28",
+    "rust-1.26.0-x86_64-apple-darwin.tar.xz": "0885a92df119aeac497a9501e7208d5a80554b992dc765dbf92fd162c5ba4431",
+    "rust-1.26.0-x86_64-pc-windows-msvc.tar.gz": "20631bf942242d4be82363030839851bf18a2199b74a661bdc334f830e9e1d5a",
+    "rust-1.26.0-x86_64-pc-windows-msvc.tar.xz": "b3a2a2b0e31083954c6b5adcc9f6b7ddecc3166188c3a7ab8fba78146c0c25c1",
+    "rust-1.26.0-x86_64-unknown-freebsd.tar.gz": "a03cbe097670042c90d18654fbc852c9d473261d61c03d0f745bbaee759780ed",
+    "rust-1.26.0-x86_64-unknown-freebsd.tar.xz": "030df5c3813392bd1e9c21e2477794456f4ba08a2871ca9a880be1315c75908d",
+    "rust-1.26.0-x86_64-unknown-linux-gnu.tar.gz": "13691d7782577fc9f110924b26603ade1990de0b691a3ce2dc324b4a72a64a68",
+    "rust-1.26.0-x86_64-unknown-linux-gnu.tar.xz": "ca5436ae9fd7c7a942fe8af669bbb32d14050a68e91b68d1a0d318a9f7d68672",
+    "rust-1.26.1-aarch64-unknown-linux-gnu.tar.gz": "d4a369053c2dfd5f457de6853557dab563944579fa4bb55bc919bacf259bff6d",
+    "rust-1.26.1-aarch64-unknown-linux-gnu.tar.xz": "3454fff9fca72600dc852e5788f3bb7de3f6165ac5b7aed7ce34b51ce236b331",
+    "rust-1.26.1-x86_64-apple-darwin.tar.gz": "ebf898b9fa7e2aafc53682a41f18af5ca6660ebe82dd78f28cd9799fe4dc189a",
+    "rust-1.26.1-x86_64-apple-darwin.tar.xz": "a69797ff3656b1de7c1978fc12797a9f047696125a2ff908ed76be3cbb7dee48",
+    "rust-1.26.1-x86_64-pc-windows-msvc.tar.gz": "56c2398de358094606afba419c1e1a9e499cbe6f894315e99cfebda9f765c52f",
+    "rust-1.26.1-x86_64-pc-windows-msvc.tar.xz": "edbcc6309b0f2239cd6218c8d6830a5b18eff33209ba2e36ac179a0d003527fa",
+    "rust-1.26.1-x86_64-unknown-freebsd.tar.gz": "910128f60c680e175ae93722272f491c6835f27652f9f3fe415dc0d9c482e204",
+    "rust-1.26.1-x86_64-unknown-freebsd.tar.xz": "c746cffab257e16ef0cf9bd17902129b00d09cc5d4ee62acb284e028a6ffbf58",
+    "rust-1.26.1-x86_64-unknown-linux-gnu.tar.gz": "b7e964bace1286696d511c287b945f3ece476ba77a231f0c31f1867dfa5080e0",
+    "rust-1.26.1-x86_64-unknown-linux-gnu.tar.xz": "068a28c1b74476965ea74779b87d0152ed17e42efb3a23f5f718e75b178fac89",
+    "rust-1.26.2-aarch64-unknown-linux-gnu.tar.gz": "3dfad0dc9c795f7ee54c2099c9b7edf06b942adbbf02e9ed9e5d4b5e3f1f3759",
+    "rust-1.26.2-aarch64-unknown-linux-gnu.tar.xz": "a45280f4eeac132a5b2de4b14f4e3702c33b55cf244468cb020dc67201f1f254",
+    "rust-1.26.2-x86_64-apple-darwin.tar.gz": "f193705d4c0572a358670dbacbf0ffadcd04b3989728b442f4680fa1e065fa72",
+    "rust-1.26.2-x86_64-apple-darwin.tar.xz": "30339ea8e853d8d5ba2c05e4c45649df35d4699d1e250cc69346a9c58960059a",
+    "rust-1.26.2-x86_64-pc-windows-msvc.tar.gz": "c4195cc0541db7cb08d503cc38917f6f40f53826001e86d613a48bd7387ac6a0",
+    "rust-1.26.2-x86_64-pc-windows-msvc.tar.xz": "cbe54a8090c7f03267aeb33d1a7a930b77ccb7f3326a3cff877722c9c38800cd",
+    "rust-1.26.2-x86_64-unknown-freebsd.tar.gz": "0ad985cf36b3946f086fd3c3c6eb97b0c94b24285147a04da22c00d4d522727a",
+    "rust-1.26.2-x86_64-unknown-freebsd.tar.xz": "7119c8e4d3d7fe95ef82a7aae0b1eeb635135a402a833ecfc963440950faa2f7",
+    "rust-1.26.2-x86_64-unknown-linux-gnu.tar.gz": "d2b4fb0c544874a73c463993bde122f031c34897bb1eeb653d2ba2b336db83e6",
+    "rust-1.26.2-x86_64-unknown-linux-gnu.tar.xz": "15a5ab639d794e33a54c488b4064b055663b4f297311c487d7ce8dd46c366d1b",
+    "rust-1.27.0-aarch64-unknown-linux-gnu.tar.gz": "e74ebc33dc3fc19e501a677a87b619746efdba2901949a0319176352f556673a",
+    "rust-1.27.0-aarch64-unknown-linux-gnu.tar.xz": "980e743fe13aa82ec1f8004becbc9ac76a002e505dfbc561394385bfa9cac8b4",
+    "rust-1.27.0-x86_64-apple-darwin.tar.gz": "a1d48190992e01aac1a181bce490c80cb2c1421724b4ff0e2fb7e224a958ce0f",
+    "rust-1.27.0-x86_64-apple-darwin.tar.xz": "5d5b967369b61c0b10fff45d3b1c9849d863aa69f0d56266b27d3eee07198717",
+    "rust-1.27.0-x86_64-pc-windows-msvc.tar.gz": "795585a4f49dfcfd719dd6678713d0e84979b265ae9265dcb26b45c67b3a883a",
+    "rust-1.27.0-x86_64-pc-windows-msvc.tar.xz": "8ec6378f4d70f5ff8dbe4de127417455d1dbc812589d12a69200fc9dcfe18f08",
+    "rust-1.27.0-x86_64-unknown-freebsd.tar.gz": "f0754434f76f261ecdfd7ea3645b251b0188e263c0c7a7466aafac1b034d20ec",
+    "rust-1.27.0-x86_64-unknown-freebsd.tar.xz": "7bea9bdf14fe09c3d2a19177a990e3e2d76395e5f64e79bad142d536b98ee56c",
+    "rust-1.27.0-x86_64-unknown-linux-gnu.tar.gz": "235ad78e220b10a2d0267aea1e2c0f19ef5eaaff53ad6ff8b12c1d4370dec9a3",
+    "rust-1.27.0-x86_64-unknown-linux-gnu.tar.xz": "d1a4150b1001ec75a6d8eaa5117af1ae36c481131dd3aaa240dc590c916b3719",
+    "rust-1.27.1-aarch64-unknown-linux-gnu.tar.gz": "d1146b240e6f628224c3a67e3aae2a57e6c25d544115e5ece9ce91861ec92b3a",
+    "rust-1.27.1-aarch64-unknown-linux-gnu.tar.xz": "72cefe4e238d0bb0a6c9de77958688d55a84ae6b5b89bf51b9d1a4746f7d9f5a",
+    "rust-1.27.1-x86_64-apple-darwin.tar.gz": "475be237962d6aef1038a2faada26fda1e0eaea5d71d6950229a027a9c2bfe08",
+    "rust-1.27.1-x86_64-apple-darwin.tar.xz": "228a6cdcd33eb4256aaf9303a88b83bd2f9f7938ba87bc28ff4327099399f5e6",
+    "rust-1.27.1-x86_64-pc-windows-msvc.tar.gz": "24fb59a42277487ab1aaf8ac8b7a988843ae851ffe4a3386d9339e99e42d08d0",
+    "rust-1.27.1-x86_64-pc-windows-msvc.tar.xz": "ec35452907f36b1f09c631f414967729479e6a81e7a40961c397a36ed045cbd5",
+    "rust-1.27.1-x86_64-unknown-freebsd.tar.gz": "739d38036c9f08c13bc7425cc5cccd3dd37860fa6e9dfc7bcd9081c8d3c5ccdd",
+    "rust-1.27.1-x86_64-unknown-freebsd.tar.xz": "103b4a95adf5aea88e15ce34ee1792ee8106a9830ca5b6982a56a5e18a305ff8",
+    "rust-1.27.1-x86_64-unknown-linux-gnu.tar.gz": "435778a837af764da2a7a7fb4d386b7b78516c7dfc732d892858e9a8a539989b",
+    "rust-1.27.1-x86_64-unknown-linux-gnu.tar.xz": "bae52484fe3cd50b4670487709e77ee5c0412ea55432f6036225e5c5557d43ae",
+    "rust-1.27.2-aarch64-unknown-linux-gnu.tar.gz": "cf84da70269c0e50bb3cc3d248bae1ffcd70ee69dc5a4e3513b54fefc6685fb4",
+    "rust-1.27.2-aarch64-unknown-linux-gnu.tar.xz": "da8667be6b01f7f6855c06fe6cec8f04cb99eb735ff0d2af8e62591b09177831",
+    "rust-1.27.2-x86_64-apple-darwin.tar.gz": "30c5cc58759caa4efdf2ea7d8438633139c98bee3408beb29ceb26985f3f5f70",
+    "rust-1.27.2-x86_64-apple-darwin.tar.xz": "2ccd29c3ab2a42a8e6146717ab710886749b86fdc18066cfcf2eb6be2cbc10d7",
+    "rust-1.27.2-x86_64-pc-windows-msvc.tar.gz": "be1cccbd4cc00d473cb19fee4402d0ffde3b1e3ca3701926d47590878bc88508",
+    "rust-1.27.2-x86_64-pc-windows-msvc.tar.xz": "4fdc819acb005cd42fff4bdd0bce7ba0d2c7c810831583aeda59413e337d6018",
+    "rust-1.27.2-x86_64-unknown-freebsd.tar.gz": "b114c5eebc120b360d4d3c4360421ff181cc47bb311e161d3af6971b6d3e6244",
+    "rust-1.27.2-x86_64-unknown-freebsd.tar.xz": "731eca2277f27575f4f52a5053ca00235063575a2a11ac52fdfe13ccd83faafd",
+    "rust-1.27.2-x86_64-unknown-linux-gnu.tar.gz": "5028a18e913ef3eb53e8d8119d2cc0594442725e055a9361012f8e26f754f2bf",
+    "rust-1.27.2-x86_64-unknown-linux-gnu.tar.xz": "090a3bfc536b7211ae84f6667c941c861eddfdcadb5e472a32e72d074f793dd4",
+    "rust-1.28.0-aarch64-unknown-linux-gnu.tar.gz": "9b6fbcee73070332c811c0ddff399fa31965bec62ef258656c0c90354f6231c1",
+    "rust-1.28.0-aarch64-unknown-linux-gnu.tar.xz": "19ec7a80e59df67c61ad85d1d00642db087026ebd9155616a3bf673c366d2453",
+    "rust-1.28.0-x86_64-apple-darwin.tar.gz": "5d7a70ed4701fe9410041c1eea025c95cad97e5b3d8acc46426f9ac4f9f02393",
+    "rust-1.28.0-x86_64-apple-darwin.tar.xz": "d65f6f24b61e657381534a999b493ee6033da696f3843aa93898bd489fc79cb6",
+    "rust-1.28.0-x86_64-pc-windows-msvc.tar.gz": "5990e79259967a6a176aa5e4c55c6395f0c9262eed61ea858cfb909bac477542",
+    "rust-1.28.0-x86_64-pc-windows-msvc.tar.xz": "34dbb4c2545995acd796fae757edcda8081745ec7ad79dd7c7be3c97df3caabf",
+    "rust-1.28.0-x86_64-unknown-freebsd.tar.gz": "cac701973239cbec802780855b172a3cc85ce15602e72873fe966d9d7d807e07",
+    "rust-1.28.0-x86_64-unknown-freebsd.tar.xz": "227884282ae07895d24ecf527e1bc9cb445add50dad451f596b6a1232c2d4b62",
+    "rust-1.28.0-x86_64-unknown-linux-gnu.tar.gz": "2a1390340db1d24a9498036884e6b2748e9b4b057fc5219694e298bdaa37b810",
+    "rust-1.28.0-x86_64-unknown-linux-gnu.tar.xz": "9e73dc59f3e39dbe363af3000d85fad64638f456025622b919766c10f38ffa48",
+    "rust-1.29.0-aarch64-unknown-linux-gnu.tar.gz": "0ed3be0fd9f847afeb4e587fff61f6769ea61b53719d3ea999326284e8975b36",
+    "rust-1.29.0-aarch64-unknown-linux-gnu.tar.xz": "eadb910e75c33d1a2d57eb8d916de91757a47315c7bc4e3a7e809eaef27f0be1",
+    "rust-1.29.0-x86_64-apple-darwin.tar.gz": "28a0473637585742f6d80ccd8afd88b6b400e65d623c33cb892412759444da93",
+    "rust-1.29.0-x86_64-apple-darwin.tar.xz": "1ae728de731ee04c89f418084e5743a56e1efaa8ad332f5a8bddb0ab7c487317",
+    "rust-1.29.0-x86_64-pc-windows-msvc.tar.gz": "64f8c85540520c82d579d7eac5e2a524b42a6083cc46c7e80181512651a66fef",
+    "rust-1.29.0-x86_64-pc-windows-msvc.tar.xz": "989ce9fb85938beb6a3ea771aeedcd50592b82735071d85f7ded764c5af6ccc1",
+    "rust-1.29.0-x86_64-unknown-freebsd.tar.gz": "3500b1683849cbe526bb79f460147aa387b79a4f9a6a4760e276f73ddbffafd5",
+    "rust-1.29.0-x86_64-unknown-freebsd.tar.xz": "1bd7ae05a76e9301557ff9be8bce7ecedc0cf9b8ca69a1bccbd0133b53e9fd5a",
+    "rust-1.29.0-x86_64-unknown-linux-gnu.tar.gz": "09f99986c17b1b6b1bfbc9dd8785e0e4693007c5feb67915395d115c1a3aea9d",
+    "rust-1.29.0-x86_64-unknown-linux-gnu.tar.xz": "02376bd111138926eefa62a464e928010b866ca3448559574d0cf4b382f44627",
+    "rust-1.29.1-aarch64-unknown-linux-gnu.tar.gz": "2685224f67b2ef951e0e8b48829f786cbfed95e19448ba292ac33af719843dbe",
+    "rust-1.29.1-aarch64-unknown-linux-gnu.tar.xz": "bb8664f0aa5a5c310f0ec51bd6520539ede94a39aebdb13fd81f8658c18eec2c",
+    "rust-1.29.1-x86_64-apple-darwin.tar.gz": "07b07fbd6fab2390e19550beb8008745a8626cc5e97b72dc659061c1c3b3d008",
+    "rust-1.29.1-x86_64-apple-darwin.tar.xz": "ae0cf5bdf85e1a0e6b9f07551c0ca1135c32110d2ba09d11f3552a14997b36dd",
+    "rust-1.29.1-x86_64-pc-windows-msvc.tar.gz": "ec15b45be27b4406122518b2949f6186f0d9d422f23a946ab4de43716cc8e492",
+    "rust-1.29.1-x86_64-pc-windows-msvc.tar.xz": "9902f28fbcff20261dcdcbd9be415d100f20098a51077a11dbe4ce2ef4e473eb",
+    "rust-1.29.1-x86_64-unknown-freebsd.tar.gz": "4055a9e9990f83f6c0d4f2040b2704edb8dbdaf82933f8598ab4ee31c541bbb9",
+    "rust-1.29.1-x86_64-unknown-freebsd.tar.xz": "f9766172bc44a078b3ba9560f9012e6b5751952f47a27790ea5128c08b0a6d23",
+    "rust-1.29.1-x86_64-unknown-linux-gnu.tar.gz": "b36998aea6d58525f25d89f1813b6bfd4cad6ff467e27bd11e761a20dde43745",
+    "rust-1.29.1-x86_64-unknown-linux-gnu.tar.xz": "6e38e51cc5cc2a6e66401ed88571fb044792e0694b2af8edd9b12fbe87c4e1f9",
+    "rust-1.29.2-aarch64-unknown-linux-gnu.tar.gz": "e11461015ca7106ef8ebf00859842bf4be518ee170226cb8eedaaa666946509f",
+    "rust-1.29.2-aarch64-unknown-linux-gnu.tar.xz": "63ef07abc851889ec8d0df4333b581c8767cb50f3e7c343ce08f5e96b82015a3",
+    "rust-1.29.2-x86_64-apple-darwin.tar.gz": "63f54e3013406b39fcb5b84bcf5e8ce85860d0b97a1e156700e467bf5fb5d5f2",
+    "rust-1.29.2-x86_64-apple-darwin.tar.xz": "075d5b9ba3c5ee735dcde53d9c52d4eda0204df4fc4f71a9bf901a6ec5a44b21",
+    "rust-1.29.2-x86_64-pc-windows-msvc.tar.gz": "7813396fb99021e9a8bccb2fc7e71b1b730d5f3aebbb09ffcc2ecb838a1073b4",
+    "rust-1.29.2-x86_64-pc-windows-msvc.tar.xz": "92b4cb5316fc43b774fe067b626c36ad58d6d102b086a3440044728022f96d7f",
+    "rust-1.29.2-x86_64-unknown-freebsd.tar.gz": "2e209d505c730df6e68575424eec03ed924e12114ad60595602cb2513c6a382a",
+    "rust-1.29.2-x86_64-unknown-freebsd.tar.xz": "5188940e871a1c17a2e7e3c2f6e56bb4df5d17769eb61813d335d68ad6d08a23",
+    "rust-1.29.2-x86_64-unknown-linux-gnu.tar.gz": "e9809825c546969a9609ff94b2793c9107d7d9bed67d557ed9969e673137e8d8",
+    "rust-1.29.2-x86_64-unknown-linux-gnu.tar.xz": "b27b4da8e7a85c07dc546cb26682cf0fc74cb4c183dce44f9014c2dd9265931f",
+    "rust-1.30.0-aarch64-unknown-linux-gnu.tar.gz": "9690c7c50eba5a8461184ee4138b4c284bad31ccc4aa1f2ddeec58b253e6363e",
+    "rust-1.30.0-aarch64-unknown-linux-gnu.tar.xz": "8cd698c0772b66547c958647380006ea9d10d0c7a66920b2b69a83f61a478f11",
+    "rust-1.30.0-x86_64-apple-darwin.tar.gz": "07008d90932712282bc599f1e9a226e97879c758dc1f935e6e2675e45694cc1b",
+    "rust-1.30.0-x86_64-apple-darwin.tar.xz": "9ec056022535557912f7015e7b53852d3dfc61791738a86fe38ad95f525dff75",
+    "rust-1.30.0-x86_64-pc-windows-msvc.tar.gz": "960ca17c0c62ee250647c20b617e75912badb67ca8ade08c3224410a7c320ade",
+    "rust-1.30.0-x86_64-pc-windows-msvc.tar.xz": "75839a50e479fd468431dd834803816cf764bb5bcb7ca02baf84ece67b560d09",
+    "rust-1.30.0-x86_64-unknown-freebsd.tar.gz": "b4e5d00b318d56edb7ba9182af4210fca9d7f44b64bc1380456ff3c17584af52",
+    "rust-1.30.0-x86_64-unknown-freebsd.tar.xz": "8ca9a7dd2528fcdce255c5dc0d2dabef11957699c0dd2237928e84f13551deaf",
+    "rust-1.30.0-x86_64-unknown-linux-gnu.tar.gz": "f620e3125cc505c842150bd873c0603432b6cee984cdae8b226cf92c8aa1a80f",
+    "rust-1.30.0-x86_64-unknown-linux-gnu.tar.xz": "2c8c6161ca0536e3af1ca6def8b09f41bb0c0d401d805664e0e04a2d1971d588",
+    "rust-1.30.1-aarch64-unknown-linux-gnu.tar.gz": "6d87d81561285abd6c1987e07b60b2d723936f037c4b46eedcc12e8566fd3874",
+    "rust-1.30.1-aarch64-unknown-linux-gnu.tar.xz": "1f493cfb40566a61765eb91e4613503350378803ac9b962c710e80e01a781aa9",
+    "rust-1.30.1-x86_64-apple-darwin.tar.gz": "3ba1704a7defe3d9a6f0c1f68792c084da83bcba85e936d597bac0c019914b94",
+    "rust-1.30.1-x86_64-apple-darwin.tar.xz": "81acec3b39c84ef3a70073faec79fd5b98c2e978da84e8368404efdcab14a45d",
+    "rust-1.30.1-x86_64-pc-windows-msvc.tar.gz": "b0110a5ad461532b2cce59bc04346af739b4660e7241f92dde6442a11a5391c2",
+    "rust-1.30.1-x86_64-pc-windows-msvc.tar.xz": "255941a8a6f41a31cce9c28e124432c4cf8579e56ff48895455945874dae9f5f",
+    "rust-1.30.1-x86_64-unknown-freebsd.tar.gz": "480db9003f8e8c4ad12f2868af2c1489a05b18a8dcc62985c52310a7a15201ce",
+    "rust-1.30.1-x86_64-unknown-freebsd.tar.xz": "0b4087ace49d335d9c761bc53d56ec3a1b16159c08747c04082e102e155de70a",
+    "rust-1.30.1-x86_64-unknown-linux-gnu.tar.gz": "a01a493ed8946fc1c15f63e74fc53299b26ebf705938b4d04a388a746dfdbf9e",
+    "rust-1.30.1-x86_64-unknown-linux-gnu.tar.xz": "fc08025864a5e70e5c92bc16239992f044dbd1932ca7455ccfdf662075e97931",
+    "rust-1.31.0-aarch64-unknown-linux-gnu.tar.gz": "4e68c70aba58004d9e86c2b4463e88466affee51242349a038b456cf6f4be5c9",
+    "rust-1.31.0-aarch64-unknown-linux-gnu.tar.xz": "1ba64ed8c6565498da4fc02164dc2ec826ee3f7c39ddce1de75cc41a034d3088",
+    "rust-1.31.0-x86_64-apple-darwin.tar.gz": "5d4035e3cecb7df13e728bcff125b52b43b126e91f8311c66b143f353362606f",
+    "rust-1.31.0-x86_64-apple-darwin.tar.xz": "694d10c740b45516863283d29aa917f2955ef4ef1203ad20bc37aed04de59de2",
+    "rust-1.31.0-x86_64-pc-windows-msvc.tar.gz": "9288248f1821ab53557cbc5728ade7d221b1670547b0c0ec35099e0b2993dcf4",
+    "rust-1.31.0-x86_64-pc-windows-msvc.tar.xz": "032fc79efd86b5793a578a3c8a909c250c5c1fa17a5759215c7381032eb67c1f",
+    "rust-1.31.0-x86_64-unknown-freebsd.tar.gz": "936ca1503ab1f18d9a4a1cc27fbc655f2c532ba819e1109bb03f5c52c5fb4fdd",
+    "rust-1.31.0-x86_64-unknown-freebsd.tar.xz": "e31746d48e22575893227d1c0cdfab2fc10129a11c608ba4df5065231e0f105f",
+    "rust-1.31.0-x86_64-unknown-linux-gnu.tar.gz": "c8a2016109ffdc12a488660edc5f30c1643729efc15abe311ebb187437e506bf",
+    "rust-1.31.0-x86_64-unknown-linux-gnu.tar.xz": "670e2767ba99bb85d710a4031f74d499805d132cdefd6ed9acf9c6fd79a3cd86",
+    "rust-1.31.1-aarch64-unknown-linux-gnu.tar.gz": "29a7c6eb536fefd0ca459e48dfaea006aa8bff8a87aa82a9b7d483487033632a",
+    "rust-1.31.1-aarch64-unknown-linux-gnu.tar.xz": "8926323bd0a69cfa13fc42a933ac290ef2c2ed2795e49a76aee6a8b15e0f5522",
+    "rust-1.31.1-x86_64-apple-darwin.tar.gz": "8398b1b303bdf0e7605d08b87070a514a4f588797c6fb3593718cb9cec233ad6",
+    "rust-1.31.1-x86_64-apple-darwin.tar.xz": "7ab986a3529246263322d81010163583d328fb4e4204e8102359a62dd3f5d11f",
+    "rust-1.31.1-x86_64-pc-windows-msvc.tar.gz": "4d2aa25c9d79dca5aba67b7b1df1c1f0ad40fcfb25a4c1d364fd64dd17a63cf3",
+    "rust-1.31.1-x86_64-pc-windows-msvc.tar.xz": "15edb9313a12055728a1e4e6b8bc95eeefd81e60a3cc8cd6eacfdb728c9df4fe",
+    "rust-1.31.1-x86_64-unknown-freebsd.tar.gz": "5cbb465a0843b31da217c51c4f9ebbb2508aa2ece41e9b98303101e12571de42",
+    "rust-1.31.1-x86_64-unknown-freebsd.tar.xz": "2ae0ea775c808ba8b2b81bf1ba0aeea3a1986631e603178e7ab8d69a0b9070b1",
+    "rust-1.31.1-x86_64-unknown-linux-gnu.tar.gz": "a64685535d0c457f49a8712a096a5c21564cd66fd2f7da739487f028192ebe3c",
+    "rust-1.31.1-x86_64-unknown-linux-gnu.tar.xz": "b2a13544161f6a5a5d9d4130f2c4ce8043c2d3a7cd429310a51080111fbf957a",
+    "rust-1.32.0-aarch64-unknown-linux-gnu.tar.gz": "60def40961728212da4b3a9767d5a2ddb748400e150a5f8a6d5aa0e1b8ba1cee",
+    "rust-1.32.0-aarch64-unknown-linux-gnu.tar.xz": "a530cfc8aadd2cec3b8c63dfb46c940ad8b4b18131641a3da1601ec380619f11",
+    "rust-1.32.0-x86_64-apple-darwin.tar.gz": "f0dfba507192f9b5c330b5984ba71d57d434475f3d62bd44a39201e36fa76304",
+    "rust-1.32.0-x86_64-apple-darwin.tar.xz": "fa1e3bb49071f1d2a84e15d1bd519948e53417eb2c3425cd8495bce3cc8d31eb",
+    "rust-1.32.0-x86_64-pc-windows-msvc.tar.gz": "51b0b64cc843d6e443bf19f89b61addb532ea61e02777c7e80a185a9a263776b",
+    "rust-1.32.0-x86_64-pc-windows-msvc.tar.xz": "8d9af7f6336738a07e24db96126f44f33321a65f8b8c122d60aa56e74ffabe96",
+    "rust-1.32.0-x86_64-unknown-freebsd.tar.gz": "20d062493d01f1816014fe9dbe883bda06f1828a6ddbfb7ee5e4f1df20eb1c3a",
+    "rust-1.32.0-x86_64-unknown-freebsd.tar.xz": "802c352b27e45e95fbeefbf3a91bb79c0172f6f40710bf052a7dca44cc5d85cd",
+    "rust-1.32.0-x86_64-unknown-linux-gnu.tar.gz": "e024698320d76b74daf0e6e71be3681a1e7923122e3ebd03673fcac3ecc23810",
+    "rust-1.32.0-x86_64-unknown-linux-gnu.tar.xz": "e7ee1fc3c6e2d2dec4bfdc0b38ecc3a80828655bdf6bb44d97c7a9ea76134f86",
+    "rust-1.33.0-aarch64-unknown-linux-gnu.tar.gz": "a308044e4076b62f637313ea803fa0a8f340b0f1b53136856f2c43afcabe5387",
+    "rust-1.33.0-aarch64-unknown-linux-gnu.tar.xz": "e3a9608b234fb3165e892279c550645905c360303b5ffa7b8b1e09f00c42deb1",
+    "rust-1.33.0-x86_64-apple-darwin.tar.gz": "864e7c074a0b88e38883c87c169513d072300bb52e1d320a067bd34cf14f66bd",
+    "rust-1.33.0-x86_64-apple-darwin.tar.xz": "0b4ee9ed15dfd88cb607de961c7795031e1863ca63fa58dca942923cb890a22c",
+    "rust-1.33.0-x86_64-pc-windows-msvc.tar.gz": "b477be7a27799397cf90f09ef5efe21b1af02f48ec9bc1be3306ad298aaf8841",
+    "rust-1.33.0-x86_64-pc-windows-msvc.tar.xz": "c30ff61b9b0e9df9368ef4a493948e039fcf7a8bd3d7e90aa4ef3da570389219",
+    "rust-1.33.0-x86_64-unknown-freebsd.tar.gz": "31ab015c1807a7c231ee74b4fb367f3fa43551d6c49cd2f7b63541f1fef0cc72",
+    "rust-1.33.0-x86_64-unknown-freebsd.tar.xz": "ef55db419e21f4dac14c52207cdeee202db8badc02ff85e882bf78c4d20aedc4",
+    "rust-1.33.0-x86_64-unknown-linux-gnu.tar.gz": "6623168b9ee9de79deb0d9274c577d741ea92003768660aca184e04fe774393f",
+    "rust-1.33.0-x86_64-unknown-linux-gnu.tar.xz": "3d93d277d6cd24b4840225b3380c9c80e64520fd0f6c84bd9783e46e5f45e97a",
+    "rust-1.34.0-aarch64-unknown-linux-gnu.tar.gz": "370c3a8fb9a69df36d645a95e622fb59ac5b513baecddde706cedaf20defa269",
+    "rust-1.34.0-aarch64-unknown-linux-gnu.tar.xz": "86f94dd8a6fe33fb7acc0b62505a422013a3a36add461687faecfcd2ba550a56",
+    "rust-1.34.0-x86_64-apple-darwin.tar.gz": "e6bea8d865cc7341c17fa3b8f25f7989e6b04f53e9da24878addc524f3a32664",
+    "rust-1.34.0-x86_64-apple-darwin.tar.xz": "1aa67c7b40ac4e9ccdddd62e99a9bc1c28734cadb533e8c69737fc535b73e0df",
+    "rust-1.34.0-x86_64-pc-windows-msvc.tar.gz": "471325ceb9492239f7bb399cb88df230791966c0f76f01020aa9d2868bafcfb5",
+    "rust-1.34.0-x86_64-pc-windows-msvc.tar.xz": "ffadcec662199d0d513d6eb452ef864839a93b59738a38f3453b279a64c537be",
+    "rust-1.34.0-x86_64-unknown-freebsd.tar.gz": "bc9048312bee935ae1e7417e2f6840ea76fe370752915ca605ec7dc5b606dba9",
+    "rust-1.34.0-x86_64-unknown-freebsd.tar.xz": "7d478df3efbdfa551ccf4621a68696c33944a78e1d1bdb5b0c91f57257bd637b",
+    "rust-1.34.0-x86_64-unknown-linux-gnu.tar.gz": "170647ed41b497dc937a6b2556700210bc4be187b1735029ef9ccf52e2cb5ab8",
+    "rust-1.34.0-x86_64-unknown-linux-gnu.tar.xz": "8182f18251f25de133c5b076ef32821e59a7a5b9eddf6417ac73d6415394a110",
+    "rust-1.35.0-aarch64-unknown-linux-gnu.tar.gz": "31e6da56e67838fd2874211ae896a433badf67c13a7b68481f1d5f7dedcc5952",
+    "rust-1.35.0-aarch64-unknown-linux-gnu.tar.xz": "2e3b7988f631f382092e67e33b1a4e5bf34d67a2a33835d760d07c76e405dcde",
+    "rust-1.35.0-x86_64-apple-darwin.tar.gz": "ac14b1c7dc330dcb53d8641d74ebf9b32aa8b03b9d650bcb9258030d8b10dbd6",
+    "rust-1.35.0-x86_64-apple-darwin.tar.xz": "2f29835a21fcdd5f6e111ff63dd38f42df3218c5695757aa8bc17457f7f1bd05",
+    "rust-1.35.0-x86_64-pc-windows-msvc.tar.gz": "4f8935cea6b68c447b5fcb5974e0df3fefc77d15ab4f7d535779f06c3e4adc84",
+    "rust-1.35.0-x86_64-pc-windows-msvc.tar.xz": "4d56aa487dfc5aa4c43a6a0511c8e6b497f92438047041ce5f6e15c63c1ff7bb",
+    "rust-1.35.0-x86_64-unknown-freebsd.tar.gz": "a6a3c7983a880d8e9bf475735b725c47de68831abc22da980e44a3aca5c5bd89",
+    "rust-1.35.0-x86_64-unknown-freebsd.tar.xz": "36fe834112abab615df403c3f1e1b9ae924e27d98d5fea2f88eea582ccb80227",
+    "rust-1.35.0-x86_64-unknown-linux-gnu.tar.gz": "cf600e2273644d8629ed57559c70ca8db4023fd0156346facca9ab3ad3e8f86c",
+    "rust-1.35.0-x86_64-unknown-linux-gnu.tar.xz": "764c56a1855ebcd45b47ee0d47c8b36ae05074bbd425ad35f415b34180f57968",
+    "rust-1.35.0-x86_64-unknown-linux-musl.tar.gz": "3704219a4d16e4e9df22051877274c7b246d12658b447a85efa0b16037e98093",
+    "rust-1.35.0-x86_64-unknown-linux-musl.tar.xz": "5332ed98c40d127737be03f11d6233303739792d2861224981e4c347cc37fbdc",
+    "rust-1.36.0-aarch64-unknown-linux-gnu.tar.gz": "db78c24d93756f9fe232f081dbc4a46d38f8eec98353a9e78b9b164f9628042d",
+    "rust-1.36.0-aarch64-unknown-linux-gnu.tar.xz": "009a55688042c8f64cab97a1019d2d4e2c5ebc932acaa9eadecbcb7cd8193183",
+    "rust-1.36.0-x86_64-apple-darwin.tar.gz": "91f151ec7e24f5b0645948d439fc25172ec4012f0584dd16c3fb1acb709aa325",
+    "rust-1.36.0-x86_64-apple-darwin.tar.xz": "3507ccf18600dc79d69e5f3d6ac0454d4849c41922db107a1bcb7b4fefa2fd55",
+    "rust-1.36.0-x86_64-pc-windows-msvc.tar.gz": "c7c9f7f996d195f464b84eaf0b6a068b41d1480e088b12e5134f85a5a144bd30",
+    "rust-1.36.0-x86_64-pc-windows-msvc.tar.xz": "9793ada44d16b8624cb338a04a9816fb79fbc1384272b00853319617bba613bc",
+    "rust-1.36.0-x86_64-unknown-freebsd.tar.gz": "eeeb1e9d0d7823c55f00f434789696e7249f465ba5966a5ab479040e3912c0e7",
+    "rust-1.36.0-x86_64-unknown-freebsd.tar.xz": "5823cd69fa159e7eb25a10ffe17c39ed17e409ab2c79f0238f5eb70f96cef8ea",
+    "rust-1.36.0-x86_64-unknown-linux-gnu.tar.gz": "15e592ec52f14a0586dcebc87a957e472c4544e07359314f6354e2b8bd284c55",
+    "rust-1.36.0-x86_64-unknown-linux-gnu.tar.xz": "7e8dfbbba493b7efa762daf9980406cd7266f7224e7895a9940b86ef7614f738",
+    "rust-1.36.0-x86_64-unknown-linux-musl.tar.gz": "74931a19a4854642cd1593a3bdcf8a832ab5b134a3cfacea9003f9ea387ca88d",
+    "rust-1.36.0-x86_64-unknown-linux-musl.tar.xz": "e4aea102036c7abedf8e66bde71c2e84b14bafb17f10e78eae61b10e27eecc18",
+    "rust-1.37.0-aarch64-unknown-linux-gnu.tar.gz": "263ef98fa3a6b2911b56f89c06615cdebf6ef676eb9b2493ad1539602f79b6ba",
+    "rust-1.37.0-aarch64-unknown-linux-gnu.tar.xz": "aed553dbf457d8239eb3b01d4a2f422672772a0114aa43647294eca1b358d219",
+    "rust-1.37.0-x86_64-apple-darwin.tar.gz": "b2310c97ffb964f253c4088c8d29865f876a49da2a45305493af5b5c7a3ca73d",
+    "rust-1.37.0-x86_64-apple-darwin.tar.xz": "d753cbaa2a3bbd968c9c971db5a950bee3ef879c3631b07d6066a2666293884f",
+    "rust-1.37.0-x86_64-pc-windows-msvc.tar.gz": "4e42652e7bf7ef13b7fdf8c64d0adf4e18c6a765e482e4c62a4dded36d4d08e1",
+    "rust-1.37.0-x86_64-pc-windows-msvc.tar.xz": "f3a719a440461559980fdf05a90c8f02e6193b5706f46bf7279b570e658c2e76",
+    "rust-1.37.0-x86_64-unknown-freebsd.tar.gz": "58a794fa9da9c14cefda55e7d4d13276517265a05a49f3a048033aee8870388f",
+    "rust-1.37.0-x86_64-unknown-freebsd.tar.xz": "544ed80652da7ccbaa09770ec64a770cda6c5b65939c6240b39e9a0c781a047c",
+    "rust-1.37.0-x86_64-unknown-linux-gnu.tar.gz": "cb573229bfd32928177c3835fdeb62d52da64806b844bc1095c6225b0665a1cb",
+    "rust-1.37.0-x86_64-unknown-linux-gnu.tar.xz": "b498a84947012064363607c29cdd2ba6fab9a5260212ec4a7151dafd0d079081",
+    "rust-1.37.0-x86_64-unknown-linux-musl.tar.gz": "d97da4f1c1f89142b6885b006f8686c4035d25e95cfb988f961ce844e5b80dbf",
+    "rust-1.37.0-x86_64-unknown-linux-musl.tar.xz": "3758be67b9a8ca7878d6c6fe3da635fca404620ea00085bc378cdd152a2203f0",
+    "rust-1.38.0-aarch64-unknown-linux-gnu.tar.gz": "06afd6d525326cea95c3aa658aaa8542eab26f44235565bb16913ac9d12b7bda",
+    "rust-1.38.0-aarch64-unknown-linux-gnu.tar.xz": "6ab06ff04cc41e612dd55f3358a1239be8cceb0ad8018996d39ae3e3b23156d2",
+    "rust-1.38.0-x86_64-apple-darwin.tar.gz": "bd301b78ddcd5d4553962b115e1dca5436dd3755ed323f86f4485769286a8a5a",
+    "rust-1.38.0-x86_64-apple-darwin.tar.xz": "eadf50d2c64bd350e48aa3d87b5f97ceefa6788dc7e4c8461eac2102404caccc",
+    "rust-1.38.0-x86_64-pc-windows-msvc.tar.gz": "99e2e22084a7c6a114f5353800677e1f7eb4b8cecf1b8841e21ac9579fe8da8c",
+    "rust-1.38.0-x86_64-pc-windows-msvc.tar.xz": "b69e251dc38cf1b57ddf9a1941c644c48adc560d2e06d2220de0a3c9478d01d0",
+    "rust-1.38.0-x86_64-unknown-freebsd.tar.gz": "a765b1f01a387b15b576b67c77e02609a6d9a6769584742f66f0cac1944c0f7f",
+    "rust-1.38.0-x86_64-unknown-freebsd.tar.xz": "23b610e229ea1d703be1d5384ff948bcef579aacfe8e488c7b8678c2df4f278a",
+    "rust-1.38.0-x86_64-unknown-linux-gnu.tar.gz": "adda26b3f0609dbfbdc2019da4a20101879b9db2134fae322a4e863a069ec221",
+    "rust-1.38.0-x86_64-unknown-linux-gnu.tar.xz": "4e9a2ef90679a66c9f8c62b113b018866303645a69c4812d8290d8a7162ea190",
+    "rust-1.38.0-x86_64-unknown-linux-musl.tar.gz": "14f064fbd34b332866d96db12329ddd6d40525d69d7b8532d3d5387da1217e79",
+    "rust-1.38.0-x86_64-unknown-linux-musl.tar.xz": "939264abe2e8a16bc62451c24084afcbdcca9d0810446538ddd8902d2a63a500",
+    "rust-1.39.0-aarch64-unknown-linux-gnu.tar.gz": "e27dc8112fe577012bd88f30e7c92dffd8c796478ce386c49465c03b6db8209f",
+    "rust-1.39.0-aarch64-unknown-linux-gnu.tar.xz": "a3f6943ad00bbf7131c8571b21f641082c8ac8298ee3a8bd5428e96743e31e05",
+    "rust-1.39.0-x86_64-apple-darwin.tar.gz": "3736d49c5e9592844e1a5d5452883aeaf8f1e25d671c1bc8f01e81c1766603b5",
+    "rust-1.39.0-x86_64-apple-darwin.tar.xz": "4434bc3e775a649213a664a04eba16cbe5a3379165006035c1cf652bc07f2ebd",
+    "rust-1.39.0-x86_64-pc-windows-msvc.tar.gz": "3c96b221af3343c04bf81e621a0b97a2452ae1803ecc2841a162690d8ebfe46f",
+    "rust-1.39.0-x86_64-pc-windows-msvc.tar.xz": "e6e1cd6cff4e0599c49cf0637055d06496545845639ffdf29f36653bd02ba4e5",
+    "rust-1.39.0-x86_64-unknown-freebsd.tar.gz": "9cb25742e727bab0da5feb957ef61f7ffc836b4d5d0e6cabfdf28fb68caf5fdd",
+    "rust-1.39.0-x86_64-unknown-freebsd.tar.xz": "adb0a434d515d6870e1f22217977e771c12ef1a73a772369dacc12b7b92fab16",
+    "rust-1.39.0-x86_64-unknown-linux-gnu.tar.gz": "b10a73e5ba90034fe51f0f02cb78f297ed3880deb7d3738aa09dc5a4d9704a25",
+    "rust-1.39.0-x86_64-unknown-linux-gnu.tar.xz": "095874d294355e95236e07e3e82635d95b8872f751ad21c5d1d9b53ef443e536",
+    "rust-1.39.0-x86_64-unknown-linux-musl.tar.gz": "f6610742ad223cdd9420707454e4814baf14ab79d73dc033ef190eed28e05cbc",
+    "rust-1.39.0-x86_64-unknown-linux-musl.tar.xz": "cbb30c3a3ed58632e6c5a328afa3968baa96f9785de7cff67a305ac0f5c54e26",
+    "rust-1.40.0-aarch64-unknown-linux-gnu.tar.gz": "639271f59766d291ebdade6050e7d05d61cb5c822a3ef9a1e2ab185fed68d729",
+    "rust-1.40.0-aarch64-unknown-linux-gnu.tar.xz": "5817c8c3a919117ae6dac8e9b3039d4e614cc9bed8040bf64fcf2e683b8c6245",
+    "rust-1.40.0-x86_64-apple-darwin.tar.gz": "749ca5e0b94550369cc998416b8854c13157f5d11d35e9b3276064b6766bcb83",
+    "rust-1.40.0-x86_64-apple-darwin.tar.xz": "14f047b4fbd3a7db1cba49c86a066650703a354db360fefec0e35e8dc63a3dea",
+    "rust-1.40.0-x86_64-pc-windows-msvc.tar.gz": "64d98af9b9114a3aaea096ba74c43cad75a2502fb682e941b4701f5d2a2b9272",
+    "rust-1.40.0-x86_64-pc-windows-msvc.tar.xz": "975dda13b8b723701e86927c6f99e9250d50d1e02968cbcb4587ecdaa606ad51",
+    "rust-1.40.0-x86_64-unknown-freebsd.tar.gz": "d1a58e9f743f4a55513f74e41c90ab7b291413ce46336c138762fd9aa6605b32",
+    "rust-1.40.0-x86_64-unknown-freebsd.tar.xz": "889e2b4f8c22ce35dee26b044537ae47c080995fd274b0b04d1a38c424e8a4fe",
+    "rust-1.40.0-x86_64-unknown-linux-gnu.tar.gz": "fc91f8b4bd18314e83a617f2389189fc7959146b7177b773370d62592d4b07d0",
+    "rust-1.40.0-x86_64-unknown-linux-gnu.tar.xz": "37492d6467bcea611b2c7388aed50b655524f81410e255142ef6cfb6cef1ec53",
+    "rust-1.40.0-x86_64-unknown-linux-musl.tar.gz": "4fbc6a60c31d89d922cb8c3630a92d7d959a8ec8fa48b51bed9eb67eb0d30b33",
+    "rust-1.40.0-x86_64-unknown-linux-musl.tar.xz": "055e5de669363503ac192d25a50d18ad8e5f34a4a9a7c16aafa314209c219f67",
+    "rust-1.41.0-aarch64-unknown-linux-gnu.tar.gz": "79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27",
+    "rust-1.41.0-aarch64-unknown-linux-gnu.tar.xz": "5cde80ad53b7e238625fe6702f04091ed0c89935a92f1dc00d5b37f3aad94abd",
+    "rust-1.41.0-x86_64-apple-darwin.tar.gz": "b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a",
+    "rust-1.41.0-x86_64-apple-darwin.tar.xz": "f97d9d1b776317b0602552cab9e7d12c87d9383181ba00006f902611ae2780ab",
+    "rust-1.41.0-x86_64-pc-windows-msvc.tar.gz": "4c43a64e83c28bfb788782b01d95034ecc59bf9846006aa1deb6986c139b9f9d",
+    "rust-1.41.0-x86_64-pc-windows-msvc.tar.xz": "aa2cd2d5f0632a8680b61d17ac4d4030549f9ad9af35267beed2fc19e430ccdd",
+    "rust-1.41.0-x86_64-unknown-freebsd.tar.gz": "ae1093a1e476f5c7b1c1f59f986d64b5f82a76b865c9823bcc3d5061bb93ff9f",
+    "rust-1.41.0-x86_64-unknown-freebsd.tar.xz": "b240647f8bfa98cc51a553b2c9463c67624cfde7024cdc7c8b2341ba457b1823",
+    "rust-1.41.0-x86_64-unknown-linux-gnu.tar.gz": "343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b",
+    "rust-1.41.0-x86_64-unknown-linux-gnu.tar.xz": "7ab76558551865a93a92952ba142376b35893fe09fc8a445b3e741739e1c4afa",
+    "rust-1.41.0-x86_64-unknown-linux-musl.tar.gz": "ff7345dde2f5bc295ed8ae50f0eee54b8dd697e712f86095a3378bb4dcfeea70",
+    "rust-1.41.0-x86_64-unknown-linux-musl.tar.xz": "cbdc66765790c8a7c94c2a7305f1435dff9c77a4d24d8f34e0662c501c4d547c",
+    "rust-1.42.0-aarch64-unknown-linux-gnu.tar.gz": "fdd39f856a062af265012861949ff6654e2b7103be034d046bec84ebe46e8d2d",
+    "rust-1.42.0-aarch64-unknown-linux-gnu.tar.xz": "b30833fd98b3d2a5886e93473e100c32a319d741a305eda67ea5fc24c85e5f9a",
+    "rust-1.42.0-x86_64-apple-darwin.tar.gz": "db1055c46e0d54b99da05e88c71fea21b3897e74a4f5ff9390e934f3f050c0a8",
+    "rust-1.42.0-x86_64-apple-darwin.tar.xz": "6029bd3414c6cb919ecf1d8e7dda6a0c4b50e998e78d5aa69a82d85692a04873",
+    "rust-1.42.0-x86_64-pc-windows-msvc.tar.gz": "4a3131ff6d2b04d120069e0ba494a6418db1c691fc8e4627cf1aaf2ffbaf5ad9",
+    "rust-1.42.0-x86_64-pc-windows-msvc.tar.xz": "fa76f38f161ef5c2ba5890862280c49094ccf414934782234df239ed4c38cc71",
+    "rust-1.42.0-x86_64-unknown-freebsd.tar.gz": "230bcf17e4383fba85d3c87fe25d17737459fe561a5f4668fe70dcac2da4e17c",
+    "rust-1.42.0-x86_64-unknown-freebsd.tar.xz": "1fc57da200f30260b2eebad4d5b3a58e7dd7afb5f1614e42a3b7330cc05d666b",
+    "rust-1.42.0-x86_64-unknown-linux-gnu.tar.gz": "7d1e07ad9c8a33d8d039def7c0a131c5917aa3ea0af3d0cc399c6faf7b789052",
+    "rust-1.42.0-x86_64-unknown-linux-gnu.tar.xz": "8c94fba97589f1548bbd0652ff337169a7e47b4cb08accd9973722fe830c27ff",
+    "rust-1.42.0-x86_64-unknown-linux-musl.tar.gz": "1c6bcdf5dfb51c52e7afd33fddd799a0814cd80b443137a8e9eec5563de6849d",
+    "rust-1.42.0-x86_64-unknown-linux-musl.tar.xz": "d99252d6d05cabb002964fb9521f2d01f4d5396cf41253305c998ad2418b1c97",
+    "rust-1.43.0-aarch64-unknown-linux-gnu.tar.gz": "e5fa55f333c10cdae43d147438a80ffb435d6c7b9681cd2e2f0857c024556856",
+    "rust-1.43.0-aarch64-unknown-linux-gnu.tar.xz": "5d1bcbf7575be72c4775c89098366158ee87905423342196a6ef0c1b3d3f1140",
+    "rust-1.43.0-x86_64-apple-darwin.tar.gz": "504e8efb2cbb36f5a3db7bb36f339a1e5216082c910ad19039c370505cfbde99",
+    "rust-1.43.0-x86_64-apple-darwin.tar.xz": "1abaf0d5c954ff5d0c13f03efbdc396b86a849352f5258c72c2346ec0d631d61",
+    "rust-1.43.0-x86_64-pc-windows-msvc.tar.gz": "78dea49969addb3ef7a3a3816482534828a5140c866a828be69ccfeb44972a3b",
+    "rust-1.43.0-x86_64-pc-windows-msvc.tar.xz": "0fcea356a9cadb91cb1e2ec310b924792bad79904bdb9cee2290479e35967b8b",
+    "rust-1.43.0-x86_64-unknown-freebsd.tar.gz": "2555aa83d1559af19054befdaea3ae560374376f9973aa3dad2c41fcd2eb84d4",
+    "rust-1.43.0-x86_64-unknown-freebsd.tar.xz": "4ffbcef916d8bc4d82ce218c28050d90bb8d456b757c9dcedb00ba9491b8a7a3",
+    "rust-1.43.0-x86_64-unknown-linux-gnu.tar.gz": "069f34fa5cef92551724c83c36360df1ac66fe3942bc1d0e4d341ce79611a029",
+    "rust-1.43.0-x86_64-unknown-linux-gnu.tar.xz": "af633676caffaaecfb2600ec617d84e41811e7a6fe438760a97c5404afecdd6b",
+    "rust-1.43.0-x86_64-unknown-linux-musl.tar.gz": "dcb022649bc1998d8e103f42cb0847afc57fcd303bc9fdfde057b2b53436605a",
+    "rust-1.43.0-x86_64-unknown-linux-musl.tar.xz": "c63e4c1b4c56d4118fd21de2bbecb05d1d9bde156bb1c3f6754854773dd93cc4",
+    "rust-1.44.0-aarch64-unknown-linux-gnu.tar.gz": "bcc916003cb9c7ff44f5f9af348020b422dbc5bd4fe49bdbda2de6ce0a1bb745",
+    "rust-1.44.0-aarch64-unknown-linux-gnu.tar.xz": "077bcf4119007817fa265cb0062c908ac03ceddf699bc0fc50a21dc4e90e46e8",
+    "rust-1.44.0-x86_64-apple-darwin.tar.gz": "f20388b80b2b0a8b122d89058f785a2cf3b14e93bcac53471d60fdb4106ffa35",
+    "rust-1.44.0-x86_64-apple-darwin.tar.xz": "5e214e9bfa225b6c3795a5b81810c4140c3fa90a508a2bab0ea638b1cbd97694",
+    "rust-1.44.0-x86_64-pc-windows-msvc.tar.gz": "127cf6569c4958e362f06f850eec6cba0ad69474ab15fef2dee740aee45a3169",
+    "rust-1.44.0-x86_64-pc-windows-msvc.tar.xz": "08f2ba598d5974562be9ae0faafde8ba952bf68d52875572b7f99d77abe3b48c",
+    "rust-1.44.0-x86_64-unknown-freebsd.tar.gz": "e2ad3224790d2283d7ef66d5e1f08cec688f1c29cf53326c9a6c28fb4914b6a1",
+    "rust-1.44.0-x86_64-unknown-freebsd.tar.xz": "be1ed09ac71f3d8ffc232ea02dfc1ec987ad9a21b226aee371c90184ea91f589",
+    "rust-1.44.0-x86_64-unknown-linux-gnu.tar.gz": "eaa34271b4ac4d2c281831117d4d335eed0b37fe7a34477d9855a6f1d930a624",
+    "rust-1.44.0-x86_64-unknown-linux-gnu.tar.xz": "1c0ff71c36d35f214d7c34ce139b256bd517adce08d3da9fafa96a9bab8a624f",
+    "rust-1.44.0-x86_64-unknown-linux-musl.tar.gz": "dabcba42caeba91874cf10640f70fb580bdab136ce56211ac341f10d311f6ebc",
+    "rust-1.44.0-x86_64-unknown-linux-musl.tar.xz": "1b5a82d62c1d2acc633e43cd6076f55b190c26ca9fa22bd51cf2330d3ea43b92",
+    "rust-1.45.0-aarch64-unknown-linux-gnu.tar.gz": "b727be0ecdee5fb88775b784758a09ab696293048a80288999b8a6f78b160212",
+    "rust-1.45.0-aarch64-unknown-linux-gnu.tar.xz": "9901f2c1d9e5025fb9b6fe65b9e96ae47acdc160b8094f8667e75795e20f6a24",
+    "rust-1.45.0-x86_64-apple-darwin.tar.gz": "8e91f99ffbf5ae86d659d3515315a8e92ef44210102672c1536a9902cc182401",
+    "rust-1.45.0-x86_64-apple-darwin.tar.xz": "e6768061857a1cab3aafbb400258d4af4f3134eddd8307ca9e469dcd59d34a53",
+    "rust-1.45.0-x86_64-pc-windows-msvc.tar.gz": "7d1118568b83fd1da5312de95ca6f30d4f21dae57073c00a216437e4c02733cc",
+    "rust-1.45.0-x86_64-pc-windows-msvc.tar.xz": "c8c488791f95a2334de78b4f36104449b8e41d4bc6d377e5f5d717cd0f75551c",
+    "rust-1.45.0-x86_64-unknown-freebsd.tar.gz": "3d09db6a127558cfdb4fc44106e7d478bb8f6cc6148d536b90d30610181fc656",
+    "rust-1.45.0-x86_64-unknown-freebsd.tar.xz": "94dcf280f2a76e5a2866892c6ca70414d647b3e6fe56141a70a840a504c6235a",
+    "rust-1.45.0-x86_64-unknown-linux-gnu.tar.gz": "c34ed8722759fd60c94dbc9069833da5b3b873dcd19afaa9b34c1ce2c2cfa229",
+    "rust-1.45.0-x86_64-unknown-linux-gnu.tar.xz": "2703735ab54dedcd4540de651f8bf6bb761ee930abb0187d3138696067c9b38d",
+    "rust-1.45.0-x86_64-unknown-linux-musl.tar.gz": "ca5c4670f511ff225d097b5602d4a2ce984b4cd02c6aedc3be1279570c6475cb",
+    "rust-1.45.0-x86_64-unknown-linux-musl.tar.xz": "66819552563333fd7b2e82570009e3c05acf2ea0ad27390d20f4c56e37935fdb",
+    "rust-1.46.0-aarch64-unknown-linux-gnu.tar.gz": "f0c6d630f3dedb3db69d69ed9f833aa6b472363096f5164f1068c7001ca42aeb",
+    "rust-1.46.0-aarch64-unknown-linux-gnu.tar.xz": "81146b6942665db5588f7b52ff0b2fbb7208dfe3d6ebd6cf9016e1cf1d487475",
+    "rust-1.46.0-x86_64-apple-darwin.tar.gz": "82d61582a3772932432a99789c3b3bd4abe6baca339e355048ca9efb9ea5b4db",
+    "rust-1.46.0-x86_64-apple-darwin.tar.xz": "463e90e6f649cb1e4eb5f8d906aadf7e8107b9855ded295bfc44a86213b2c0d0",
+    "rust-1.46.0-x86_64-pc-windows-msvc.tar.gz": "3545eb66ed7c6222ca4eb9e990d4bef63edbac9b580387bf7035501ee35d453f",
+    "rust-1.46.0-x86_64-pc-windows-msvc.tar.xz": "b590c0bb20489bfc2491c2c8da7038fdc7461dfb8f37105b216e2305da293861",
+    "rust-1.46.0-x86_64-unknown-freebsd.tar.gz": "30d8b05073b23f0621ed00276208589dcd7669776b752a67c66c9c928ebbe258",
+    "rust-1.46.0-x86_64-unknown-freebsd.tar.xz": "ddc68e748f14359be6bfcf8f1d470fd250d31d4dbfa7b21ea6668a5e2691e400",
+    "rust-1.46.0-x86_64-unknown-linux-gnu.tar.gz": "e3b98bc3440fe92817881933f9564389eccb396f5f431f33d48b979fa2fbdcf5",
+    "rust-1.46.0-x86_64-unknown-linux-gnu.tar.xz": "9877249e71f13775661feb9f5c922c094bfd87ba8a3f2b41532fa56b8a44b70e",
+    "rust-1.46.0-x86_64-unknown-linux-musl.tar.gz": "57aa5ca25bbd3da4eea6fc411b0fe7e1dbc683230a3f58ec84b9f70c5606909b",
+    "rust-1.46.0-x86_64-unknown-linux-musl.tar.xz": "b16e65c09529f36f5b74b8595ae4be4d79be9e094c88b9913cd5389a552782aa",
+    "rust-1.47.0-aarch64-unknown-linux-gnu.tar.gz": "753c905e89a714ab9bce6fe1397b721f29c0760c32f09d2f328af3d39919c8e6",
+    "rust-1.47.0-aarch64-unknown-linux-gnu.tar.xz": "e9d8c864482f12ab21fc0f351b006c2fb24733a39ea75c172b7a443d7a0e2a06",
+    "rust-1.47.0-x86_64-apple-darwin.tar.gz": "84e5be6c5c78734deba911dcf80316be1e4c7da2c59413124d039ad96620612f",
+    "rust-1.47.0-x86_64-apple-darwin.tar.xz": "d93ab2b932b90ba1f41969677b70218b199b2438e2b8d8bbfa379b2cd99de14d",
+    "rust-1.47.0-x86_64-pc-windows-msvc.tar.gz": "c9f93f8c821090e1c96384bef564e9c9d86bd13ef8d1116b3f17e124f07f55cc",
+    "rust-1.47.0-x86_64-pc-windows-msvc.tar.xz": "56482b250a282455652ac289596bf64e8630bf8b841157c425ef0df87eba638c",
+    "rust-1.47.0-x86_64-unknown-freebsd.tar.gz": "650af0288d099c9debef7258a27caf15dd8aaf033ee1a099b4c5216c95ecfeaa",
+    "rust-1.47.0-x86_64-unknown-freebsd.tar.xz": "04d541022735759d22cf74a6a0a06aaa82f0a1aca64ce858616e86af38cf5a2b",
+    "rust-1.47.0-x86_64-unknown-linux-gnu.tar.gz": "d0e11e1756a072e8e246b05d54593402813d047d12e44df281fbabda91035d96",
+    "rust-1.47.0-x86_64-unknown-linux-gnu.tar.xz": "123f8840258d5f9c858f957aa3930d045c6bdf80074d081c1ab4ef0c1d6e1c73",
+    "rust-1.47.0-x86_64-unknown-linux-musl.tar.gz": "63be7601a9ecc552e3cb7a7b8f781bc122f756e8c61e4da4b76f995af039e53f",
+    "rust-1.47.0-x86_64-unknown-linux-musl.tar.xz": "14c9fbb5b9bbe8b16cd5a95ea6030a6682505cb3a8fb0c8e7c8df7560cea172a",
+    "rust-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "c4769418d8d89f432e4a3a21ad60f99629e4b13bbfc29aef7d9d51c4e8ee8a8a",
+    "rust-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "bd5a8b4c891c1f569381c0c42a61a1f5c5aa0b34d34d6cd3ed6e5d37f24c00d4",
+    "rust-1.48.0-aarch64-unknown-linux-musl.tar.gz": "ac4de580a28e45a9773b389b296d13bfeeb08263cb1f8343859577a54940dae9",
+    "rust-1.48.0-aarch64-unknown-linux-musl.tar.xz": "adcd06616886959da1cb18c646912f9ce65b1f45b294585dae5efdfc269e6e7d",
+    "rust-1.48.0-x86_64-apple-darwin.tar.gz": "20e727cad10f43e3abcedb2a80979ae26923038e0e8a855e8a783da255054113",
+    "rust-1.48.0-x86_64-apple-darwin.tar.xz": "33dabae51fbe01061c6ef0bffddc585a34516543e51ffff1e09e80b6245cee1b",
+    "rust-1.48.0-x86_64-pc-windows-msvc.tar.gz": "0fdf41bb9b45e923000205b08329e15124f01b9b32986d73cd36625f3c7d883b",
+    "rust-1.48.0-x86_64-pc-windows-msvc.tar.xz": "e105801b40d2ae45190aae3d2f15f2be3234294dad8d522b59c8c27739d4cf66",
+    "rust-1.48.0-x86_64-unknown-freebsd.tar.gz": "21e24489ffaabe517e5e87572707784d5b471646164109b248957a2d32e7a8b9",
+    "rust-1.48.0-x86_64-unknown-freebsd.tar.xz": "12b356fea23f05f4a724bb413d8146d279a0c89ba60672f5c2a027abcc10b8c6",
+    "rust-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "950420a35b2dd9091f1b93a9ccd5abc026ca7112e667f246b1deb79204e2038b",
+    "rust-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "58270d8e10f72e1712ba08db6b8f8ffca64a63d1a7b220688b59fb05655b3843",
+    "rust-1.48.0-x86_64-unknown-linux-musl.tar.gz": "4ed9627f57b4e0b9807fc5e7513d9731f4791668b7f875b9e44e65e21072c56f",
+    "rust-1.48.0-x86_64-unknown-linux-musl.tar.xz": "9c4e7d9e0dcb08d08432fb5bc1672ee26f4e722ddb1dd5a548dfe5794a1adebe",
+    "rust-1.49.0-aarch64-apple-darwin.tar.gz": "ce7d689e6f73dd9c07b672ba23dabe5159fa8c194dce71b4f3f95baeaf564082",
+    "rust-1.49.0-aarch64-apple-darwin.tar.xz": "b91c7ef52144af18f9ebfe7ac3d1ffb248bb41130bb0853e1a7ac282d34d26fb",
+    "rust-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "b551bd482041307fa3373a687d6d6a2c4c0931c2e0a68b8b75dc80bc5cf5f002",
+    "rust-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "0d887344a6d048ddb9f9acc215054e2fe9d5723bb2d8904daf77a06761847b69",
+    "rust-1.49.0-aarch64-unknown-linux-musl.tar.gz": "0a43d96a508c720520328112d609916d062f866a5c35f1db8f906284035d6d98",
+    "rust-1.49.0-aarch64-unknown-linux-musl.tar.xz": "44c77e1f8c9d5c7c9937de1e22b5a9878b85358ef882224b2da7deef79dc7d66",
+    "rust-1.49.0-x86_64-apple-darwin.tar.gz": "fe3e248bc4b0ee0a2595693687ad845c8a8bda824a56c9321520bcca02433716",
+    "rust-1.49.0-x86_64-apple-darwin.tar.xz": "7099180a5842931738299a5ee3326b3ade477ed1ac5b46e1af5bf515d6022460",
+    "rust-1.49.0-x86_64-pc-windows-msvc.tar.gz": "5340831dcf98344de4a6888b50237f82568a97a46d9814f1400720dde0c7b6e5",
+    "rust-1.49.0-x86_64-pc-windows-msvc.tar.xz": "82242723250fce46d8d9b29d67ff241fe189200c5caf2d6e750bea6b3ae6c5bc",
+    "rust-1.49.0-x86_64-unknown-freebsd.tar.gz": "dced98577e834f511cae8e58290539ad6b8dd40ae512e90d1371f650961bd930",
+    "rust-1.49.0-x86_64-unknown-freebsd.tar.xz": "8e42a60e17a600d1c55611d231355c08a75855b97127c99891d86f2af7f0ce40",
+    "rust-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "8b14446df82f3707d69cf58fed92f18e0bff91621c62baf89288ef70e3e92981",
+    "rust-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "4f7cc328231e1a853e0d28d2fea960c6055b7d2eef9d06e7e2c85482e50b23ef",
+    "rust-1.49.0-x86_64-unknown-linux-musl.tar.gz": "f92a5a4adcfac4206a223d089a364a8375d1b6f112f3f2efa3f6d53d08a61904",
+    "rust-1.49.0-x86_64-unknown-linux-musl.tar.xz": "e98af94366a70b26cdf3c542b0a5ded5d94752c8ef02ade2ec6b940f10113f12",
+    "rust-1.50.0-aarch64-apple-darwin.tar.gz": "1ed91a867e7b86cc4bc84c0838240f1c25acd007100ec9f7a14c4873e4b56561",
+    "rust-1.50.0-aarch64-apple-darwin.tar.xz": "be2209a14b826c2da3635cfe16d6ac2df8bc8a20eae7881e9a3041fd7bd0bd0b",
+    "rust-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "1db7a4fbddc68cd29eb9bca9fa7d0d2d9e3d59ede7ddaad66222fb4336a6bacf",
+    "rust-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "4f38e4a5e9075d8938877ceed7687c99395a12aec2906b9e118bedb3014ad0ec",
+    "rust-1.50.0-aarch64-unknown-linux-musl.tar.gz": "adcc6c76a8967bacb6687b565d3cf739e35fde066b03edb745b05b52fa8b5b36",
+    "rust-1.50.0-aarch64-unknown-linux-musl.tar.xz": "c630e7c49056b1048c6bf1b0fe0d615ad58c3ffd3bc5909170ef33a5e190e3c8",
+    "rust-1.50.0-x86_64-apple-darwin.tar.gz": "1bf5a7ecf6468ce1bf9fe49c8083b3f648b40c16fbfb7539d106fe28eb0e792e",
+    "rust-1.50.0-x86_64-apple-darwin.tar.xz": "25741c4fbd2d82d1b2d2942ebd6b95763a772b4a8de41e972984faf18dcdf36d",
+    "rust-1.50.0-x86_64-pc-windows-msvc.tar.gz": "e8857c30b43b7d92371f824303d18e90e67e1053497366ad3496fa7ba0e0de6e",
+    "rust-1.50.0-x86_64-pc-windows-msvc.tar.xz": "0796c331861ca4363c7dd7b749a376d28de99b69db5e73c73b9f803e0be6ab92",
+    "rust-1.50.0-x86_64-unknown-freebsd.tar.gz": "83f9d093ab7f0f5abac15e0fcea6f22daef217a2b6240342b71ae52f99a7f31d",
+    "rust-1.50.0-x86_64-unknown-freebsd.tar.xz": "98f176ed2d43587aaadc7a2d0b202d077e9504c3b1d291cee4c15aeb24a70fdb",
+    "rust-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "fa889b53918980aea2dea42bfae4e858dcb2104c6fdca6e4fe359f3a49767701",
+    "rust-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "ebca47de5cbc225ec40573e67ceb1ad1ae9c97e6e7eca135d8fb535a5ee99168",
+    "rust-1.50.0-x86_64-unknown-linux-musl.tar.gz": "867cbfb35f5dc9b43e230132ea9e7bfa98d471a9248e41b08ced2266e5ccd00f",
+    "rust-1.50.0-x86_64-unknown-linux-musl.tar.xz": "82ea3f2079a84ad781b04c586d8e7fe2c8d3804ee61de913a11ec8d1de05f08a",
+    "rust-1.51.0-aarch64-apple-darwin.tar.gz": "95d0410bbd20b05f8b7d5adf70e8737873995bc86611a90e643d7081ca35147f",
+    "rust-1.51.0-aarch64-apple-darwin.tar.xz": "e8fdadd29ec2773e363e95f6e813fa121822d4dfea5d46ffba35ee10156b550e",
+    "rust-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "fd31c78fffad52c03cac5a7c1ee5db3f34b2a77d7bc862707c0f71e209180a84",
+    "rust-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "f0359cc4e83253eaa86e74724b457509932bbc4f3bb2311021fa43e5965d38eb",
+    "rust-1.51.0-aarch64-unknown-linux-musl.tar.gz": "06cdaa1117dcdd392ede938b655b9bc45cf2a76bd42870ca223189e6eb29d435",
+    "rust-1.51.0-aarch64-unknown-linux-musl.tar.xz": "96d0fed5a78f81574a94936178abeb3eb4e3cc86b085c5e318c201ced81cd6d9",
+    "rust-1.51.0-x86_64-apple-darwin.tar.gz": "765212098a415996b767d1e372ce266caf94027402b269fec33291fffc085ca4",
+    "rust-1.51.0-x86_64-apple-darwin.tar.xz": "47c501b6c6d99d30038299d8609bd746864d1f2089d9b1e20a976fe5af4cfb28",
+    "rust-1.51.0-x86_64-pc-windows-msvc.tar.gz": "aa0a7c78c68a2f23b72a95976f74aa5b883feb20812698b8ee0b07a86314ebc5",
+    "rust-1.51.0-x86_64-pc-windows-msvc.tar.xz": "7b1caf43162c4f8a8f90702115c8626ddf5fdbd37062e4bfe7fbeb275b872a17",
+    "rust-1.51.0-x86_64-unknown-freebsd.tar.gz": "d764ab80889460caca86cda7b7ca2ced80544bb477634adc8cade0e27f4f663b",
+    "rust-1.51.0-x86_64-unknown-freebsd.tar.xz": "97280e235845ba020bfc078efbc364cbff56d6e47bbffc09c4ee49f70b56144e",
+    "rust-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "9e125977aa13f012a68fdc6663629c685745091ae244f0587dd55ea4e3a3e42f",
+    "rust-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "0f3bf3792f9d79d4dd12a7af2d7d1c43c23914690ab12f000030ac94c3e0d20f",
+    "rust-1.51.0-x86_64-unknown-linux-musl.tar.gz": "cb65c3a19ba0e09a94ccfd8551e648efaa1db52b0db19ae475d35a46f8750871",
+    "rust-1.51.0-x86_64-unknown-linux-musl.tar.xz": "938ac39dc03313348bd4f4606b6b8f8026b8438be07b0fa434a0f14c01c99758",
+    "rust-1.52.0-aarch64-apple-darwin.tar.gz": "3aa15896dd85d1746a23af1b9764b55edb3659823ec20f306a5f30271c6bac5d",
+    "rust-1.52.0-aarch64-apple-darwin.tar.xz": "04da3e710b59046ee6e81262c95701e381cd2795318268b5ac283ce219bdecf3",
+    "rust-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "d37152f9da1074cfa84407ff183ce0dfb298f2e474d5b0ae3a3065d44c442770",
+    "rust-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "c8458be21a60faed4f45ea47441d29437bb3d06c61c49767ae67ac9e442c4af8",
+    "rust-1.52.0-aarch64-unknown-linux-musl.tar.gz": "af73b6e9a99151f60569411fedcf5dfefb89bbec61548a2b4a8157874da77816",
+    "rust-1.52.0-aarch64-unknown-linux-musl.tar.xz": "30ce47ae8b164deb83bb34e36c8fc162620a7c50c5f67956ed65d56f6ff764dd",
+    "rust-1.52.0-x86_64-apple-darwin.tar.gz": "18906ea9ef6d7afc493f0c4403ece9fb466b0971db8d37d837864676ef9b077b",
+    "rust-1.52.0-x86_64-apple-darwin.tar.xz": "894aaf7ebd62e79355c7e410268552bd46014b168f7711768fe0cab9d695441c",
+    "rust-1.52.0-x86_64-pc-windows-msvc.tar.gz": "53ad54808b1320aff5cc772f007a7f6570afceeb9c5b70b4b09fec9363610d59",
+    "rust-1.52.0-x86_64-pc-windows-msvc.tar.xz": "7e0257d5eb4a8dbcb3aea157a3d13dd61b97965b5b078591625b1200bf09d549",
+    "rust-1.52.0-x86_64-unknown-freebsd.tar.gz": "f0610d69f18f861b72240cd6d42dae43adf932eadc24619a48e5a9363f719cdb",
+    "rust-1.52.0-x86_64-unknown-freebsd.tar.xz": "f6aacc1e88f6365adbc72ccb5e6f4e08dc364b140bc7ce0c80f6585ea8886414",
+    "rust-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "c082b5eea81206ff207407b41a10348282362dd972e93c86b054952b66ca0e2b",
+    "rust-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "d440cb932bbaaf43b600bd47b2dd4a05bc669a74d88addeeb943d694638d8e6e",
+    "rust-1.52.0-x86_64-unknown-linux-musl.tar.gz": "56e36a3e626dca9eb65a07109ecd65e0454d9882124a6cda66ad21e78b82f627",
+    "rust-1.52.0-x86_64-unknown-linux-musl.tar.xz": "56e1e1e20ba85bd4b057066250b6ef9fa8ebe1d46e12ffb93fec4f8df60e5d77",
+    "rust-1.52.1-aarch64-apple-darwin.tar.gz": "217e9723f828c5359467d69b363a342d702bdcbbcc4107be907e6bc4531f4912",
+    "rust-1.52.1-aarch64-apple-darwin.tar.xz": "bffa9c3d7d79480a3f9e634e7765e2623e84074525a8ef0de4b3854e1ea88a64",
+    "rust-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "17d9aa7bb73b819ef70d81013498727b7218533ee6cf3bd802c4eac29137fbcb",
+    "rust-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "50f12da8c131edd0eab6d875c31194a461f67ac0a753b0f8805f5abbba88fea9",
+    "rust-1.52.1-aarch64-unknown-linux-musl.tar.gz": "f2bae2b32f05a90eec041352d9329deb3e907f5560b9fda525788df3b8008b6b",
+    "rust-1.52.1-aarch64-unknown-linux-musl.tar.xz": "00ec189c143119a4d6d6325cabd4ce940b616e33622700840ac0e4127e462250",
+    "rust-1.52.1-x86_64-apple-darwin.tar.gz": "cfa73228ea54e2c94f75d1b142ea41444c463f4ee8562a3eca1b11b2fe8af95a",
+    "rust-1.52.1-x86_64-apple-darwin.tar.xz": "626471001f73739056a4c9cfe302b90ff433943d41b01f716760cb2a277525b7",
+    "rust-1.52.1-x86_64-pc-windows-msvc.tar.gz": "c03fb39f39519abd65ce792cc3d2c038b6c4179089d21f9e26933b93cde402d9",
+    "rust-1.52.1-x86_64-pc-windows-msvc.tar.xz": "3a014fbed6b727f9d4df89b501831bb919dfb9acd50a230370c00c7a7d3e4a0c",
+    "rust-1.52.1-x86_64-unknown-freebsd.tar.gz": "74e8386d2a9b1363ac8f5b0637e4c38a305d4706babda5222801c5ec9d5a2e6d",
+    "rust-1.52.1-x86_64-unknown-freebsd.tar.xz": "59ee5a2852eadd9bea97464c0974ec784961a7477dce040a715806932050ad42",
+    "rust-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "617ae06e212cb65bc4abbf52b158b0328b9f1a6c2f822c27c95b274d6fbc0627",
+    "rust-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "04df0b61eb1d5d9dd5793191121f5e7029d33a50f0fe2ae3ef3ec3d22899d855",
+    "rust-1.52.1-x86_64-unknown-linux-musl.tar.gz": "c3eae6e78ee29e03416897f89b54448b2a03d063f07a78cde41757ad2e02c2f0",
+    "rust-1.52.1-x86_64-unknown-linux-musl.tar.xz": "8a80f16f1fcd2fa972bed08857ef79c2d56c2571206371dc26939cdd2e6e15e1",
+    "rust-1.53.0-aarch64-apple-darwin.tar.gz": "c519da905514c05240a8fe39e459de2c4ef5943535e3655502e8fb756070aee1",
+    "rust-1.53.0-aarch64-apple-darwin.tar.xz": "7ccd94f7058c12485c8c815f791dcb2ceafeff0cc3b98c53bdd24d84c29e0ccb",
+    "rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "cba81d5c3d16deee04098ea18af8636bc7415315a44c9e44734fd669aa778040",
+    "rust-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "70706b3bd89a78b0d78450b99de9f1f7415a166d0a8722d93fe0000adec3e03b",
+    "rust-1.53.0-aarch64-unknown-linux-musl.tar.gz": "a0065a6313bf370f2844af6f3b47fe292360e9cca3da31b5f6cb32db311ba686",
+    "rust-1.53.0-aarch64-unknown-linux-musl.tar.xz": "90f5e1a3dd716100d0c31a58bb654d268381dacd461065a894384e1b39ed6bad",
+    "rust-1.53.0-x86_64-apple-darwin.tar.gz": "940a4488f907b871f9fb1be309086509e4a48efb19303f8b5fe115c6f12abf43",
+    "rust-1.53.0-x86_64-apple-darwin.tar.xz": "3efc6ba9ede230fb820901adff516168081dd318d6c02eef496dbba1cd5a40cc",
+    "rust-1.53.0-x86_64-pc-windows-msvc.tar.gz": "4690fb3ff390eef30eca4b3b9193a74e0e00ef18f2d89b7981753aaa9b36d787",
+    "rust-1.53.0-x86_64-pc-windows-msvc.tar.xz": "b480077e2a8b7dd7dfaaeab1cdc943f700f31c4b5a1d0edf3c3a89fc8237dbeb",
+    "rust-1.53.0-x86_64-unknown-freebsd.tar.gz": "f87eee8fabffc5800d5285ce2116e9c0f39340fed4a3c77eeb9fbbf7659b25c4",
+    "rust-1.53.0-x86_64-unknown-freebsd.tar.xz": "ccbbae297a4c32b8b96093470539d4000391a6efb3a18f7d5cc2a47453f163fd",
+    "rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "5e9e556d2ccce27aa8f01a528f1348bf8cdd34496c35ec2abf131660b9792fed",
+    "rust-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "2579fd330d63e67c8bab4a7503befeb8cff064c54650277d0129fdf5375e5e5c",
+    "rust-1.53.0-x86_64-unknown-linux-musl.tar.gz": "908b6163b62660f289bcd1eda1a0eb6d849b4b29da12546d24a033e5718e93ff",
+    "rust-1.53.0-x86_64-unknown-linux-musl.tar.xz": "90e51f36257c008763e14f395703a6ed6621ee15462b2de1781ba4dcf360973f",
+    "rust-1.54.0-aarch64-apple-darwin.tar.gz": "801b3b15b992b0321261de8b8ea2728e9a74822c6cb99bf978b34e217c7825ba",
+    "rust-1.54.0-aarch64-apple-darwin.tar.xz": "e52314376d5258f3fb3ec6b9e0164bfca1c15ed276bd0d772e5392ea8531afe4",
+    "rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "33a50c5366a57aaab43c1c19e4a49ab7d8ffcd99a72925c315fb1f9389139e6f",
+    "rust-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "ee35b807d6cdedefed82f01e2beff448df2daa7ebd45e1f417d3706ad744b04a",
+    "rust-1.54.0-aarch64-unknown-linux-musl.tar.gz": "49d94116a357ea13f5a3231de2472f59210028c3cf81f158b8a367c3155ac544",
+    "rust-1.54.0-aarch64-unknown-linux-musl.tar.xz": "66bc306ab38f2e95e1692737e647808c0880617fc96863f52d976b2f699e6cb1",
+    "rust-1.54.0-x86_64-apple-darwin.tar.gz": "5eb27a4f5f7a4699bc70cf1848e340ddd74e151488bfcb26853fd584958e3d33",
+    "rust-1.54.0-x86_64-apple-darwin.tar.xz": "5be9bfc9b3d4f170bc9fd44815179ca58fd8614a41e5be2e2369970b4286f004",
+    "rust-1.54.0-x86_64-pc-windows-msvc.tar.gz": "1c01182f8d9ef1295eacf58e5b7ba2e3183d768b91f7f650a7421808779068a0",
+    "rust-1.54.0-x86_64-pc-windows-msvc.tar.xz": "cb1cdc415189294df210523f8f47d7a9e5a43f19e6e20f2b7b276560e5743168",
+    "rust-1.54.0-x86_64-unknown-freebsd.tar.gz": "026a40470b9fddfbb4abff3546e620eceaa2812ffc13e180bbb9360c01501a16",
+    "rust-1.54.0-x86_64-unknown-freebsd.tar.xz": "b5a96a9eb960bbfe527dba5549067102849fa80daabf524d367455c7b80232e1",
+    "rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "350354495b1d4b6dd2ec7cf96aa9bc61d031951cf667a31e8cf401dc508639e6",
+    "rust-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "9fb4a22b74120b81a4d896326b02d121d5f996b3288580c346ea55a52d8946a9",
+    "rust-1.54.0-x86_64-unknown-linux-musl.tar.gz": "3571db0018fcd32f3b579a32b2301826dbd1cce44b373aed8e8a31c2a6f52fe8",
+    "rust-1.54.0-x86_64-unknown-linux-musl.tar.xz": "87cd6f2267fb262a954bc5c9bb9b29baf101402ed96db243447d7012dea457ab",
+    "rust-1.55.0-aarch64-apple-darwin.tar.gz": "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a",
+    "rust-1.55.0-aarch64-apple-darwin.tar.xz": "3b71bd426445c6d5b4381bfbef63b9d38a288b372ddd671b13ba6577eb863f2d",
+    "rust-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156",
+    "rust-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "1294261d9734f590e6b0da586a6c26ae7d8532c5a3d74aaa93b18c4f755774f7",
+    "rust-1.55.0-aarch64-unknown-linux-musl.tar.gz": "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28",
+    "rust-1.55.0-aarch64-unknown-linux-musl.tar.xz": "d2d73af8aa79f399999f0c11b0060109697523d2716d1d248f34762362e29c99",
+    "rust-1.55.0-x86_64-apple-darwin.tar.gz": "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3",
+    "rust-1.55.0-x86_64-apple-darwin.tar.xz": "a7b1c814689ce56c2be5a5074cf23a81b97fb45ccbba5d5a2a84551bc3b9b29e",
+    "rust-1.55.0-x86_64-pc-windows-msvc.tar.gz": "c7f21e819d883306c3a06115b4d46a92c7310aed655a2f19b40c457a6f06ba62",
+    "rust-1.55.0-x86_64-pc-windows-msvc.tar.xz": "82bdbd55eb4e5888840d8b677694c4404fe2534ea55d713b2f0f6aed758ffc5e",
+    "rust-1.55.0-x86_64-unknown-freebsd.tar.gz": "7ddb8ec4d431f64dd6428df93d46f726516970b0ca83c71c3efbfe34a42d3113",
+    "rust-1.55.0-x86_64-unknown-freebsd.tar.xz": "c9dccc63e1d4c87526b7d38ee27ac3c12d6ae143907b7aba288f143a7c18669b",
+    "rust-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac",
+    "rust-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "57b0ae332351904f1f84812b08de4f3fa6f5b1055f35281f57a3df3fbac77e5e",
+    "rust-1.55.0-x86_64-unknown-linux-musl.tar.gz": "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2",
+    "rust-1.55.0-x86_64-unknown-linux-musl.tar.xz": "be5bc0252479e3b4ff687892cd4b181e3a0fbf727ba99067fc87bf665c3ac084",
+    "rust-1.56.0-aarch64-apple-darwin.tar.gz": "31b7e9c8b4ac3133b1952d1278077fa45250e26758625f972f9b2f4e2426709d",
+    "rust-1.56.0-aarch64-apple-darwin.tar.xz": "7ef0aa1b2b80e98e4173fd892013535d29510f8ca5aeb894ee952875d149260f",
+    "rust-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "f3e9a9c8af7d17a2fbe0ce561a7dc42f65c5444025783f1f63cd47960a534a9e",
+    "rust-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "c9dc301034506aeea0a3811531dead2f0bcdd770932b10f993abe1a4ffa9295f",
+    "rust-1.56.0-aarch64-unknown-linux-musl.tar.gz": "a97c8f305c0dd07925a00f90e135152769f1c97442874691ffc865602209066d",
+    "rust-1.56.0-aarch64-unknown-linux-musl.tar.xz": "a3ab7ea8449e12d68b12adcc5234525ebad423a8a5dd8ee8bd6112e61190d878",
+    "rust-1.56.0-x86_64-apple-darwin.tar.gz": "577faef3f118a4a259e5e61a415b06434081baeceeff7bbf2357456cfc5b8735",
+    "rust-1.56.0-x86_64-apple-darwin.tar.xz": "084190d855d78fbadc328c9ac34c5c76f62246cfd44f89f75d47a56bd96e712f",
+    "rust-1.56.0-x86_64-pc-windows-msvc.tar.gz": "7ebee9ae583d0723d945fe89244fbc6f51f8723d318a2be9bcbe1e4ffc33606f",
+    "rust-1.56.0-x86_64-pc-windows-msvc.tar.xz": "f725a0d00b738ddecb7420d5fc3214d7277f08bebfce9a3732043370a3bcb3aa",
+    "rust-1.56.0-x86_64-unknown-freebsd.tar.gz": "e31a47ecdd223ef7c84fc50d2c51343f8a3e54d419b04e17d143bd81ed587a7f",
+    "rust-1.56.0-x86_64-unknown-freebsd.tar.xz": "07fb8400b9a4bc942d8fe3b66ae0486c24a7075f208a9e440ade2bcc08e36d6b",
+    "rust-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "5189cd56447f9d56fcd7a1966efe5a8efd19843fdfd6bf9a23a9acbc57b5e3f9",
+    "rust-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "0cc6c195b562702492ffd0be61f9368811d90617fa3b5db3a9115cd235440731",
+    "rust-1.56.0-x86_64-unknown-linux-musl.tar.gz": "6ad1c6fa11e3bce86368385d0b0512d723a426fa55bcaeafdab08d03f127275d",
+    "rust-1.56.0-x86_64-unknown-linux-musl.tar.xz": "ebaa789c169722ff4859fe95b2c9fc0697db6167326bdcf744e9cc9e79929c0b",
+    "rust-1.56.1-aarch64-apple-darwin.tar.gz": "e71c14c1368048a22e4d1851f301872ac2e6f4c574f04d2a7ae4d64b0e7c7235",
+    "rust-1.56.1-aarch64-apple-darwin.tar.xz": "7402a588d91299169f40099865f17a045772097f4ced84013473dd3058b79a5f",
+    "rust-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "69792887357c8dd78c5424f0b4a624578296796d99edf6c30ebe2acc2b939aa3",
+    "rust-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "f08f0683bc62e506a37a29ce91668aea2fab50046b6feb2493eeb117a492e727",
+    "rust-1.56.1-aarch64-unknown-linux-musl.tar.gz": "971d13d41657e50e3ac54f17f52b4198c3d8bc25ec489a6a9e6d12c18226dda5",
+    "rust-1.56.1-aarch64-unknown-linux-musl.tar.xz": "a7df27ec92106d86618655754280407f3134f250293b8144fb678999ef04387d",
+    "rust-1.56.1-x86_64-apple-darwin.tar.gz": "8d65ef02a123c23be00101fb204d28b60498b9145dd2ee8edabf0afde6e01e55",
+    "rust-1.56.1-x86_64-apple-darwin.tar.xz": "ed65d274c3067969aefd0bb25c718b504f6276340b510feae65701f6468df5f4",
+    "rust-1.56.1-x86_64-pc-windows-msvc.tar.gz": "b39acf48e5d73279ca9485f50e6ec16c16fcef922eb17f2921ce807df11d3e5b",
+    "rust-1.56.1-x86_64-pc-windows-msvc.tar.xz": "b3ebdc6682c4aa85e0aa7af2f62a16ffedd345539a802eb5f1226c1828904051",
+    "rust-1.56.1-x86_64-unknown-freebsd.tar.gz": "94e2c8b44af125ca8ba1a1ded7e7b9c5acb27e52acec4ab483d5ed9a8528c5a9",
+    "rust-1.56.1-x86_64-unknown-freebsd.tar.xz": "17cefb4c30656eb9235e0e09de3b00f570af27d4b01ed7cb8fb574722adb2d2d",
+    "rust-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "a6be5d045183a0b12dddf0d81633e2a64e63e4c2dfa44eb7593970c1ef93a98f",
+    "rust-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "b66a484eaa186317c14d7576dadfbb68b2ead05b858a425b6eee264ec5cd20aa",
+    "rust-1.56.1-x86_64-unknown-linux-musl.tar.gz": "3c09058d104d9a88943fb343af1fb70422f9c4a987e6703666ee8a8051211190",
+    "rust-1.56.1-x86_64-unknown-linux-musl.tar.xz": "0dd33d3aa8818827bb5c536a95ad7460908e08098948f78d517e5dc833eba695",
+    "rust-1.57.0-aarch64-apple-darwin.tar.gz": "7511075e28b715e2d9c7ee74221779f8444681a4bb60ac3a0270a5fdf08bdd5a",
+    "rust-1.57.0-aarch64-apple-darwin.tar.xz": "74f23430ef168746d733c2c30c41cb4e3d13946106945bc4ad94eaa67dc73db0",
+    "rust-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "d66847f7cf7b548ecb328c400ac4f691ee2aea6ff5cd9286ad8733239569556c",
+    "rust-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "6ee1ea2daae52c44cb970cf2c740edca02d2234210ed45a79a58c4c87d45d71e",
+    "rust-1.57.0-aarch64-unknown-linux-musl.tar.gz": "91c8e5171e5715261f7f635142a10a9415a4e5ba55374daf76f0b713c8b08132",
+    "rust-1.57.0-aarch64-unknown-linux-musl.tar.xz": "8ded45c2fffe0ca24b3af34c4cc743af982108bb0d9ed0bc108afe43162da374",
+    "rust-1.57.0-x86_64-apple-darwin.tar.gz": "15ceffc4743434c19d08f73fb4edd6642b7fd8162ed7101d3e6ca2c691fcb699",
+    "rust-1.57.0-x86_64-apple-darwin.tar.xz": "10d92d8c3019a9d7eca5186594499e4fb6bbaab13c98966bacaf760a776b5873",
+    "rust-1.57.0-x86_64-pc-windows-msvc.tar.gz": "566374ae6c9f487726932f4d4ef3c9000147574f30365cfda265cbfd0c4ea5c6",
+    "rust-1.57.0-x86_64-pc-windows-msvc.tar.xz": "9dda7e9f0807d11b7c938e3fe1f3b21f257183d9a2da65118af523ced79efcac",
+    "rust-1.57.0-x86_64-unknown-freebsd.tar.gz": "ebe96fa1f15e8d70c91e81aab7e0c341717b909225029f37d52fbdfa506e3fab",
+    "rust-1.57.0-x86_64-unknown-freebsd.tar.xz": "b9984cc15c3158c0b41e8564564102eb7e8b261c1e59ed4dca87fdbdf551a0a5",
+    "rust-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "ea0253784b2e5c22659ff148d492a68d2e11da734491714ebc61cc93896efcda",
+    "rust-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "590772474cb5d24c3d85b8fb770246e4a6b7dd8b13a2ab1db2c50a3965a36e1a",
+    "rust-1.57.0-x86_64-unknown-linux-musl.tar.gz": "56876ebca0e46236208c8bd3c3425dba553abe49639e1040ee8b95bc66a45d33",
+    "rust-1.57.0-x86_64-unknown-linux-musl.tar.xz": "d8e0d8c178c92a715abd78ec3eb5cd5cae837ce646a0b8cd47d75633d9092b61",
+    "rust-1.58.0-aarch64-apple-darwin.tar.gz": "6fb564f03dc09fd0ede8cdc35803b9efdd0ee3b3769c392c63167f863e9512ce",
+    "rust-1.58.0-aarch64-apple-darwin.tar.xz": "9d13da250595de24422eeec0804e6ac4818358ef93ff96c31e425b03f6f559e3",
+    "rust-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "38fafc97700dcb1d205d3db7d86e9eb404577ccc4054333f41ec52d508394043",
+    "rust-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "e31f80898d42de068a6fc3f93900a7b41f56c2a85bda0646f1a5c752ab7900e0",
+    "rust-1.58.0-aarch64-unknown-linux-musl.tar.gz": "787655adcaf004cc1f6a438881a3964ec20fffa682b46418a2a87b564548d80b",
+    "rust-1.58.0-aarch64-unknown-linux-musl.tar.xz": "1afd7d239471906a3df02e444a5fde6e0c2f75e5e0024fb3ecc43dc723630358",
+    "rust-1.58.0-x86_64-apple-darwin.tar.gz": "1f35e32a70ced5019fef45d1073d8ac25c0c2f91537b2b3592e041542f582b84",
+    "rust-1.58.0-x86_64-apple-darwin.tar.xz": "a38b5e1c502a7f3cf7cd08aa9496769d7ca19f004d29a9ac38fdd92cbb45c0a8",
+    "rust-1.58.0-x86_64-pc-windows-msvc.tar.gz": "c15f4ac3ef3a3833b6394f3f102cc7896a82107d68c2f398aab2bfd70fbb096a",
+    "rust-1.58.0-x86_64-pc-windows-msvc.tar.xz": "536d94d361db727c6806fc0bbf90e755c24d4d88ec0c96c4f409320ae1f6b8a1",
+    "rust-1.58.0-x86_64-unknown-freebsd.tar.gz": "ce69d9e2b7f60d7805d7759f112a9a3d2c608715242041e7fecea033d557bab1",
+    "rust-1.58.0-x86_64-unknown-freebsd.tar.xz": "d682889bd68a521cf3054e235c34b1b029b3e26e7ab9116a904c5b6a6dc0cd09",
+    "rust-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "1d7ec4bceb0d31f163540fe7ebebed68ca8853e7982821108770eaec5d66f871",
+    "rust-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "fc77eefec4d1bff9c578c94f5a2c054d196ae51bdea0e042b4d0829efc58476c",
+    "rust-1.58.0-x86_64-unknown-linux-musl.tar.gz": "d1d04e4c5a3299c1d4b3eac8785f7b77c23d4ed32da3c3f77a1e39d90264b386",
+    "rust-1.58.0-x86_64-unknown-linux-musl.tar.xz": "c7908dfff680c84a3f7f1f549e153d51331a566dfa96a3c164983c267e700421",
+    "rust-1.58.1-aarch64-apple-darwin.tar.gz": "00b44985bc87e53c53d92622fb10226f09e9f25c79db48a77c0a769a36f83b1e",
+    "rust-1.58.1-aarch64-apple-darwin.tar.xz": "f954e39c5c96758d7c8f776de627c6fe143386a1b44d5f755ee497edd9ddaeba",
+    "rust-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "ce557516593e4526709b0f33c2e1d7c932b3ddf76af94c2417d8d667921ce90c",
+    "rust-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "0a80900aa160de4292b1174e25f183bd88f6c2fbb3056a59fcb4d658c70084cb",
+    "rust-1.58.1-aarch64-unknown-linux-musl.tar.gz": "b1533fdeeda483a3633617fd18a79d8fad7821331614b8dc13efd8b22acc30f5",
+    "rust-1.58.1-aarch64-unknown-linux-musl.tar.xz": "1e76aea1335a1103febf5cf5f45b2128448d469ae17db34e1ad79cb96aa47aa3",
+    "rust-1.58.1-x86_64-apple-darwin.tar.gz": "d0044680fc132a721481b130a0a4282a444867f423efdb890fe13e447966412f",
+    "rust-1.58.1-x86_64-apple-darwin.tar.xz": "9d7d4a6e4267dacd43bf613807ecbbf4e97032f5decb20152c408c84b812d4ae",
+    "rust-1.58.1-x86_64-pc-windows-msvc.tar.gz": "93cebf7a895420b3763dbc808c0772ef814add757eb689abe1da3690e876447f",
+    "rust-1.58.1-x86_64-pc-windows-msvc.tar.xz": "44f5711c41fd09c76d90c7a38b9239af21f0a2acccfa9f40c1a88d62ecb2c3a2",
+    "rust-1.58.1-x86_64-unknown-freebsd.tar.gz": "124d056c3af35bd9a42c6ef3529c73a6b29b1d927f5498cec499e16ca4defe63",
+    "rust-1.58.1-x86_64-unknown-freebsd.tar.xz": "5af5434c2d3cc4cd27a4c2687fd01ad69d52f2c503856c261af7c2e2e8e7c499",
+    "rust-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "4fac6df9ea49447682c333e57945bebf4f9f45ec7b08849e507a64b2ccd5f8fb",
+    "rust-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "f71b077caf0becbd0af9fd22bc1fa31c4fdf7a21fe046da8a15a7bde1286da25",
+    "rust-1.58.1-x86_64-unknown-linux-musl.tar.gz": "7036e34eadc8ce22d16b0625919d9f2244ca49a5441d6599f4822116c181d272",
+    "rust-1.58.1-x86_64-unknown-linux-musl.tar.xz": "76350a9a36b148cb2dd7d09212c04142d858b168794dee2805e6252829561a20",
+    "rust-1.59.0-aarch64-apple-darwin.tar.gz": "5449ae915982967bae97746ce8bea30844f9ab40b4ee4da392b9997e0e7b2926",
+    "rust-1.59.0-aarch64-apple-darwin.tar.xz": "8e03f00d568c825a151b1a715841ec102c5c58ab6779c33522cd148f753bc451",
+    "rust-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "ab5da30a3de5433e26cbc74c56b9d97b569769fc2e456fc54378adc8baaee4f0",
+    "rust-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "d155d58ee5e7c4a10482e4fceb3604023baff51a9cc8a89f0895567b9e588f65",
+    "rust-1.59.0-aarch64-unknown-linux-musl.tar.gz": "a3f8afdf23c98e6d25bf3b4bfcf5e9a4712f4c425f3754500931232d946204a9",
+    "rust-1.59.0-aarch64-unknown-linux-musl.tar.xz": "1f349b78339aeb2769644d2208fd30c1431725bbaf2c29946b84b6f20eaa7a2c",
+    "rust-1.59.0-x86_64-apple-darwin.tar.gz": "d82204f536af0c7bfd2ea2213dc46b99911860cfc5517f7321244412ae96f159",
+    "rust-1.59.0-x86_64-apple-darwin.tar.xz": "d21425729ea3ad333a1d598cd725b95d3a5ad5e9169e536be6999ef060c29502",
+    "rust-1.59.0-x86_64-pc-windows-msvc.tar.gz": "d781bfed7e3e5dc4959ce39df101fc476a3a70ab75e2fa1bbc3e59281f6e9e00",
+    "rust-1.59.0-x86_64-pc-windows-msvc.tar.xz": "39384a61edeca5271f4204befd0027fb3efaa4cb00af19d4908f986555ea0a8e",
+    "rust-1.59.0-x86_64-unknown-freebsd.tar.gz": "83f9c49b6e9025b712fc5d65e49f1b6ad959966534cd39c8dc2ce2c85a6ca484",
+    "rust-1.59.0-x86_64-unknown-freebsd.tar.xz": "0f339634b5f27effd49ead1a4d8197c11141ca68c3b9368a4711d7c2123310fc",
+    "rust-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "0c1c2da3fa26372e5178123aa5bb0fdcd4933fbad9bfb268ffbd71807182ecae",
+    "rust-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "a10c4abcba4891c463612c161246706cd0e8d3ddb1ae75f514d3f02bed235af6",
+    "rust-1.59.0-x86_64-unknown-linux-musl.tar.gz": "c0ae76fa4bb0f1c85b86b9f7637db0fddf5084ce4c8f86c4d4acc3c41813201f",
+    "rust-1.59.0-x86_64-unknown-linux-musl.tar.xz": "211b2269460d67e22d2bb43e99b677c0e54d63f7e93ff49dcf6d4628c5180c6f",
+    "rust-1.60.0-aarch64-apple-darwin.tar.gz": "b532672c278c25683ca63d78e82bae829eea1a32308e844954fb66cfe34ad222",
+    "rust-1.60.0-aarch64-apple-darwin.tar.xz": "460283ad22df069aaa8099be2b256fe890aa43a96f63356014e58295060c2477",
+    "rust-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "99c419c2f35d4324446481c39402c7baecd7a8baed7edca9f8d6bbd33c05550c",
+    "rust-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "5d18bc384273edbd8a4b6d18104685651fb42d5f07bdf518ef2ec3641269c95d",
+    "rust-1.60.0-aarch64-unknown-linux-musl.tar.gz": "fe7e9bad8beea84973f7ffa39879929de4ac8afad872650fb0af6b068f05faa6",
+    "rust-1.60.0-aarch64-unknown-linux-musl.tar.xz": "c595f41bdac2675ba7b41051a682d04ebdcdcfd6b75209f19852d5ca92055914",
+    "rust-1.60.0-x86_64-apple-darwin.tar.gz": "0b10dc45cddc4d2355e38cac86d71a504327cb41d41d702d4050b9847ad4258c",
+    "rust-1.60.0-x86_64-apple-darwin.tar.xz": "8df69fe4dbc6c9ef14c0f7e952f244f268580c686c37e40645af46630545eb38",
+    "rust-1.60.0-x86_64-pc-windows-msvc.tar.gz": "eddb8fcf2cfd5a20c87a93465dee0dd7e0ffda7cd8b09bf9c681cde65293d0e2",
+    "rust-1.60.0-x86_64-pc-windows-msvc.tar.xz": "bef45bf03c1a969bf933d49a59358a393219398bbf8824944a08e601652433f5",
+    "rust-1.60.0-x86_64-unknown-freebsd.tar.gz": "6f86164f6eb8387e6a82c59910890bb69efe1a996f02b15fa9e96570e7ad90ae",
+    "rust-1.60.0-x86_64-unknown-freebsd.tar.xz": "2ac4a012eb903f94ad869069afa5f3ce3de6ec7ae58bbdffface49c366d52d32",
+    "rust-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "b8a4c3959367d053825e31f90a5eb86418eb0d80cacda52bfa80b078e18150d5",
+    "rust-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "83c3fb8645379ec308192fa713df87044892639495722077e07aa779b310239e",
+    "rust-1.60.0-x86_64-unknown-linux-musl.tar.gz": "f0feefcb1985c5c894ad9b0f44e6f09900b31c0eb5f49827da9f37d332a63894",
+    "rust-1.60.0-x86_64-unknown-linux-musl.tar.xz": "8b6df0d19d6edfc7d687142d9919a3dd5ddf872271470910a379928ac44a3ec9",
+    "rust-1.61.0-aarch64-apple-darwin.tar.gz": "2dbafd13d007543aada47179fa273f9a3865f27e0a07bd69be61801232a0819e",
+    "rust-1.61.0-aarch64-apple-darwin.tar.xz": "be9dc929edd7a66a8ae07bc1a3da7538e671c0d6453296349753577928c69001",
+    "rust-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "261cd47bc3c98c9f97b601d1ad2a7d9b33c9ea63c9a351119c2f6d4e82f5d436",
+    "rust-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "e1158db58fe81151ef17bd6010d4b9bfe069835e67eff1924d3ffd88935ade32",
+    "rust-1.61.0-aarch64-unknown-linux-musl.tar.gz": "feb79985cb161a10b252236852df8db3bf3593c78905b84c7e94cd4454327e47",
+    "rust-1.61.0-aarch64-unknown-linux-musl.tar.xz": "c75dc9fd3e3ff935d6320f495141df410cca387b64dc768bf08700203f7b32f2",
+    "rust-1.61.0-x86_64-apple-darwin.tar.gz": "d851f1a473926a5d8f111ed08002047a5dc4ad944a5b7f8d5d2f1f266b51e66a",
+    "rust-1.61.0-x86_64-apple-darwin.tar.xz": "44218ede22bd45781a4473da9fc7e5b75485fafe2bc486df6f369fa3a6c283fd",
+    "rust-1.61.0-x86_64-pc-windows-msvc.tar.gz": "f2d594a9a797a958b99aa5ab265788ef12a97b78d612f8d0be9d903af60db5a4",
+    "rust-1.61.0-x86_64-pc-windows-msvc.tar.xz": "5ea2002dbf2ec942e3ccbd3c08659c232e114f57a22807a110b1c9704b44f4df",
+    "rust-1.61.0-x86_64-unknown-freebsd.tar.gz": "fc025538a1f429f66e0a6b2108cfc1b5167e6742cabb573bee5841ad5929b077",
+    "rust-1.61.0-x86_64-unknown-freebsd.tar.xz": "fbd81f25ae8e2d3e493693c0d2037d1e368acbfab04ce0a702305d96708b8f9b",
+    "rust-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "066b324239d30787ce64142d7e04912f2e1850c07db3b2354d8654e02ff8b23a",
+    "rust-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "3910d8b5f979969f9c95a63e98b22b27435b5d22b908945056b257fc20855b1a",
+    "rust-1.61.0-x86_64-unknown-linux-musl.tar.gz": "0904f6b769ae28c259e0e25a41e99290a4ae2a36bca63ae153790b2ebbc427bf",
+    "rust-1.61.0-x86_64-unknown-linux-musl.tar.xz": "241907b494bf2a0125f8a1d0bd021e812fd38c90f6921e059780dba1133432b9",
+    "rust-1.62.0-aarch64-apple-darwin.tar.gz": "f3a4e925474e6d54617a08ea8b8d0886590f70553e8c41ad3bbad69083876977",
+    "rust-1.62.0-aarch64-apple-darwin.tar.xz": "6e904cf75484760da63462f72008295ef29aff0defec51a17217f93e516c3d6b",
+    "rust-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "eb15623acab56523bab68826db03c66f926adb6376363dd5e2a8801a16bc4542",
+    "rust-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "596edf892fac02f3a3b9a8f018f64551e2d58f0a840a8bad13793eb7224783bd",
+    "rust-1.62.0-aarch64-unknown-linux-musl.tar.gz": "5dc62e8a550d26a40a0780aae790895b1cc8ff718965298787fca184d5ddd4ae",
+    "rust-1.62.0-aarch64-unknown-linux-musl.tar.xz": "f3b295cf0e9e2dd2352263bdfacb3417828293812bb9b5b0128b497c1edf1710",
+    "rust-1.62.0-x86_64-apple-darwin.tar.gz": "e4c2b363a54eb147fa93b966431c221f6af59779e63bb4ae825521f9258294b4",
+    "rust-1.62.0-x86_64-apple-darwin.tar.xz": "8bfd1d6ddd433e419c6c07d2b740ae3f44dd0b4dbc2b01ead26bf0677f43ac81",
+    "rust-1.62.0-x86_64-pc-windows-msvc.tar.gz": "fe50b932e3a0c6cc9d4e8987ae2fa2f14ae4304f9d020fa1a37db2de5c4c6ae5",
+    "rust-1.62.0-x86_64-pc-windows-msvc.tar.xz": "a4c7d8ecb75ab2a97a3cad56d6f7d3384d320fdcaf3f59ac107f93da643b6147",
+    "rust-1.62.0-x86_64-unknown-freebsd.tar.gz": "c725a73314de934f3d7b81fe9c2c0f22362643d6f3e670f6350e5f0c1aca7ac9",
+    "rust-1.62.0-x86_64-unknown-freebsd.tar.xz": "716affa00ff8b1179ee5f28292dd55b80b6cbe30b64031590756ef8be037786a",
+    "rust-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "4172d3cb316498025410bdf33a4d0f756f5e77fbaee1fb042ccdef78239be1db",
+    "rust-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "29d0cb095bc006f82fb99bc4b9081aff813d803426ef01c9d1bd2b150e68d035",
+    "rust-1.62.0-x86_64-unknown-linux-musl.tar.gz": "d3a18f43533bf020177a10543b1055bfecbe510f3229cd8a7f97da1b35f90b0c",
+    "rust-1.62.0-x86_64-unknown-linux-musl.tar.xz": "f1846989bc857925eac4acf00348a11aba0ec0985677c6445f9c05ad02f5bebc",
+    "rust-1.62.1-aarch64-apple-darwin.tar.gz": "6d1671ea31b05cab5e2587cc2b295b3e7232b0135f0977355618e2a01933ff0a",
+    "rust-1.62.1-aarch64-apple-darwin.tar.xz": "64f94677f74f77507d8ed6e6264b6284e5892dc06f37c54df6d927f482372185",
+    "rust-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "1311fa8204f895d054c23a3481de3b158a5cd3b3a6338761fee9cdf4dbf075a5",
+    "rust-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "6da279aed8ee7cda7067147916df5b113401ff340b90533741ea1fe9005fc85a",
+    "rust-1.62.1-aarch64-unknown-linux-musl.tar.gz": "73bbab4d8a9e3c416035d40406e656ab37e785df35fa069a33af52e931a24b12",
+    "rust-1.62.1-aarch64-unknown-linux-musl.tar.xz": "13632c334624987120f07876246767af9562073f2bcc63134237a728ccec7342",
+    "rust-1.62.1-x86_64-apple-darwin.tar.gz": "0a04dcf2b521239826f3eaa66d77169d91e68087ccc3107b54e8aba7c02c9adf",
+    "rust-1.62.1-x86_64-apple-darwin.tar.xz": "77df39bd918fa3aec433c9fde4d5e824146df6803b2628f1d7a1369efc40b95a",
+    "rust-1.62.1-x86_64-pc-windows-msvc.tar.gz": "0090de907090eb75373d12ef6a9c478032b10c9151516e65d30c6140b5b0bc3f",
+    "rust-1.62.1-x86_64-pc-windows-msvc.tar.xz": "199ede7d1901de99f8aa4f9c9909c0f48661784013880858ddd2168e5cdda449",
+    "rust-1.62.1-x86_64-unknown-freebsd.tar.gz": "edea64139d065b3e60e76487bfb7e3e068b3253938f657dd81c5a3d03e46581f",
+    "rust-1.62.1-x86_64-unknown-freebsd.tar.xz": "908bda6df3ae15cb1b8b11959d3b247790a2ef64d8bda008d29ab203cb622592",
+    "rust-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "dd7d82b8fa8eae59729e1c31fe59a9de6ee61d08ab40ce016185653beebe04d2",
+    "rust-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "2f4dca8a67e8e3c3aab8da4146a93e3a5fd249af6f5a845083ade716ec0b9be9",
+    "rust-1.62.1-x86_64-unknown-linux-musl.tar.gz": "32bee487074b105e2582cddce35934a6019eec74bae3f9300fdc3edfcf5b66d4",
+    "rust-1.62.1-x86_64-unknown-linux-musl.tar.xz": "11c79886f55d314dae8b9a2c38db169cffa94cb536193e8971dbf662cf56bab1",
+    "rust-src-1.26.0.tar.gz": "d02fe6fd5c0f330656e9ff0a290ebf23cab7c909f96ce1838247fadc117eb1dd",
+    "rust-src-1.26.0.tar.xz": "7d313fdecb23afd07826b62360f63c40ca8c12730b00b7cecf2c53098039e326",
+    "rust-src-1.26.1.tar.gz": "19ef8113ae53ec7ea8f6772a5c9ce5a3dfc28b1bddd800841fb5bbec33fa3619",
+    "rust-src-1.26.1.tar.xz": "092ba94844b9ab739f8d58fbdafbfd16c104ce964d6d7c6197f9c832bd57c0bb",
+    "rust-src-1.26.2.tar.gz": "d63cb7ca67f1bb2101898b7ca33105eeb6d9d9cc3e7ff566b90b0321ec448e73",
+    "rust-src-1.26.2.tar.xz": "70120e9f85520c30a060f5df33b91e88698c8fadfc85a6b5c9224122d0700be1",
+    "rust-src-1.27.0.tar.gz": "9a60d9f0c586a537129a741576370b90d9cce1999b4aa2623d5c1d9c3fdf5a73",
+    "rust-src-1.27.0.tar.xz": "89f326d5d41ec0acecfe4b98e0f1c32c5b2e6289446a74313474ffcf59f1f85b",
+    "rust-src-1.27.1.tar.gz": "8736577a84bf7263d333996b21ec49697a4a942ab1b5f6d1327241866481cdc0",
+    "rust-src-1.27.1.tar.xz": "d4a2bdd23143a62fb842bf6f129e9fcc000e8e4620d0047898e30a00e747a017",
+    "rust-src-1.27.2.tar.gz": "03b4b09d855b2c393508f1e5d11c2cba147112a534193e62d6cb54e2b5a631f1",
+    "rust-src-1.27.2.tar.xz": "af163609b96494f19d840d1b6051741509a1371abdbaa2dbba0390bdc3fd6973",
+    "rust-src-1.28.0.tar.gz": "99ee2a227f27bf0136e7bc53790ef5e02ad9744a56f488b77579403b281b1d63",
+    "rust-src-1.28.0.tar.xz": "d5ee08bb646d0838c464f40e5719e363a50f0d806190371dfe5182d312153138",
+    "rust-src-1.29.0.tar.gz": "6f1a4457d2e75d2b3d3dda1f05e6ff5f37c4c416d25733cb3b008cad99247a42",
+    "rust-src-1.29.0.tar.xz": "e6c7709957f64c8903b78ce78869b40a2b56d4b319ed0bdbe1c478f95745ff3b",
+    "rust-src-1.29.1.tar.gz": "89bddeeb0b38ec2715e287a4827179fc975d69bd6d223b05199321e9c0de8313",
+    "rust-src-1.29.1.tar.xz": "d05af8de08128202bc8c8aa7cc7846001ac9d7cce1f57c935fe6f5eaa9c5b373",
+    "rust-src-1.29.2.tar.gz": "47b1ed6d19d5a14f20c1723218fcf073c3f790aceb780ffae9209c1a480f5b81",
+    "rust-src-1.29.2.tar.xz": "17eb4b1b7b82b5a703491b3ed19d9e24cb522d35d8a89b5b25e96cc16b6b783e",
+    "rust-src-1.30.0.tar.gz": "27e806396aa5ce2466929e06106a23b456a63f9dee2e9c378da326f1f88e6570",
+    "rust-src-1.30.0.tar.xz": "b537c1d2e5a618c2c2133da0df5e9010fc8e16a4a6050a3c618803f8ef91d5ed",
+    "rust-src-1.30.1.tar.gz": "16dc694d49b22a58e766dfa5812d84000a6197cc6b1f1f7b4e553be8d9427d85",
+    "rust-src-1.30.1.tar.xz": "94dc448a25f406a70228e87313d69e1abd32b9365cc0e456ae0adff3c1594a24",
+    "rust-src-1.31.0.tar.gz": "121909b2428487a31d6bef4ff92f6d63967b225310632fc60570874ba392feb1",
+    "rust-src-1.31.0.tar.xz": "4416250296ce87135e461d07a8d434028ef75d1dea7a92020c595c523d4b4e6a",
+    "rust-src-1.31.1.tar.gz": "097550782be7f201a44b842b74c6c2ec6851495454ada2d9ee693a8af4cdbc6a",
+    "rust-src-1.31.1.tar.xz": "5576e2135788ef68b67d2127ff17d49b56ebdab80befc8f5779d72429ce62ba0",
+    "rust-src-1.32.0.tar.gz": "6ece16e38b969606a5da8def53cae55d0c67d8502261086afbd5e303013ce92b",
+    "rust-src-1.32.0.tar.xz": "9fea29ab5526ba16d171e3937cf4a502d99e3c03b234c6b7ba073ecb9635abfb",
+    "rust-src-1.33.0.tar.gz": "48b28b0cd9badcef24f1525b6a225db9018924567d6a998ae891996dc843fb22",
+    "rust-src-1.33.0.tar.xz": "258ca0fe0441789a81df9f81ef7c4f24dfbc49aad36d882258d1898432eb7ffd",
+    "rust-src-1.34.0.tar.gz": "6fe16aae312d3be5e0fec93e52918b7b03e0920e7d6d3e552a4fdd740556c4e9",
+    "rust-src-1.34.0.tar.xz": "2c856be1fc8764d3e8f94459b56b15079e4d275b1a2206204a576c594bf240f6",
+    "rust-src-1.35.0.tar.gz": "7547d1e9a7ed236860e0a1ed7b9e428941fad7ff9bd3888e19db7e7a5fd53e38",
+    "rust-src-1.35.0.tar.xz": "679b2fe531d257fd6be42009f7b1224d324a88943c375f38b0af90d2225cc99a",
+    "rust-src-1.36.0.tar.gz": "c0099d763779ef095fcd32531a88a2af714670ec0b64f7b27aa027b2f51057b0",
+    "rust-src-1.36.0.tar.xz": "0fbf059a6875cb8d207df5d94b36c76ca74dfb05506fc5ab28e7641eb4b78be7",
+    "rust-src-1.37.0.tar.gz": "30e7bb28725b86b53b7dfe23ba4f3119889c30e38930f7c2dfdc74b1f62704a5",
+    "rust-src-1.37.0.tar.xz": "91a0dea3efa42a4a019ec7a3b12a9685dfe4d85c4aa2f8afa565455ebdb1668b",
+    "rust-src-1.38.0.tar.gz": "082891ceb8547c4a0fbadcd1309fb0219b935f3dc5a38d2b3b77f40a670a0a54",
+    "rust-src-1.38.0.tar.xz": "00b6d11a198288cd1367b72483079716e4d93f7d635ca870660e5364d29915fb",
+    "rust-src-1.39.0.tar.gz": "068186f866703ffeae804a0642588a78a492f03b62c0113e6cdfcb4eeca56df6",
+    "rust-src-1.39.0.tar.xz": "75b4eed864d524b203d507bac88b100a0a219af5c9ad06f37b68c339c1f608da",
+    "rust-src-1.40.0.tar.gz": "2a9be624ba682f1331cc4d764e161a1b18e007ded34ffcb1494804bc24e0fd62",
+    "rust-src-1.40.0.tar.xz": "48466c3aa59b09bfa5d251f6443fc4a6136934869024e17c806c9bb853b2b28a",
+    "rust-src-1.41.0.tar.gz": "6597a1f217c6a9cfcf41e34bba91d8d98b6736ab6a18b54ed2db1ce5634e176a",
+    "rust-src-1.41.0.tar.xz": "acf437b8459614ec2156ab3e239f7f2b3b42310a2e0342ce3784fca230d964ac",
+    "rust-src-1.42.0.tar.gz": "56d809eb9efb70e9444be88bd8e3ff54d94ab5fef24b13d5b17a75309190d84e",
+    "rust-src-1.42.0.tar.xz": "04a77e6af7bb6c20c34dd1466aad62627d0d8e300bacd844d8563b772cd0f80d",
+    "rust-src-1.43.0.tar.gz": "7999fad1e60609f76ebe589cab48451e35ecd54d5336bf70dfb0eb57c78e8bb7",
+    "rust-src-1.43.0.tar.xz": "2f10d02b1dd895eebe551824ee3171c1b0c32f55a02325c98bb4e4e55010f595",
+    "rust-src-1.44.0.tar.gz": "6f748c303431126827fc3f262ba05ece2456e274eafeb9bd0b40bdf27c5f99da",
+    "rust-src-1.44.0.tar.xz": "deee54af18d5360fc29e1cb74bafc42a5f93777fe81f67e00f37b8a39283b13f",
+    "rust-src-1.45.0.tar.gz": "96590b0a987098da05d38f8e3bb5e049a77c20f03689ffb7144f23136fd488b4",
+    "rust-src-1.45.0.tar.xz": "8f84e7198d6b07c15f9ab992783f32362a2767acc6fc180c958bd602bb91bf8a",
+    "rust-src-1.46.0.tar.gz": "7478839072096041220c6ca9cc9031028cdf65fa8cb5bcf87178ea1351442bdc",
+    "rust-src-1.46.0.tar.xz": "86bac2f210d75ed67d5406e2cee76dc1ed086be25fc4d4e093efdecf986dd329",
+    "rust-src-1.47.0.tar.gz": "64b27ba31f8956342e8ace0f949d06524d7013bf73bfbe6f9d18ec19e5a0c793",
+    "rust-src-1.47.0.tar.xz": "4fe28057f561a5cf9bc009e158cb8515a55c66ed0ce67023c105fee267c26a86",
+    "rust-src-1.48.0.tar.gz": "e8f15bdfcb5ced76ae40dd9aa6b387d5f9cece82b7a340cdcaa353fbc94f53da",
+    "rust-src-1.48.0.tar.xz": "1abd48b90c12e99e55196e985419da4afbbe77eec835bde68d1c3538f1497589",
+    "rust-src-1.49.0.tar.gz": "474a0fd0c1da720eb9fa701c73ced702a7599eb265333a18c1b25feeb9566f8e",
+    "rust-src-1.49.0.tar.xz": "688b345fbc9b22aa197297a228f4e756f2c0bb8fb1edea6e272391ed314af348",
+    "rust-src-1.50.0.tar.gz": "678e140e88656f19a49aa802eb6e1ea117a520c6f3eb0da265a7dc6e0c012a9c",
+    "rust-src-1.50.0.tar.xz": "d0bf61a7eea96f37cc2f2e60178b95fa7f43777d072f86cce65ea6af4117b05c",
+    "rust-src-1.51.0.tar.gz": "18904ca04c5bc09fa1a88d32391c611bc60bc3a739551496cad0829e34301563",
+    "rust-src-1.51.0.tar.xz": "bed0e1029ca28f5f18876ff1ca11afc99fc9e516ccac96a612b7f0e23e367984",
+    "rust-src-1.52.0.tar.gz": "861dcbf1faf2faca5b5e3afea5bbcf453cbda4ae00bd34ae67bfc36463f9e227",
+    "rust-src-1.52.0.tar.xz": "1b362dd66c577034cbc1120e75d048777a81dee425a33624a6b0f04fc92b5c56",
+    "rust-src-1.52.1.tar.gz": "34fb417e94aadbace368e934e1f079dd09f2423ccd6cc0cc519cdd55ef3fa8bf",
+    "rust-src-1.52.1.tar.xz": "d7f342c9dcc1a5475db64bdd9f0e8cbcb3624a984832d7ecd92d0f49b66051ae",
+    "rust-src-1.53.0.tar.gz": "26b1464bd313ae99de27a162ca96b4fb321e4414448ea8ce8abd715ef8c7ba2b",
+    "rust-src-1.53.0.tar.xz": "8695c38dcdd84091b4dbc7e968f0f3fcd5b2c58fdd6fe57d1cf27b22da3dd8dd",
+    "rust-src-1.54.0.tar.gz": "56d14ee97c59c543291154ab427cf96a1a82ef5cf32b89f14886dcfc01f5310b",
+    "rust-src-1.54.0.tar.xz": "f07aabb0f26cc34375f7a187f2bc8cb9645b86b663fefb5899907439503f391a",
+    "rust-src-1.55.0.tar.gz": "3be79e301246b413e9e1cc4b5b4f53bcbc964482005381a899ab6c597bef7996",
+    "rust-src-1.55.0.tar.xz": "4d4b62a377bbe57e363268b7e046f25c35aa530e0ba9db69b512d6573fb27387",
+    "rust-src-1.56.0.tar.gz": "00c2225d0e1d430b1632373c46448b1b69839032b8384684091bb9cce19b2ce6",
+    "rust-src-1.56.0.tar.xz": "0726eb30b63d8d5b98a716ea7c48c575fc7cd7d8428859777091accb6bc3ef0e",
+    "rust-src-1.56.1.tar.gz": "be4757c283f94a37cf38b9897f5513ebe3e2f4ef15f013630cdb845987324503",
+    "rust-src-1.56.1.tar.xz": "85b763dfdecc827656db283700c60c89c6320a9b12028056b3af261111ccda61",
+    "rust-src-1.57.0.tar.gz": "cc1fa22e939b14a6952deb7547fcfafa6670e727f942fb4ef77075d8e58e45a6",
+    "rust-src-1.57.0.tar.xz": "c4a12e59c54925f56d0a966ebb088214d2e1523bef96c56d1999a0c2ba89835b",
+    "rust-src-1.58.0.tar.gz": "c91bb6df4ebbfea42a1c3940e38bc1c2c4768efbdada8205b12f6d9d383ee219",
+    "rust-src-1.58.0.tar.xz": "0c959ec0d6b0f6cd08167a142fb0a140ae130c3158acfcdf44728c46a568ea2e",
+    "rust-src-1.58.1.tar.gz": "e7bb7325e5e71411aabfbd251acfd131d1ad6d9aee2b65d04b081702915cfe4f",
+    "rust-src-1.58.1.tar.xz": "c4d85a0db66f736370e1e7ed9a80ee8cda203c7e15d4c5d94d980bb14414fcdd",
+    "rust-src-1.59.0.tar.gz": "127658a5237cce6dd43ce9d9113fc104ea6902cc8c850272fba07d92140fab12",
+    "rust-src-1.59.0.tar.xz": "c5f2776c9096ca498536f461f584ac5a19c21bc15c59cd1fd0bb7d3aece6ebe3",
+    "rust-src-1.60.0.tar.gz": "3a3bde7edd168df6852dd66a6685dbe9ac2f52addc3671bffc3ad14ae83ec1ce",
+    "rust-src-1.60.0.tar.xz": "66a96ff728d1538b1313322a754bf5b50bbfd0c3c75c6a5504c9e906918cbcb1",
+    "rust-src-1.61.0.tar.gz": "7cc39f30b584a105623cf5be62199b811ff28c76f3d828d2c77e809488e95c47",
+    "rust-src-1.61.0.tar.xz": "954331ca52438da004f37e9ac820b1f80c5f88b5b6bd69a9763539ae19a11b4b",
+    "rust-src-1.62.0.tar.gz": "b26a32f487cc19e6c503b0050f5f4f248d46e1fcbc69a2d9ac19f5a2da0bf8f0",
+    "rust-src-1.62.0.tar.xz": "14856905c4e49775270c7162403032c2c97f4e656eb12514c5ad9a59c997d2bd",
+    "rust-src-1.62.1.tar.gz": "4cca13c2e3c6aac4361fc7d928a4c82164bbded56d8bb0c7170b7f15a5da51af",
+    "rust-src-1.62.1.tar.xz": "23c944887fa5873b58a15c307599c6562aff51fafb7020c3530e7b00a5031a8b",
+    "rust-std-1.26.0-aarch64-unknown-linux-gnu.tar.gz": "a583ddc2d4b5f9516bf136f781268ae0e813295d1d145fab4b46a4220f448923",
+    "rust-std-1.26.0-aarch64-unknown-linux-gnu.tar.xz": "85615b5a109d4c12e9d0910020fceece8f0535848c137c8b8662d38de3d8ca37",
+    "rust-std-1.26.0-aarch64-unknown-linux-musl.tar.gz": "6a112ecd4cdefee2688bf69fdceb785a4d08cea33ba32296539abe3cb7f5eae1",
+    "rust-std-1.26.0-aarch64-unknown-linux-musl.tar.xz": "6fd583012c8e3381df86bf2237b309f896fa0eb56596aab7e4f8e4968b2cf991",
+    "rust-std-1.26.0-wasm32-unknown-unknown.tar.gz": "0f8bb8bdb523cd05acd11006d47b14d7589e64fe25a43d1aec5df692988b400f",
+    "rust-std-1.26.0-wasm32-unknown-unknown.tar.xz": "ea230e3d3cec0fb4bd5f2bb5e3a23eb7272b948f33eb6af950f20580e9c250ac",
+    "rust-std-1.26.0-x86_64-apple-darwin.tar.gz": "cb5a0114e9e383aa93267868482db84f791124ee4faafdaed08ec6782d000fc2",
+    "rust-std-1.26.0-x86_64-apple-darwin.tar.xz": "594420598ba666e0fa384bc253bb98e38d38ebdb75c586b6a9c1091b68e8fe8f",
+    "rust-std-1.26.0-x86_64-pc-windows-msvc.tar.gz": "88ae8697a84cfddc72429fb0880e6d8663d99ab98a69d27c06d21b4e668b13d9",
+    "rust-std-1.26.0-x86_64-pc-windows-msvc.tar.xz": "7cce8c1e7ea4fc08b10f15fde0509e2f382d3d21fb7c90bd4da78065864e9b2d",
+    "rust-std-1.26.0-x86_64-unknown-freebsd.tar.gz": "38cd138eba2ccaff59513d154fec580b6663ca6ef38cd620c348364aa1e11a40",
+    "rust-std-1.26.0-x86_64-unknown-freebsd.tar.xz": "896087ac4aa2bb750ee207d2a99f0a85b1ca1b039d664a0da1a30e76934905af",
+    "rust-std-1.26.0-x86_64-unknown-linux-gnu.tar.gz": "e27cb5c21541a500c8df919e15c8d3b002456ebbe573122e7b058cf5b4c3c13a",
+    "rust-std-1.26.0-x86_64-unknown-linux-gnu.tar.xz": "bd157c007bd361159951ad54fbab1e904625aca91a149954dd1308229bcdda65",
+    "rust-std-1.26.0-x86_64-unknown-linux-musl.tar.gz": "943886ce013589b6dd9c9392c807881631cab4a8e04acc83e3a047134a9294f5",
+    "rust-std-1.26.0-x86_64-unknown-linux-musl.tar.xz": "df6d7b9ad98773656adcb77ec7ad1bf18bf910076b4f0d381d3560391fbe9dc9",
+    "rust-std-1.26.1-aarch64-unknown-linux-gnu.tar.gz": "34077f14d1e8c9ce96a9c72e95599326187bd460b88f877794a8c19f9e1b56b4",
+    "rust-std-1.26.1-aarch64-unknown-linux-gnu.tar.xz": "c4b16f75c8e6581fc46441007312709953e1df45e8c61d610754cd31edc5151c",
+    "rust-std-1.26.1-aarch64-unknown-linux-musl.tar.gz": "d4435fa89ff7575d8d70114a5841bf70d699294db707512d6f4f4d0a073b237d",
+    "rust-std-1.26.1-aarch64-unknown-linux-musl.tar.xz": "bd1541362469ce3554f41e49ecb5293faf0e287bab351627de67601e0ff9bc2b",
+    "rust-std-1.26.1-wasm32-unknown-unknown.tar.gz": "98af245301a921042997a433a618f58ae27b52340ad71c5502ecde7f29db79f9",
+    "rust-std-1.26.1-wasm32-unknown-unknown.tar.xz": "b97df2cd8b019f0ebd8cb42b90fa7e2dd481c67457a1b527429ec7f177a16ab2",
+    "rust-std-1.26.1-x86_64-apple-darwin.tar.gz": "d43e06674e645e120af6716e6d0db5771fa8818b5a48fbee9791360086cdec4a",
+    "rust-std-1.26.1-x86_64-apple-darwin.tar.xz": "245ea05bc6bf8683e3afb080a5b1762871057a1805e992f654d31e7b4f8ec98a",
+    "rust-std-1.26.1-x86_64-pc-windows-msvc.tar.gz": "5223b7dde5b96d278072b4541fdffb7d33c64950af643eba385928763aca32bf",
+    "rust-std-1.26.1-x86_64-pc-windows-msvc.tar.xz": "9c919b8789ecf1d17f51d030a59b95f30dea85185acb448e1c1c8255cf190efa",
+    "rust-std-1.26.1-x86_64-unknown-freebsd.tar.gz": "1d63cc1f6dc6dfa2644619cd8c264c3d1be0fe5c44c5454e8ea04bd7beb036fb",
+    "rust-std-1.26.1-x86_64-unknown-freebsd.tar.xz": "ad71aea86111876dfd75fc4bb7990e14386ce1e209184d38109b98df3688a825",
+    "rust-std-1.26.1-x86_64-unknown-linux-gnu.tar.gz": "cc7cec9a121a97e8e23c350305a0e4cd4e3b475fd5a36fa6335a585d3c511f0d",
+    "rust-std-1.26.1-x86_64-unknown-linux-gnu.tar.xz": "5b684014c618cbfec69fcda01fc4f80715df9ca85fbf22aa79cfd244388a4b23",
+    "rust-std-1.26.1-x86_64-unknown-linux-musl.tar.gz": "9d6a4191ad8ddfae10a05882cd0e867ecc2b64d26da2f38fbdcbdcbcf94139cf",
+    "rust-std-1.26.1-x86_64-unknown-linux-musl.tar.xz": "f48360cf29730838aac62ad9a456f8eedcf815b1cf4b675b8dbc43a140129abb",
+    "rust-std-1.26.2-aarch64-unknown-linux-gnu.tar.gz": "6f629b8c3ef8aa4a6c9439a5c1d8719905853f321a1080bb9f8a8356a1b06364",
+    "rust-std-1.26.2-aarch64-unknown-linux-gnu.tar.xz": "1f83a04b6268140bfc940f46d05d1c07af842380e33af22c9d6fabed78e70d0f",
+    "rust-std-1.26.2-aarch64-unknown-linux-musl.tar.gz": "d70817352ebe34fab475ef3cd79ccbd56cf20e3b9ae0b34a285dd1c966bf2bde",
+    "rust-std-1.26.2-aarch64-unknown-linux-musl.tar.xz": "e7c30306ec59fc5d89c44ac9ba3678cb0dcb077f216685c8f48caf0cd92d3f73",
+    "rust-std-1.26.2-wasm32-unknown-unknown.tar.gz": "260e3267451c8098ac069376e2f4320e129ccec79602086a77f0798499cb5b3b",
+    "rust-std-1.26.2-wasm32-unknown-unknown.tar.xz": "9e7db84c3c62da67c67b4801317b37cb86c27d681289cee353564bd514a85365",
+    "rust-std-1.26.2-x86_64-apple-darwin.tar.gz": "712a79cd10b96c7119980e535a36595e03c69a360f1541f690c09de858d92723",
+    "rust-std-1.26.2-x86_64-apple-darwin.tar.xz": "4945bc10a9e4c896168312abc361027b4116aea2138eeaea4291d2500bc78547",
+    "rust-std-1.26.2-x86_64-pc-windows-msvc.tar.gz": "41036c06e00ba038c5ec3940608370e93c6b9a731019d0349841fa78bc8ea125",
+    "rust-std-1.26.2-x86_64-pc-windows-msvc.tar.xz": "8a8f901a361a4605166b1379cddbf48b7895688f1fa8b2785fbbaa69f5309e9c",
+    "rust-std-1.26.2-x86_64-unknown-freebsd.tar.gz": "f54b58bf941d794ee10ab7ee9e1c94a70012073b0ee633ec2be585b1be2e31de",
+    "rust-std-1.26.2-x86_64-unknown-freebsd.tar.xz": "ec3a520e9f857ec0170f5ad2d57ca8b9c2d94033957d926740adc926e1a78f40",
+    "rust-std-1.26.2-x86_64-unknown-linux-gnu.tar.gz": "91634f05bf2d0a20e627aed08a8450673acecb963869273221de17130540fb26",
+    "rust-std-1.26.2-x86_64-unknown-linux-gnu.tar.xz": "83f0d8847bcb2130f1eec4298df35dbc94ba79ce9552ef91c9f22256453cc6dc",
+    "rust-std-1.26.2-x86_64-unknown-linux-musl.tar.gz": "5ba536ccc53bf550d7ae3f032cc743b2f13c1ac92e3be45f0843762ed8aa4ca0",
+    "rust-std-1.26.2-x86_64-unknown-linux-musl.tar.xz": "3c8026d1692e36379435238c407d19e0630d9b5bb55ccf997214559f5d0d099e",
+    "rust-std-1.27.0-aarch64-unknown-linux-gnu.tar.gz": "a32ff8d2ab75a229b73076182978e8b97ac1c5447b9446b1d253685ef31652ec",
+    "rust-std-1.27.0-aarch64-unknown-linux-gnu.tar.xz": "7d6e41fa476efa4e671013283e80fa65509abc1a3e106ad3d22ba99843a7e7df",
+    "rust-std-1.27.0-aarch64-unknown-linux-musl.tar.gz": "e64ee59e3c113483714c563a567532eba46c96ff7e7f3982e88fecf03d0c1cae",
+    "rust-std-1.27.0-aarch64-unknown-linux-musl.tar.xz": "957edbec59b09890de4f349558ca0d2c9ad9ff5b726852eeda4cae69c00d5a2a",
+    "rust-std-1.27.0-wasm32-unknown-unknown.tar.gz": "aa1afca259ecbee3cf65368e8f9d5e9a0d8ea86be30edf4ecfedecc1db110380",
+    "rust-std-1.27.0-wasm32-unknown-unknown.tar.xz": "969eb535077d58df6113bc3d736ffaa3872a41b4841c7fbf6a0f316c80853d42",
+    "rust-std-1.27.0-x86_64-apple-darwin.tar.gz": "15ee6418f9b564618e9c81a6dcd7706a2f8ae5ca24fd1b6d7527c97563a47e57",
+    "rust-std-1.27.0-x86_64-apple-darwin.tar.xz": "0da0e6ba26c5a67756b5e6c64b437a1e761224e69645c5a44cdcc53a7c9c7b18",
+    "rust-std-1.27.0-x86_64-pc-windows-msvc.tar.gz": "77c9102d192ed2dda7128dea4e60992d1135c50b85f0ef8e989f0fda3ed3b73c",
+    "rust-std-1.27.0-x86_64-pc-windows-msvc.tar.xz": "2d05d78fed0a3ee6e8649170b0570c3cd8ce5fec61b81fbef6f8458dec148776",
+    "rust-std-1.27.0-x86_64-unknown-freebsd.tar.gz": "6e307cc3798b50b37beb9ff43e88b12fb565ddaf051925fffa35bfbeb091d660",
+    "rust-std-1.27.0-x86_64-unknown-freebsd.tar.xz": "e7e3e815fbcf7e36c1298fc21d874371e4949449bc8283c9d68d8f3892803a8c",
+    "rust-std-1.27.0-x86_64-unknown-linux-gnu.tar.gz": "b8cf36922315ca792929d515327c74b873358a64be4929b2ecfbe23af21e8043",
+    "rust-std-1.27.0-x86_64-unknown-linux-gnu.tar.xz": "801ab125beeec6748f0380beb4258cf4c69567cfca7aa2d8df26788be58ce9da",
+    "rust-std-1.27.0-x86_64-unknown-linux-musl.tar.gz": "166b5286de202feebfbbfea18f2cc06b0a945dd7687985d6a14b3c811b18b202",
+    "rust-std-1.27.0-x86_64-unknown-linux-musl.tar.xz": "40e6cd3ed1d9226332e349a1ca3782c5f925fdcf9fb3090f4cbc9b3e971f3ec0",
+    "rust-std-1.27.1-aarch64-unknown-linux-gnu.tar.gz": "00a553c4b5869db1acc4f5fb1f6f954893db507ae01ed754bb8654f8916588e9",
+    "rust-std-1.27.1-aarch64-unknown-linux-gnu.tar.xz": "1f9565cac16e600c68ebfb4fe50b1658462698b8d4a1e8392f8182c4e813d99d",
+    "rust-std-1.27.1-aarch64-unknown-linux-musl.tar.gz": "aabf69e0ed8a0a45a1dd7c52bf532cff37ab00c1aa5cd1555ca57e4fee9dc64d",
+    "rust-std-1.27.1-aarch64-unknown-linux-musl.tar.xz": "e401e36819073d1c62ef01d4c68f87244a5f7846387a2644a5802d5be55319af",
+    "rust-std-1.27.1-wasm32-unknown-unknown.tar.gz": "e16cfda8a8eb29c81d34ea3ca7b4c0815b46ddb85814cbf68320f2666ef44d78",
+    "rust-std-1.27.1-wasm32-unknown-unknown.tar.xz": "f98bad41fcde2e7229730128513f03233a0c9a182316658263c1106945beea6e",
+    "rust-std-1.27.1-x86_64-apple-darwin.tar.gz": "a521599355e564984e43a63042b1de93dd7cf96730930501f86611dd766384e8",
+    "rust-std-1.27.1-x86_64-apple-darwin.tar.xz": "705d5847fb2ee439391fc917f5c6ff8606cafc81a64f6ae51beedc8f5ec542f7",
+    "rust-std-1.27.1-x86_64-pc-windows-msvc.tar.gz": "4745f31711f18e06859946b932909a26d4593552c6631c5710e72d3da26f06ab",
+    "rust-std-1.27.1-x86_64-pc-windows-msvc.tar.xz": "6b6a666c0e861b4f15df2c64d4c9123027039658a4241ee9cb6e8e2cd42dd3a7",
+    "rust-std-1.27.1-x86_64-unknown-freebsd.tar.gz": "12902b61a4897ade258217f045dfac3fe83d49dd52d1e2250bd94c3a10642b08",
+    "rust-std-1.27.1-x86_64-unknown-freebsd.tar.xz": "06f06c44c750a4f251fab9a627e053d1afd43e16c476eb66db677581f354371b",
+    "rust-std-1.27.1-x86_64-unknown-linux-gnu.tar.gz": "9a1830b522117d68eeec703b50692093352212e035a46baceea666bb37739c2d",
+    "rust-std-1.27.1-x86_64-unknown-linux-gnu.tar.xz": "d3b0d00357cfaecf85651bea6f1d72793a5a859b6b07e9613ba21285922d5d58",
+    "rust-std-1.27.1-x86_64-unknown-linux-musl.tar.gz": "c387d462fc07d4bace1355cfca70b68ff263432614cbe7c66d53ac25e1a47161",
+    "rust-std-1.27.1-x86_64-unknown-linux-musl.tar.xz": "011eac5524fe74b773b92c03bef41dac17ce7cc80ed246c472a8bc6c6fc5163c",
+    "rust-std-1.27.2-aarch64-unknown-linux-gnu.tar.gz": "39bafd1db4f1e881cdbd8d81b757bfef1cad6c06f6aa4514f8b693d997764e2a",
+    "rust-std-1.27.2-aarch64-unknown-linux-gnu.tar.xz": "1538eff6a3ecb62c362cf463686c28103bb162ea1274705e23116b5534f06c56",
+    "rust-std-1.27.2-aarch64-unknown-linux-musl.tar.gz": "5e8e6d5368ece8c822991c8b4437e83d0537f253cb70b39d627d17f012813122",
+    "rust-std-1.27.2-aarch64-unknown-linux-musl.tar.xz": "4473c33b209bf22cd95e00591aa604a7dc92821888a08a5c60dc51c6589e6e79",
+    "rust-std-1.27.2-wasm32-unknown-unknown.tar.gz": "59ad2323afe090c43e41dce482a4abed1473a7997db5db2ee236d49eac208b70",
+    "rust-std-1.27.2-wasm32-unknown-unknown.tar.xz": "0372a8d80425ef914096a87e7ceb6f40c3afe30b31976cee527f6b5575eca4f2",
+    "rust-std-1.27.2-x86_64-apple-darwin.tar.gz": "eed3688d9f551066593b34f07e4d28846caa99624c2168387993acc6bddd003d",
+    "rust-std-1.27.2-x86_64-apple-darwin.tar.xz": "6b75ef4b1c918f2150e5d26f9b69e5d30ee5c1e36b51e6bd6f45dd983bfb3283",
+    "rust-std-1.27.2-x86_64-pc-windows-msvc.tar.gz": "f5dbee42f3fde455d79e759a4854da78a650df3bcf27f194da78670feb11e10a",
+    "rust-std-1.27.2-x86_64-pc-windows-msvc.tar.xz": "b27720170d32f093313f05892d7027ab76234979e6f8bc3af07e98ca2042af7c",
+    "rust-std-1.27.2-x86_64-unknown-freebsd.tar.gz": "6051f8bacbfbd2c3dceeddab8c66274bed7ef260cf346d367c53495cd1567572",
+    "rust-std-1.27.2-x86_64-unknown-freebsd.tar.xz": "56e385edeb9d418232b06e69f51ece79deed550d101d508451ef3fa9f1780a8a",
+    "rust-std-1.27.2-x86_64-unknown-linux-gnu.tar.gz": "68984f2233853d3e9c7c56edd72a91b5822157f28fdb42023fb311af68f842dd",
+    "rust-std-1.27.2-x86_64-unknown-linux-gnu.tar.xz": "d25e00b8a86956bdf0efe0b20d700081c3f279a1e92f86ccc15fb4deefa42e14",
+    "rust-std-1.27.2-x86_64-unknown-linux-musl.tar.gz": "2ef23cad3779c8ee7abf7cbe7d93b0faa1ffd87e1ef5a378aa9ce566cd1b7644",
+    "rust-std-1.27.2-x86_64-unknown-linux-musl.tar.xz": "3f615213d1c07c8e04c0cf2e70c010e1f8c99ecddc21bf9c06596d4bc9146093",
+    "rust-std-1.28.0-aarch64-unknown-linux-gnu.tar.gz": "9ba698f68c5643f53934e1085af40c79c6d1b3bfa01ca6dcdffdc5eec8f44cc0",
+    "rust-std-1.28.0-aarch64-unknown-linux-gnu.tar.xz": "3a57261bb435fdac09bf43e51f5df3eac9adf95d89f453b4462775ef597b91cd",
+    "rust-std-1.28.0-aarch64-unknown-linux-musl.tar.gz": "b1acdf055d534f4ce295271fe6101833c65261aeb52ffb619911a4db3de35663",
+    "rust-std-1.28.0-aarch64-unknown-linux-musl.tar.xz": "a4a73a1115ef9a0306a5c27ab60fe3d66db56f011548509c8b5768121e4ed4a3",
+    "rust-std-1.28.0-wasm32-unknown-unknown.tar.gz": "33f9b2d3f568859db28ab32ec4dd388390d408f6204ab44886eec04cc08af843",
+    "rust-std-1.28.0-wasm32-unknown-unknown.tar.xz": "e7ef1b54f0cfb51b86276b855dbd220a9f92c1989c1acf669c92a648d74935c6",
+    "rust-std-1.28.0-x86_64-apple-darwin.tar.gz": "bd1b5110d35383349aafad904431d55656b13a3c02ed3b2020d2038557735ab9",
+    "rust-std-1.28.0-x86_64-apple-darwin.tar.xz": "6544da0d86d23b85185e9eaeb27a3c31f19c7964ae3d13409dfffc08f5b6ccdf",
+    "rust-std-1.28.0-x86_64-pc-windows-msvc.tar.gz": "876d68628e6e91113117516621ae4773cdbebdaab1e899d3ec83c612683947b8",
+    "rust-std-1.28.0-x86_64-pc-windows-msvc.tar.xz": "1f2442fda1d420a38f7adbcd1962b841dbab2e56c92cb1ddb406b868f703bac3",
+    "rust-std-1.28.0-x86_64-unknown-freebsd.tar.gz": "1fabaf71d21c1cdcddfb564950152ef862b519a175f7ee88d7e22bab31c4733e",
+    "rust-std-1.28.0-x86_64-unknown-freebsd.tar.xz": "91ff72b36b539c3b52a56abcda83bf1b39f75afbfe4e0c103a266f0ee8464395",
+    "rust-std-1.28.0-x86_64-unknown-linux-gnu.tar.gz": "c5aed4c7ef362b5754526d26acaccdc9300942fd12e5cc67cc56fc89576a9dab",
+    "rust-std-1.28.0-x86_64-unknown-linux-gnu.tar.xz": "80aca8c46aa724c91f7cb7fc038c8c94e6648e73156e9f35e1f73bc5dd5b0249",
+    "rust-std-1.28.0-x86_64-unknown-linux-musl.tar.gz": "caea8f24197232c25de0e387567af452e0d57b9103ef8acef167814f9acda08c",
+    "rust-std-1.28.0-x86_64-unknown-linux-musl.tar.xz": "00f6810acd6f169da3ff7821e6d77a18fb13f1a053863e0ba249de4e82c2053b",
+    "rust-std-1.29.0-aarch64-unknown-linux-gnu.tar.gz": "72c0ab49bbdbf819da5018b620aeed22d34af558f4db9598059cb253fc6adec3",
+    "rust-std-1.29.0-aarch64-unknown-linux-gnu.tar.xz": "9fb267947e83ff59d055599bb6c2c0ab5a16037e34d956e748e0b21b8184a4ec",
+    "rust-std-1.29.0-aarch64-unknown-linux-musl.tar.gz": "63f9cef857800feae763ba5356f1aa67b6d2d5c8c13e03378d79014e41eacf17",
+    "rust-std-1.29.0-aarch64-unknown-linux-musl.tar.xz": "c6b1392d953186fd5b052b3a64d81b3cc08333a33795f16edfd4326257092c7b",
+    "rust-std-1.29.0-wasm32-unknown-unknown.tar.gz": "83449101356a3ae4abf8597913602b1c79dd76cc52bca7a6a3a9f4fdabc565d5",
+    "rust-std-1.29.0-wasm32-unknown-unknown.tar.xz": "0bbaab4e9041ef71c98cc0883da54a8fa9c71be6363f99ed8a654668f1e31908",
+    "rust-std-1.29.0-x86_64-apple-darwin.tar.gz": "7fca06854f7c63d1d0da7c46c816af5dd23eb8010603b8cf3f07a61b162f02ae",
+    "rust-std-1.29.0-x86_64-apple-darwin.tar.xz": "620b52eee2c30c5f72c8d312c03d77db844156710f864cd2eecc32c1420e957f",
+    "rust-std-1.29.0-x86_64-pc-windows-msvc.tar.gz": "b05d04c684e070a820a0a3dc1128a24795895aecf25f6ffa0d68150e6209e424",
+    "rust-std-1.29.0-x86_64-pc-windows-msvc.tar.xz": "5fe01f163771cacf5fd72f9a53a50c856e430f5e70aa1b11823004d621bec13b",
+    "rust-std-1.29.0-x86_64-unknown-freebsd.tar.gz": "a59a50a60b033c00cf36c3b8039f300b2997245c21f2d02074f9d3157b54b353",
+    "rust-std-1.29.0-x86_64-unknown-freebsd.tar.xz": "9351a2eb4b347f2d3dc771a3e3283c0cf53bceefe4ce28d1c91f4c25f7144606",
+    "rust-std-1.29.0-x86_64-unknown-linux-gnu.tar.gz": "0bed2fcba596e1af6f56ed3f5d481b89b28a4ac26aea07128c6630c00c6a136b",
+    "rust-std-1.29.0-x86_64-unknown-linux-gnu.tar.xz": "58e53fc0823b7f5669e3806b3cb87503bca91e815383b37d0fce34a9140bed14",
+    "rust-std-1.29.0-x86_64-unknown-linux-musl.tar.gz": "f45012af49d05990b0917c465a7986be466d2dcf6fb82100903ba0dc7f63469c",
+    "rust-std-1.29.0-x86_64-unknown-linux-musl.tar.xz": "9c9e5c24dcc2adc5a9f088873c8c65b71d3bd0d24972ef2554193b1ebd5a1552",
+    "rust-std-1.29.1-aarch64-unknown-linux-gnu.tar.gz": "cf192e05192f79961b9f9e834e19c8b71654ac98b239408a6815d07ff2a96f19",
+    "rust-std-1.29.1-aarch64-unknown-linux-gnu.tar.xz": "87c86b7a3e23632a2ba1f8386b8ebca00cf5f3f30bd889712ad7d25ed3ad9e20",
+    "rust-std-1.29.1-aarch64-unknown-linux-musl.tar.gz": "fa2f496ee03bff273eb88726e1faa2cbd6156b33ca19acb5e3b2f4c687a5594b",
+    "rust-std-1.29.1-aarch64-unknown-linux-musl.tar.xz": "184995d73f526c150e8676b9f5ffaa4eaebd575212058946593baaae46723ed8",
+    "rust-std-1.29.1-wasm32-unknown-unknown.tar.gz": "48f31123614b5e0799200e0db640ff05c7236d0b6940bedf4043d5d19a2b22df",
+    "rust-std-1.29.1-wasm32-unknown-unknown.tar.xz": "3c17286c61b511753f2905b04b9e41feeb53700c15d9a053860501117aa91c42",
+    "rust-std-1.29.1-x86_64-apple-darwin.tar.gz": "9c31fba3bfb816cf6aa8d9d4c3e7f235233035ada95417e130de8487faa507d3",
+    "rust-std-1.29.1-x86_64-apple-darwin.tar.xz": "810308caf7f548c41b349aba8f5f5bd83f0cf06dfa34d5f1b9281d7ede7705ab",
+    "rust-std-1.29.1-x86_64-pc-windows-msvc.tar.gz": "cb7825c2a1fa46696a429fc7e6afd3f2b396d1467a6e4b5f850ff8dedd73ac1b",
+    "rust-std-1.29.1-x86_64-pc-windows-msvc.tar.xz": "b001578bd3820ddf5a72c66ce9ffbc67bfcf690c3402aa1e50e804e1093f212d",
+    "rust-std-1.29.1-x86_64-unknown-freebsd.tar.gz": "aad9e36766284656449dad75cc1c77c7b86da99abfb0ec424689101679aa8a43",
+    "rust-std-1.29.1-x86_64-unknown-freebsd.tar.xz": "52e7bac478d6c698778769ebfe1f160d6961d34216d98130c58feed8b366e0f0",
+    "rust-std-1.29.1-x86_64-unknown-linux-gnu.tar.gz": "d05ddae0f05d721de00bf6e40f85f1ccdec902f864b9647e2e1cb08a8202d513",
+    "rust-std-1.29.1-x86_64-unknown-linux-gnu.tar.xz": "4da2606613910870e21d6057047ad9f6ad5d570e158f584a4b2a2a40ed2d2483",
+    "rust-std-1.29.1-x86_64-unknown-linux-musl.tar.gz": "7ef498c2c817afc7843d301431015931323af1759d325f46b4379bf4dccec331",
+    "rust-std-1.29.1-x86_64-unknown-linux-musl.tar.xz": "80b7318bd5336a7bcb6725b2464649f1368a00d3164be7f01e9b29d11d38bf6d",
+    "rust-std-1.29.2-aarch64-unknown-linux-gnu.tar.gz": "f64b051f0b293ee66d7556231dcd70d143525bf6d0b2afc6fae945bf1ffd8073",
+    "rust-std-1.29.2-aarch64-unknown-linux-gnu.tar.xz": "df62bdb6839e313f8f9c3a92b4de63ba2c37b9c7b534449a392db1ede0f6a741",
+    "rust-std-1.29.2-aarch64-unknown-linux-musl.tar.gz": "660dcc5252db28a3d46712606a299001fd9a0fe1f27333a88269ab4502315c43",
+    "rust-std-1.29.2-aarch64-unknown-linux-musl.tar.xz": "805514df184834005cb1ea096d37fb488ff9d392e68a90928886cc02dab24329",
+    "rust-std-1.29.2-wasm32-unknown-unknown.tar.gz": "e8317f0677a3d4ee3b4e5f2dffdf0cdb930c77da20676a32099fde477b439d5e",
+    "rust-std-1.29.2-wasm32-unknown-unknown.tar.xz": "091ca45d4ebfe24df3a10dbb60d599d92739da8be25c7ae75551e6f4ed2ef26d",
+    "rust-std-1.29.2-x86_64-apple-darwin.tar.gz": "72cd953cb8ea05667f5d58f5c4ba615a564611a86303c0f8f9235e7a53852692",
+    "rust-std-1.29.2-x86_64-apple-darwin.tar.xz": "a36543ff0ae1e1409baab147ecb8ca8d92050dfe16af6fdbec48b1435e9b6e95",
+    "rust-std-1.29.2-x86_64-pc-windows-msvc.tar.gz": "5f2320e89946208b14a34d96a2bfc652bf1debe2bbf139fda19f7dc3a5f91694",
+    "rust-std-1.29.2-x86_64-pc-windows-msvc.tar.xz": "e1c4d7bdd5ebd9aae6ac76cff62d11b3e5702ea3455642fec7f35c28c573e273",
+    "rust-std-1.29.2-x86_64-unknown-freebsd.tar.gz": "ddde8a33ddd902471c51f273087d90e9f7f184b7f09f5d14cab454c8c4965ec2",
+    "rust-std-1.29.2-x86_64-unknown-freebsd.tar.xz": "79382559225298abba3a8d48f8e459603d904c22d416eb50bc1b072b3c5b37f3",
+    "rust-std-1.29.2-x86_64-unknown-linux-gnu.tar.gz": "1fe9a0f354256483a354ee1b51c60bf9f3f48868581f7cb36d0cc51a82400605",
+    "rust-std-1.29.2-x86_64-unknown-linux-gnu.tar.xz": "be16e9db4e39e5e1af0621eea715d13e0fdc56f7b14c3d7310905dc34dfa618a",
+    "rust-std-1.29.2-x86_64-unknown-linux-musl.tar.gz": "7588af2d23b4e2d342476acfd5fb95dc399777142cf1fb39a6ef0a40d70437bc",
+    "rust-std-1.29.2-x86_64-unknown-linux-musl.tar.xz": "e1b106bc35e608d42e90729c8be2d3fb29cdf883060ff40fe84e147b3536d2a6",
+    "rust-std-1.30.0-aarch64-unknown-linux-gnu.tar.gz": "0166650de5072545c3945416638dec9beec5ae1f3c72069e314b7c50e18b4819",
+    "rust-std-1.30.0-aarch64-unknown-linux-gnu.tar.xz": "ac68b928e827859c959780fe43f2fa4877d4425ee1ad1ddd0c0dc6557124351d",
+    "rust-std-1.30.0-aarch64-unknown-linux-musl.tar.gz": "03ea73844f2963e1716661142a15fc39b8dc026b2654ababe009d31df4e78363",
+    "rust-std-1.30.0-aarch64-unknown-linux-musl.tar.xz": "1fbd39d54c9a577e0b2cf527c22b0d367f21f67469b5ce9e4efb1b8bca4c14f3",
+    "rust-std-1.30.0-wasm32-unknown-unknown.tar.gz": "e85afbc075e162e9af71795e1dc81fa0d2cf657dd10b74751f1769585321a20f",
+    "rust-std-1.30.0-wasm32-unknown-unknown.tar.xz": "10dc1ba0607ac45b1f695af4c5d193908162f427ac1b165a1934763aef81943f",
+    "rust-std-1.30.0-x86_64-apple-darwin.tar.gz": "33f4a7574c82db1b1bc3f829d0fecf9047bbac073c305500ada4aeaa08272ca9",
+    "rust-std-1.30.0-x86_64-apple-darwin.tar.xz": "fde1b5c6e8167a524212b3dc6ea89f53fa6db0da6e235dc1c1e03146b91c9e7b",
+    "rust-std-1.30.0-x86_64-pc-windows-msvc.tar.gz": "7b493d21ac115dc4a1ef85cf0d8e73f688bda065c3abbdf68ff3674c122fb9e4",
+    "rust-std-1.30.0-x86_64-pc-windows-msvc.tar.xz": "8461ae7257b39e57e5050dc38e4504fb488ffbe438b8252c91780cdf11ea34e5",
+    "rust-std-1.30.0-x86_64-unknown-freebsd.tar.gz": "4040fe677524e2ead69a2fcab4c16acaad3d4c4f1210ae36f400f82463bdfbc7",
+    "rust-std-1.30.0-x86_64-unknown-freebsd.tar.xz": "48fc6c0152bf1af2896968946d280ff813ddc602609b45cb4f6445f49432fd78",
+    "rust-std-1.30.0-x86_64-unknown-linux-gnu.tar.gz": "8514eedc0ed99ab75c61be3137c3e57c4115063ddc07aec842f687ebfc7ceda3",
+    "rust-std-1.30.0-x86_64-unknown-linux-gnu.tar.xz": "af33548af67ff851ddaae17f49237d1d19c2ab01a167b771eb1fe053d3431f38",
+    "rust-std-1.30.0-x86_64-unknown-linux-musl.tar.gz": "c2fbdb20b81992220002d1c8a4b76b9363711370cc62a42811d2980f9b5c8401",
+    "rust-std-1.30.0-x86_64-unknown-linux-musl.tar.xz": "50fdff040f68c801f6bb45e973e3394c5574d849efef655a4319468bb32fa0c6",
+    "rust-std-1.30.1-aarch64-unknown-linux-gnu.tar.gz": "64410910d73628a77dfe94dbcd0cd49709b518b5f641fbe4a2476b9af097d47b",
+    "rust-std-1.30.1-aarch64-unknown-linux-gnu.tar.xz": "580018021c1cf5d8889a8bfcc93743dae9f4f4e285b0873232110cf52577a03b",
+    "rust-std-1.30.1-aarch64-unknown-linux-musl.tar.gz": "0bdcb6fcf904d0b047d75e0368caf1d29380c62ba5c54254ca8ad777e1e7b5ba",
+    "rust-std-1.30.1-aarch64-unknown-linux-musl.tar.xz": "706872bf28443f9ba903002ca72bc3f8c24d4237461d2471bbf74e3a9b720e58",
+    "rust-std-1.30.1-wasm32-unknown-unknown.tar.gz": "0892ab95cdfb0bee3c9981e4a5c69a88c0fc5fb7e0c206638291e91a4c794ee0",
+    "rust-std-1.30.1-wasm32-unknown-unknown.tar.xz": "f37f66320a5fa9aad125d3309bf355d4a77ff0315d47c9e04fd6f8f57afc2edf",
+    "rust-std-1.30.1-x86_64-apple-darwin.tar.gz": "a13d4a748914056f34c2e8691b4ca8ab6d16bb04e6e5fafc22ca594789f4e8b1",
+    "rust-std-1.30.1-x86_64-apple-darwin.tar.xz": "62260e2f55cd50feb030218ba1c9753c2b62a377d8d32f30965c253d7305035e",
+    "rust-std-1.30.1-x86_64-pc-windows-msvc.tar.gz": "177d887593e29847a1bb7afeb7924c3958248a9ec8604e66671d8036e8fbf9b1",
+    "rust-std-1.30.1-x86_64-pc-windows-msvc.tar.xz": "63c52a16cf71f4dbba4f14226c68e578dfeb827315b8d7f68f0cb7bfb705aeeb",
+    "rust-std-1.30.1-x86_64-unknown-freebsd.tar.gz": "66c91d14d8d3c1523f9b5c52b81e4293ba5378fcf8b3e5d0ed52e96afe6bdd31",
+    "rust-std-1.30.1-x86_64-unknown-freebsd.tar.xz": "e3fbab0a3d6b1b72fe17381187a7bcbd944e4e74b92635fe6a8705312111712b",
+    "rust-std-1.30.1-x86_64-unknown-linux-gnu.tar.gz": "12c4b164efed44c28096fcd141225ee9bf74e7e3395bc6a60c11c9115a0536c6",
+    "rust-std-1.30.1-x86_64-unknown-linux-gnu.tar.xz": "23e246736fc12db8c81391485281a61a6c68203efd7ede8b547a13785325824a",
+    "rust-std-1.30.1-x86_64-unknown-linux-musl.tar.gz": "1965d586f74bacb3b7332621c1040aa51efd65393da86da6c5296dafbe57602c",
+    "rust-std-1.30.1-x86_64-unknown-linux-musl.tar.xz": "a00a9d9fb5f9248fb0aaf985bbf1640553b2c0b1888eb297a7edb5961b1c01ac",
+    "rust-std-1.31.0-aarch64-unknown-linux-gnu.tar.gz": "02e5b48d8fff293a95b591646e707a8c61399ab6c244508ed842f3d736ded641",
+    "rust-std-1.31.0-aarch64-unknown-linux-gnu.tar.xz": "d2eddb9d7e0b40a519531df149f340a2397687f871148bccdcff1e3061833bd6",
+    "rust-std-1.31.0-aarch64-unknown-linux-musl.tar.gz": "3cedc72a9754219f1684e7037ed10866f0cd756d6ecfaffcd2ef8d57374f85b0",
+    "rust-std-1.31.0-aarch64-unknown-linux-musl.tar.xz": "f833a7d29d688d0f55f2f19b4eacc875a324badbae37374d12eac1d8dc2850ea",
+    "rust-std-1.31.0-wasm32-unknown-unknown.tar.gz": "ff284b10844cdddca786d85fc3be48796f7286a14350e807fa9912e7748634f0",
+    "rust-std-1.31.0-wasm32-unknown-unknown.tar.xz": "91cf9880feaa9a07e9a7476870bdce01afd66d2235d183e11376a645427a0362",
+    "rust-std-1.31.0-x86_64-apple-darwin.tar.gz": "7dd4bea941cde8a5ece3286ed43733503c092a8edb50c8c31223a738a526c246",
+    "rust-std-1.31.0-x86_64-apple-darwin.tar.xz": "e793b9b7a793236e17e548415d1a574c2e92ded59a1adfc703bfd2145353933f",
+    "rust-std-1.31.0-x86_64-pc-windows-msvc.tar.gz": "625e1dbb5996cb9845cb6c779e4a6353faa1e05535471fc00aff6a6f84efeab5",
+    "rust-std-1.31.0-x86_64-pc-windows-msvc.tar.xz": "9813780869a74a9a19778ead5bc0912ffd709c8c86b70b2a7fb0d0424586cdde",
+    "rust-std-1.31.0-x86_64-unknown-freebsd.tar.gz": "3779f0732ee8fdc1d81663172a72219d59b716e8cc5a6b07bf1d5dd744f74b13",
+    "rust-std-1.31.0-x86_64-unknown-freebsd.tar.xz": "a1569a5bcc27c8a4a840546e8e8d58468eebedafa2978a444ef9f2789dd6f295",
+    "rust-std-1.31.0-x86_64-unknown-linux-gnu.tar.gz": "fe67a62c7a63acbf2458a36d7689ef41903187a472f0c28850f1fca7ea478da8",
+    "rust-std-1.31.0-x86_64-unknown-linux-gnu.tar.xz": "d6ce2bbef644c70b01246d301ef2df1b56ec2c44957fafd3a742e4508241a50f",
+    "rust-std-1.31.0-x86_64-unknown-linux-musl.tar.gz": "f3bdef5a9e4974296965b36ced9fa3375eb9e3c3d51a305d64b9be47fa2ae55c",
+    "rust-std-1.31.0-x86_64-unknown-linux-musl.tar.xz": "bf9ff0cb15ab5a11319427de0f3af708815b37f82b017c9c8520332f3db6e058",
+    "rust-std-1.31.1-aarch64-unknown-linux-gnu.tar.gz": "cc32d23cc2995c4838ab2ed4e709ca9748f13f912e9fbbb7cc78c41dbc4de268",
+    "rust-std-1.31.1-aarch64-unknown-linux-gnu.tar.xz": "e68cea6a0e742d5a49e2c4f5255c5cd47336d8e6997f81f1ed2f14d29c56c299",
+    "rust-std-1.31.1-aarch64-unknown-linux-musl.tar.gz": "3d48648a2dad8fb6e7d4eed2d7df14eb20c79e654bc1fe666ab408cebc6e8b72",
+    "rust-std-1.31.1-aarch64-unknown-linux-musl.tar.xz": "d5178b5a485c19fb81c97fab8f70c4ee9ad31ed472841e19dbc776c3e4eeec19",
+    "rust-std-1.31.1-wasm32-unknown-unknown.tar.gz": "a9b1774a6aed9387b12244d2ac0ea047506ffffee67cd834148f01c66ed24e98",
+    "rust-std-1.31.1-wasm32-unknown-unknown.tar.xz": "b9c7866d268c3797204e7b37300cd8c902850b2a5e38f7f1267bc017b9d94e4a",
+    "rust-std-1.31.1-x86_64-apple-darwin.tar.gz": "91c3b12614f9795ef2e0092010f247a38d09c95d4089f75b44fad14679bd1cfb",
+    "rust-std-1.31.1-x86_64-apple-darwin.tar.xz": "735678959d79620f4c83771c67e0d70fe86eec5cc94db957373ac5b26370b419",
+    "rust-std-1.31.1-x86_64-pc-windows-msvc.tar.gz": "e84c961261fe70da68dc56effbb277eadeac51fb5bdd2287a168cbe2ba2b1a2e",
+    "rust-std-1.31.1-x86_64-pc-windows-msvc.tar.xz": "912a447ad7ba49a5aefb0b7e1ccb93c8ec7093f64738462b19d261e7be206020",
+    "rust-std-1.31.1-x86_64-unknown-freebsd.tar.gz": "89e551403f70eed976ac1dd91c3effc9434ef450da4c347d24a141529f83a101",
+    "rust-std-1.31.1-x86_64-unknown-freebsd.tar.xz": "b258b288259e69fc1d1ce662c120fbdf5ef484c8be017841937853102ffa1817",
+    "rust-std-1.31.1-x86_64-unknown-linux-gnu.tar.gz": "699664b3a64959a2d75e486e19e7cc9934cbcbf2c57a977dd2a2b33cff367da1",
+    "rust-std-1.31.1-x86_64-unknown-linux-gnu.tar.xz": "4facc7e7236d9550c973d5183e626b3ccd483efdfae493a22b448788b83096ba",
+    "rust-std-1.31.1-x86_64-unknown-linux-musl.tar.gz": "ea622d3bc171a23f704440ea99e96023888425d0c3d90bc6fcc592c17e9f8f54",
+    "rust-std-1.31.1-x86_64-unknown-linux-musl.tar.xz": "17d45aaab0ad8ddaacf820b47c1a333e5af910d349f658257dea4aae1a0e5dc9",
+    "rust-std-1.32.0-aarch64-unknown-linux-gnu.tar.gz": "346efe3aef2aff7b71a611bf7661bcec5f9bc4025a599c2866ec5fd330247cb9",
+    "rust-std-1.32.0-aarch64-unknown-linux-gnu.tar.xz": "fc433a7e3313042e5f4237a2512205689701336ea8e5abd60f22fb907cb0e7e8",
+    "rust-std-1.32.0-aarch64-unknown-linux-musl.tar.gz": "ca67a0ae151de83e077b95dfca459ca2445db461c7e6428c11a32e23e8ea9525",
+    "rust-std-1.32.0-aarch64-unknown-linux-musl.tar.xz": "00f34f26af7fb57c745742d82de255259643e0d90e913cf0ea1e4fd5df2e49e7",
+    "rust-std-1.32.0-wasm32-unknown-unknown.tar.gz": "5da2824a9404204ce2a72b44961e2dd8854fe2232f65851c1a8ff5c59ef537d5",
+    "rust-std-1.32.0-wasm32-unknown-unknown.tar.xz": "fa3c98f41f6fa2d9050be5caf60a6da1283716bd70c7c1eb7e71b923924266d5",
+    "rust-std-1.32.0-x86_64-apple-darwin.tar.gz": "b736d035a97f830585360e54e3f8877b68c942211cf0a75e805f34bfb36103a6",
+    "rust-std-1.32.0-x86_64-apple-darwin.tar.xz": "fb32b92483e6065e19ad540f8f28731593d9ee1254994037b988978e0086e19e",
+    "rust-std-1.32.0-x86_64-pc-windows-msvc.tar.gz": "cd9693213bcc2ca0ff1490861d3b52703b65df6f678c3f2ae9ad3f3717e08871",
+    "rust-std-1.32.0-x86_64-pc-windows-msvc.tar.xz": "f026eda83fad7893ba54d357b00a83c72ef9e5bdd0ee02936841d8efffc4fa98",
+    "rust-std-1.32.0-x86_64-unknown-freebsd.tar.gz": "d50f674379791a93764d383153ed6533cea165ede7f233df4e17563bfdab273c",
+    "rust-std-1.32.0-x86_64-unknown-freebsd.tar.xz": "9ccd8d242f10565cf45570b22a64b7a08253f29aad59d6d47110464e09b775b0",
+    "rust-std-1.32.0-x86_64-unknown-linux-gnu.tar.gz": "9f2705a3ed3217c13fd55569406c52f590030752f57520312e135223ae930caf",
+    "rust-std-1.32.0-x86_64-unknown-linux-gnu.tar.xz": "3cea0fa8c896d19f615a2a9c7f0a59fea1483b9d5f884411b5cdfeec16497562",
+    "rust-std-1.32.0-x86_64-unknown-linux-musl.tar.gz": "d69a44623be904b48c72adbe0141401c4c1068b4a45502328f9e219e0f833c75",
+    "rust-std-1.32.0-x86_64-unknown-linux-musl.tar.xz": "080c2237655ae747a3816420a95762740e5928d228a4ae71eeb98845b950ecb7",
+    "rust-std-1.33.0-aarch64-unknown-linux-gnu.tar.gz": "26f13cd80c95d484ccffecf517f1e05ce521072a00f1adea43d02b3f9d37f82a",
+    "rust-std-1.33.0-aarch64-unknown-linux-gnu.tar.xz": "3e3449dada8306b3ff91f23c7803c7312a47e93af140f757b29b74f1e226a505",
+    "rust-std-1.33.0-aarch64-unknown-linux-musl.tar.gz": "47c7ed55b77e161c9489ca903be32be80dd0efdf88d55f472bb54cce832629de",
+    "rust-std-1.33.0-aarch64-unknown-linux-musl.tar.xz": "485d42d19a894ec3f06d8fe8dfacd73a3c66002fc48ee3ad25122dfdf62d3a86",
+    "rust-std-1.33.0-wasm32-unknown-unknown.tar.gz": "ea1662a05f89f9fb725cba851f6636316cd80052fed610e4912432e4ee523db1",
+    "rust-std-1.33.0-wasm32-unknown-unknown.tar.xz": "041596abad6ce058951c520388f7dd4fc59f0ad3a2380a2787cc27cf39974ee2",
+    "rust-std-1.33.0-x86_64-apple-darwin.tar.gz": "94247d4d11c631c9d4256f4b0aedd7fd0379fdb55174405c4c1c0dd0c40097ca",
+    "rust-std-1.33.0-x86_64-apple-darwin.tar.xz": "874dc8f8bc4a3302a5184191fc99ab64c1cff68e2dc60ce6123cc28235b57c93",
+    "rust-std-1.33.0-x86_64-pc-windows-msvc.tar.gz": "36d94915b8aa9d3207d31ce77bbb790685cb8263920f0873875ae433fcb8709a",
+    "rust-std-1.33.0-x86_64-pc-windows-msvc.tar.xz": "d147e1198117bb68965440533fcd070009774f573fa76b13fc577237834e4a8f",
+    "rust-std-1.33.0-x86_64-unknown-freebsd.tar.gz": "8eec7a21a3368890fdf0b826e7bc1928775724c0a4bd14d86304cc7e48309237",
+    "rust-std-1.33.0-x86_64-unknown-freebsd.tar.xz": "d25bfef40ad944a40d959e3afed487aae96bb2ce923f7be115356a7ee8cd9a31",
+    "rust-std-1.33.0-x86_64-unknown-linux-gnu.tar.gz": "661c2ba717ae1502f002b4c6e7aeb8941685c7ea8fe7ac26ed9ede26f615b7af",
+    "rust-std-1.33.0-x86_64-unknown-linux-gnu.tar.xz": "6f20343ed73faf5fdfc423bec38a9bb1910a0a962af6f2dddd7184407543ed0e",
+    "rust-std-1.33.0-x86_64-unknown-linux-musl.tar.gz": "c3c0bf38140f7108705bbeeeaebd3dd9e23f556d36796779100c8ecf9142da7f",
+    "rust-std-1.33.0-x86_64-unknown-linux-musl.tar.xz": "dfa318f5b7cf331963bc5a1891f00f6d09bcbea428e5d47e57ba6198c84d9a29",
+    "rust-std-1.34.0-aarch64-unknown-linux-gnu.tar.gz": "d175e91206aba9e2056a9c5af50f700502e70b2f8eb609854d660ac2f3bf1fff",
+    "rust-std-1.34.0-aarch64-unknown-linux-gnu.tar.xz": "9b2f742b15ba65f8d63fe925fed4e5ceec6102d3692f12373fa06b90c02078a5",
+    "rust-std-1.34.0-aarch64-unknown-linux-musl.tar.gz": "2b08cf5b0fdd2cd71e7aece36587fb4869e53faace966eaddb2e2c5fb908eb74",
+    "rust-std-1.34.0-aarch64-unknown-linux-musl.tar.xz": "d8cd2a53be14c228abbd209713bd0713c901ed2226e6d2a3b2c6213a7a89a1e8",
+    "rust-std-1.34.0-wasm32-unknown-unknown.tar.gz": "4add0e23d048309cd284096c36342a6c2307a293072ced9fceeb6a2a48f3797f",
+    "rust-std-1.34.0-wasm32-unknown-unknown.tar.xz": "0cca239ee957f533b130a069780afc3491077acbe9ab23eedb126fa40ee4727d",
+    "rust-std-1.34.0-x86_64-apple-darwin.tar.gz": "f5a4fa8e86e1d4483bbe80d0adb08a7f5e466d8173bb5ea596ee698c75d0fd19",
+    "rust-std-1.34.0-x86_64-apple-darwin.tar.xz": "3d9a6f3aa295844bc877b020af9614c81dd3f5c93af96d80af6bc8f6eaa5f35c",
+    "rust-std-1.34.0-x86_64-pc-windows-msvc.tar.gz": "3037d196ac175595de3ddb3c8d26e9795e1765bb083a33da30d2b6afb5b03e17",
+    "rust-std-1.34.0-x86_64-pc-windows-msvc.tar.xz": "92f34a6423d481af3568a546e29a2a2cdefce22ed9e355d430c20a0cd2300b38",
+    "rust-std-1.34.0-x86_64-unknown-freebsd.tar.gz": "c012bcf9ee417308fb53b97e58d753f90699bd516bcafd6cc83d6f0a54423f3e",
+    "rust-std-1.34.0-x86_64-unknown-freebsd.tar.xz": "0af31ddafff59c959337b3cde9081a05fdc94687ebccf353fc24bce26578c175",
+    "rust-std-1.34.0-x86_64-unknown-linux-gnu.tar.gz": "6565dbe18ee9fa972058b17744ec1129c4fcbf797443f2e16b999df3870d6281",
+    "rust-std-1.34.0-x86_64-unknown-linux-gnu.tar.xz": "32e097e75f13975e24e45465f2911dd794194f2803e9f6ae96d6f6254596fa45",
+    "rust-std-1.34.0-x86_64-unknown-linux-musl.tar.gz": "57e65e5679e7bc00a5bad52de0375f81f91f2f2c3fb1d25af626e4aa4510d80d",
+    "rust-std-1.34.0-x86_64-unknown-linux-musl.tar.xz": "749d0d1bc5d9625da08bd651681f0da5d481c22e4e6af05cd86e9f13af289f0f",
+    "rust-std-1.35.0-aarch64-unknown-linux-gnu.tar.gz": "eee3c6a5c7ef5bc21b626ce350b0e1b02310e0463b6686683262f3fef400746d",
+    "rust-std-1.35.0-aarch64-unknown-linux-gnu.tar.xz": "77972a832aeb6991ef0016ce32b60818c4e35eb1bdb773ef0b117080ac36dcea",
+    "rust-std-1.35.0-aarch64-unknown-linux-musl.tar.gz": "518ba1fb0c0020856eb06ecf3d4d11b94b2ffb0b5f318aac9e086be9b0be2ccd",
+    "rust-std-1.35.0-aarch64-unknown-linux-musl.tar.xz": "7f8d9d5d609eb10bddf7e9402b52f795a8f0ffcf77f3d6f3d2316311d93f395b",
+    "rust-std-1.35.0-wasm32-unknown-unknown.tar.gz": "14f1640b35fe351dccd54fc459dea6b7ea199324a723e6d3efc42d519adca99b",
+    "rust-std-1.35.0-wasm32-unknown-unknown.tar.xz": "4bbada0e82e3dc82bc7aeab1bdb1ecca313905eaf51afb66817304e077ef6472",
+    "rust-std-1.35.0-x86_64-apple-darwin.tar.gz": "93a640d065d761b85b0f770dfa865b2f86a671a7fac0d5079e4cdc9e4e031011",
+    "rust-std-1.35.0-x86_64-apple-darwin.tar.xz": "025c2dcaaf1ba0a8ff32f2f410d823939ab7c5fe0f5ecbbbc4f5047f55a42e57",
+    "rust-std-1.35.0-x86_64-pc-windows-msvc.tar.gz": "2d9091b4a78d7f86b9db5d086b0eebbc2afad4bf828cfbc4b2cc44af86f52210",
+    "rust-std-1.35.0-x86_64-pc-windows-msvc.tar.xz": "1c60efcf777b7ff1f175c3f535cf99553aa56210ef933e62f108778254df40f9",
+    "rust-std-1.35.0-x86_64-unknown-freebsd.tar.gz": "22e8a2deb83dac920237f810b612b7ea555b03f5830f413a94d007ec683de519",
+    "rust-std-1.35.0-x86_64-unknown-freebsd.tar.xz": "4925ecf0093a1077787d7087cf4636553898d8a5e82618d08e4df86ed518ade5",
+    "rust-std-1.35.0-x86_64-unknown-linux-gnu.tar.gz": "5dfa92661ff1a22680785bd6999b6117ae66841e2bd9e5318eb97002956131e4",
+    "rust-std-1.35.0-x86_64-unknown-linux-gnu.tar.xz": "ccff05d0e2d88499505b10f8e33e8b1645df057f918edc81f8acb0fcee9f90b2",
+    "rust-std-1.35.0-x86_64-unknown-linux-musl.tar.gz": "c9ac131020d4a422191f1e55c66ca5b1bf1b768180cbc2e717eefefec049bd37",
+    "rust-std-1.35.0-x86_64-unknown-linux-musl.tar.xz": "3574e0d43b2746ea0cb9f8084670699f5cb920cee646026cec1da152818c51ba",
+    "rust-std-1.36.0-aarch64-unknown-linux-gnu.tar.gz": "22bfc32b5003c3d5259babb202f3f66be16fa6f3c75c20f429a16d7ef5eb1928",
+    "rust-std-1.36.0-aarch64-unknown-linux-gnu.tar.xz": "46c96cdca589e0b256e59370a6c9a1126f00cdd48b5659b638aa4dd7198b0406",
+    "rust-std-1.36.0-aarch64-unknown-linux-musl.tar.gz": "42778ab5f87d2dbfc6849fcf0c6e0a3760b18e8c89385130da0a1953d5fed147",
+    "rust-std-1.36.0-aarch64-unknown-linux-musl.tar.xz": "284e38f2b68d79c41f1073d11d45c58b64b165eaf9660a493b1d96bc19ae7e49",
+    "rust-std-1.36.0-wasm32-unknown-unknown.tar.gz": "7fc1d9f19f6674f73fb89c24aeb741adc59896da6d7ce2e16317aa1fb084bea4",
+    "rust-std-1.36.0-wasm32-unknown-unknown.tar.xz": "1f0402bdfc0ea24cf5461f5f7a21ffc9de8d5183d40178ef6c334026cdc919aa",
+    "rust-std-1.36.0-wasm32-wasi.tar.gz": "382dd29fa294ef53272984b9121e07d2b50cc131c561bb7ab72bdebda3abc031",
+    "rust-std-1.36.0-wasm32-wasi.tar.xz": "194feedc3bac687bc442432b142ec3cbf1ed6d5a2dc5f741e68a5cf2ebfa4ae2",
+    "rust-std-1.36.0-x86_64-apple-darwin.tar.gz": "7c6806809e010e5fba1780007ecff5c31f0ad2fcac1b414b98ca3baa0fb41b36",
+    "rust-std-1.36.0-x86_64-apple-darwin.tar.xz": "798087a4a0a3e87997abbf67f35e2f00af4fbf2f47474cb2b2899d91e88cab60",
+    "rust-std-1.36.0-x86_64-pc-windows-msvc.tar.gz": "2ef035a156b7f20a06677f3873631833afdf9cf755af3fc9466c02d9725755eb",
+    "rust-std-1.36.0-x86_64-pc-windows-msvc.tar.xz": "26f1fef2c8be636a3c1f8147c543f2c967bc05cec941c2238c0ac2e1393c0b20",
+    "rust-std-1.36.0-x86_64-unknown-freebsd.tar.gz": "a2a923cbfa3481af66c22673cac38e7cb70e26333318ad59c27b8b6ac16a84fe",
+    "rust-std-1.36.0-x86_64-unknown-freebsd.tar.xz": "5ceac44ea809ae4dd0c5ef35d4d0e83b6f082bcd5ffc244e92a041a974fc9be8",
+    "rust-std-1.36.0-x86_64-unknown-linux-gnu.tar.gz": "f92425592c02d4681a5c5ae43ac3ad7ddcc218da50fc651ddc5c2240843a7f31",
+    "rust-std-1.36.0-x86_64-unknown-linux-gnu.tar.xz": "ce8e12684b568a8a4f7d346a743383429849cf3f028f5712ad3d3e31590c8db3",
+    "rust-std-1.36.0-x86_64-unknown-linux-musl.tar.gz": "4d36e7b52839cff72481b2b1858417f382be36ffa5f084f72f35c1a9117c94ea",
+    "rust-std-1.36.0-x86_64-unknown-linux-musl.tar.xz": "70d0cc38cc829603c81812c59435ef85456a93962bea20deb12f0634e87fbaf7",
+    "rust-std-1.37.0-aarch64-unknown-linux-gnu.tar.gz": "60d64dde9178fdb698b44315b182375916116e30f5fe7f0d8278dd62eb15e7b3",
+    "rust-std-1.37.0-aarch64-unknown-linux-gnu.tar.xz": "eb0105a56563112ac841171d94d92ce1e7da1e7affa26488c04cb1dbe822c76b",
+    "rust-std-1.37.0-aarch64-unknown-linux-musl.tar.gz": "68db64972c1af5d4d0c4b3d62b644d158df149eed4197e1c26e93ae4a81e4860",
+    "rust-std-1.37.0-aarch64-unknown-linux-musl.tar.xz": "452f70ff3c73d4e27d7b17d04152a0469d6d7a59d954297e99b71220fc1c5530",
+    "rust-std-1.37.0-wasm32-unknown-unknown.tar.gz": "b55f82540aa900d2d1d1f6879c9374a8efc78d9eeb20af181ee30182b7f9688c",
+    "rust-std-1.37.0-wasm32-unknown-unknown.tar.xz": "f5f1d1bd7f9a0e701800c1a08f8a7eb5bda6ae7fabd98e2f359efc665f516d61",
+    "rust-std-1.37.0-wasm32-wasi.tar.gz": "551ee5f9adbf24c637e914148c0f161e9e2175aa7d39e5b486d1dd817fb47dec",
+    "rust-std-1.37.0-wasm32-wasi.tar.xz": "00d22aae8fa79542ed7aa7c44d20862db146c15b78a14ee8c9e117136d274e20",
+    "rust-std-1.37.0-x86_64-apple-darwin.tar.gz": "0b3fe2575b55a739f409a9d76d05c4bb32494691bde5043d77ba4d39ac182f20",
+    "rust-std-1.37.0-x86_64-apple-darwin.tar.xz": "8fe94b20ede22b768d86c0fb29c9dd17dda30f7ab411b5c540654ea1ae8ebb20",
+    "rust-std-1.37.0-x86_64-pc-windows-msvc.tar.gz": "e03f363296cd60e93110db517f3804631e49fd91de7c0d77b229e31b1135dff2",
+    "rust-std-1.37.0-x86_64-pc-windows-msvc.tar.xz": "13a48333bafd14396e712c148238cc123f7a38cebd1752abbf229c8783be0d3b",
+    "rust-std-1.37.0-x86_64-unknown-freebsd.tar.gz": "8783a667ea9c46f27027d494098c51563faa734c5ddb23c6b9b3eda804eb9742",
+    "rust-std-1.37.0-x86_64-unknown-freebsd.tar.xz": "262d294a1b71712118c14acdd43198ef958a5e95ba5da0b3b46153a8e959cb22",
+    "rust-std-1.37.0-x86_64-unknown-linux-gnu.tar.gz": "09a531a97a16701eb794ecbeeded5d8f8da33da7f1bd372661ad385e3f31c048",
+    "rust-std-1.37.0-x86_64-unknown-linux-gnu.tar.xz": "f8090dbd8a2dda674f8832f7999758b248028453465bf83f797569e28065fdbc",
+    "rust-std-1.37.0-x86_64-unknown-linux-musl.tar.gz": "fa1d98bf18fb49ff58a70d51ff7924e4d1975f7812dc5217ea31652bf8b7bca4",
+    "rust-std-1.37.0-x86_64-unknown-linux-musl.tar.xz": "985d511eb43c1083f5961c0dfb953cd01c0818a7200593fade278cde7502f836",
+    "rust-std-1.38.0-aarch64-unknown-linux-gnu.tar.gz": "0725ae9f55639c648fdaba06129de395ed839a7d1aab6aebfd21f26cbe1ce7ca",
+    "rust-std-1.38.0-aarch64-unknown-linux-gnu.tar.xz": "b931843898b0457fa92b8ef1521ff460bef525451ed786897cfaa6f7baed4105",
+    "rust-std-1.38.0-aarch64-unknown-linux-musl.tar.gz": "56268f0c7c93a4f3436aa20af75e80e29e7d651c754b076c64f13219f2e6be8a",
+    "rust-std-1.38.0-aarch64-unknown-linux-musl.tar.xz": "34f231f10309e120f30a8382ffe978916ccdd586b7841561890a0ee2cb89e178",
+    "rust-std-1.38.0-wasm32-unknown-unknown.tar.gz": "9634130c797e8c1fd1d7bbdfd48a32e85e2dd3512ffb2b51974374308cf581cf",
+    "rust-std-1.38.0-wasm32-unknown-unknown.tar.xz": "5c831d894e50f847c1be3b8cf437bc479cac6b688cfa4517f11ce5dbc26dd60c",
+    "rust-std-1.38.0-wasm32-wasi.tar.gz": "becb178cecc2d2137e006c24e6988d79390f96dcd65cc2e8b2f475a8fdab4bfc",
+    "rust-std-1.38.0-wasm32-wasi.tar.xz": "5841289d775e26065780ee23fee3773d00f98cab3b7868a934a70ccba6b4efe2",
+    "rust-std-1.38.0-x86_64-apple-darwin.tar.gz": "b1a986e8676aaed25959e9f6dd7c8c5aa67fb829d0d694edea34d8169658a125",
+    "rust-std-1.38.0-x86_64-apple-darwin.tar.xz": "e1e7c617cd7ce655f20bc737e6832a01eefb19dd9163f6957317ee376aa4dd64",
+    "rust-std-1.38.0-x86_64-pc-windows-msvc.tar.gz": "3f5b3c9a4f9015c9e1e12eed94752129d80448ea53f9d5ec1e332c2ffa2c4807",
+    "rust-std-1.38.0-x86_64-pc-windows-msvc.tar.xz": "3b7d5c47ee35078e18d780872f2d8116f7068e33ab868531a9d5ad1cf4edbdc5",
+    "rust-std-1.38.0-x86_64-unknown-freebsd.tar.gz": "9f1d88449ef56c31ebc514873ba4d5889fa12697c4c2ea1071f15127f301ac4d",
+    "rust-std-1.38.0-x86_64-unknown-freebsd.tar.xz": "f01d0f7bcfe07ef363a4ae74058e3d9570a2bfdaa1f01db615d8f5a219e59d4b",
+    "rust-std-1.38.0-x86_64-unknown-linux-gnu.tar.gz": "cd50ec3384d79aae89ffdacf09715b68b1b5562657e993f26f67b9458e92dfdd",
+    "rust-std-1.38.0-x86_64-unknown-linux-gnu.tar.xz": "51b334337804baeff7524e5496d396f254894d7529860d236975e9ed8fcca371",
+    "rust-std-1.38.0-x86_64-unknown-linux-musl.tar.gz": "56b87fdca1f41b634285593cae42fdbd5fe9632ef502336679362b283ed53c22",
+    "rust-std-1.38.0-x86_64-unknown-linux-musl.tar.xz": "efcc1779f9815c1d99010ef9eb66a2439f3993bc4d5accd7566e669d1b182373",
+    "rust-std-1.39.0-aarch64-unknown-linux-gnu.tar.gz": "adbecacf6cf0ed19df2496cc648b16192c0bd085d7e6f670edcea4dd28ab37df",
+    "rust-std-1.39.0-aarch64-unknown-linux-gnu.tar.xz": "f1d2072b1a8bb5a13f98c81275e1fe1d429c1a257ccc0715846029bae20fd4cf",
+    "rust-std-1.39.0-aarch64-unknown-linux-musl.tar.gz": "1d4a3640fa6e696180848ac2eb10ccc7904acac58784b27e5fcd8a79b2cdf0fa",
+    "rust-std-1.39.0-aarch64-unknown-linux-musl.tar.xz": "635788f77e005048fafbaa8f4b232e9a34bd912d2584a0c0b86449dc95a5249d",
+    "rust-std-1.39.0-wasm32-unknown-unknown.tar.gz": "654905b39eae031282a9db9bfa47504c23aa4bbc7d22b769b9bd2f6ca8b61cee",
+    "rust-std-1.39.0-wasm32-unknown-unknown.tar.xz": "0a4925fb0881b5c1cd19d43dd353a59d5be68c9f88aa2cf81a4e5f328a21926a",
+    "rust-std-1.39.0-wasm32-wasi.tar.gz": "e7f008fd1f7c902f5ba7777d8a4346783392bd40813c79381bd7497fbcf19be0",
+    "rust-std-1.39.0-wasm32-wasi.tar.xz": "dfbfc931fa0110a1c23803f40e5e0b664838813dd695329f9da908bd91893f6a",
+    "rust-std-1.39.0-x86_64-apple-darwin.tar.gz": "ebd058b16590e2c1a73f5de59d169c8c11be6014934cb083afc84accdccd40d9",
+    "rust-std-1.39.0-x86_64-apple-darwin.tar.xz": "791c4c8bcd24866bbc1a648b29fe2fdf13202d8de1bc8d2801f6bca57a5fc097",
+    "rust-std-1.39.0-x86_64-pc-windows-msvc.tar.gz": "cc704f4c26d5e215a8d98d0797a766fad959101776db69bb392317becd7472ea",
+    "rust-std-1.39.0-x86_64-pc-windows-msvc.tar.xz": "540d613cef1649c30ac8f5304b1010a92b161c2f68df44bc5e7843806856cc6a",
+    "rust-std-1.39.0-x86_64-unknown-freebsd.tar.gz": "94a71addd6983ae844be1cd403926c947766b72f032a083fd1be73f18cf329d9",
+    "rust-std-1.39.0-x86_64-unknown-freebsd.tar.xz": "7015a0b0a991af19b0a7d0cbb1b0e2aae612a19cf2a4ab9cdb49f91f9e443201",
+    "rust-std-1.39.0-x86_64-unknown-linux-gnu.tar.gz": "2ddad802f048acaa5cd48f1105c18c7f4de32dc9569ac4d64bfcbb3d8c155cb7",
+    "rust-std-1.39.0-x86_64-unknown-linux-gnu.tar.xz": "b629952ec9e3e750137d7b8a922de145c97c1dc372dd616e86e4e501da13910b",
+    "rust-std-1.39.0-x86_64-unknown-linux-musl.tar.gz": "9c6b49e161e53c174b4fd46825a96b78854cfbcd0971ce846d4edd33c2b5f275",
+    "rust-std-1.39.0-x86_64-unknown-linux-musl.tar.xz": "4ac886aab08eae7c67edc0be3ffd808a0a6fa599b9aa52f52f0a48fdb8b56435",
+    "rust-std-1.40.0-aarch64-unknown-linux-gnu.tar.gz": "e1a1bc577d51556c53e39d4f11fb4918f0ebf27e166ff63321b2991754706d16",
+    "rust-std-1.40.0-aarch64-unknown-linux-gnu.tar.xz": "1abd1865e8339c2cac6992a11f6f98b66fa2b97f67acaddcf1992e39a7001bfc",
+    "rust-std-1.40.0-aarch64-unknown-linux-musl.tar.gz": "5a269c83446da52c824b3c2047d66540f524e79901ac09b2ac80900a692849dc",
+    "rust-std-1.40.0-aarch64-unknown-linux-musl.tar.xz": "18322da6c0e71b4df995e696abf0c1b58ff085bb68882ee352b04dfb48f49f33",
+    "rust-std-1.40.0-wasm32-unknown-unknown.tar.gz": "e3f68aa04c97fb8f5f595d47f417221afb4b0c49d177a2cde7935e3afdd45947",
+    "rust-std-1.40.0-wasm32-unknown-unknown.tar.xz": "466d478ac046996d12a75e58bd5c8ebed40e470530ef753b63519b5e363b15d8",
+    "rust-std-1.40.0-wasm32-wasi.tar.gz": "814d780d7296cc8a8969536f99e8b591fc68d9290e399f01c59cf86d32303718",
+    "rust-std-1.40.0-wasm32-wasi.tar.xz": "2d3ec95dd03a486e4c4af20fcb15376d93122ef63db839fb10bbf3da7546c1ae",
+    "rust-std-1.40.0-x86_64-apple-darwin.tar.gz": "1eff41b353403cc284a09debb00cfd41d663447eabf5ad2d4cf736c8c8db0458",
+    "rust-std-1.40.0-x86_64-apple-darwin.tar.xz": "e16802935ad4f2a52393482a2356ed977bc033e9761295fd396d68b49030fec8",
+    "rust-std-1.40.0-x86_64-pc-windows-msvc.tar.gz": "10685476cf7d68e56564730a7d553bacd924717b9272875219da7b9f5ad6704d",
+    "rust-std-1.40.0-x86_64-pc-windows-msvc.tar.xz": "63e295ce77496a060443828f7082a01721d73bdbc611ca6e2c0607cdfe338c93",
+    "rust-std-1.40.0-x86_64-unknown-freebsd.tar.gz": "90a41f80e2501ac2b036b7cdf269db19a5204aeec257bd585074508f1a6ba2c9",
+    "rust-std-1.40.0-x86_64-unknown-freebsd.tar.xz": "1573726506a89b14932e84575d99511d96724fd1eabfff25a9bbcb4c57235b12",
+    "rust-std-1.40.0-x86_64-unknown-linux-gnu.tar.gz": "735affaca1370699f9bc3fd7b1320694afd250923d283d88c842b7913a97d083",
+    "rust-std-1.40.0-x86_64-unknown-linux-gnu.tar.xz": "5a0b14a51f51b0194f70a2023749d9cb49c3b2e11f0d4c8232960b91fad336ac",
+    "rust-std-1.40.0-x86_64-unknown-linux-musl.tar.gz": "1183b1f698716409be6b48c8f98109723b5e9f5f2cab6c20f73d0b281c63aa80",
+    "rust-std-1.40.0-x86_64-unknown-linux-musl.tar.xz": "c647bb7f399b3d18e345b2dab1fb073470582a9298e83d8648f6661544df7279",
+    "rust-std-1.41.0-aarch64-unknown-linux-gnu.tar.gz": "59b8dab431af29dcd28c6e92e82a488ebb20dbb5dff93ca14119ba8e2fabd9c8",
+    "rust-std-1.41.0-aarch64-unknown-linux-gnu.tar.xz": "665fce8e4f955425a41bd2ce9b21eabbee15fd38ab8fafda42ca9edabd0bc403",
+    "rust-std-1.41.0-aarch64-unknown-linux-musl.tar.gz": "775a256864417d93d20ae106b775564051be888a78e77a6a88c67ac86e401059",
+    "rust-std-1.41.0-aarch64-unknown-linux-musl.tar.xz": "a931604d2bb9665afb2e333a2d2faf3e7d54ca98606ec83ef44c9980cf925396",
+    "rust-std-1.41.0-wasm32-unknown-unknown.tar.gz": "0974d40a9f54bd9dda88c20ffa1778fa90ee77a549a8f30ed13477b55e142a63",
+    "rust-std-1.41.0-wasm32-unknown-unknown.tar.xz": "bdffa7168b6f3f63fc34e950cc634e105000752170ceeb527980d9f4d32de228",
+    "rust-std-1.41.0-wasm32-wasi.tar.gz": "e50c63deae8a8bc81d438f73bc885e5de7fa282784171b53e3eebf8f41d8f7d1",
+    "rust-std-1.41.0-wasm32-wasi.tar.xz": "fad1a6709892d66d6e824c1e8c3020cbfcaf52de5f40ca5da46765a1a7636cb5",
+    "rust-std-1.41.0-x86_64-apple-darwin.tar.gz": "c917af985d879376d8906e7c81ceacb06e65ea7b229ccf81505f8bd6cf5abf64",
+    "rust-std-1.41.0-x86_64-apple-darwin.tar.xz": "663415cb4bca98876d0115ed475caebffd6f1dff3504f9bde81a167891d9e46e",
+    "rust-std-1.41.0-x86_64-pc-windows-msvc.tar.gz": "aee5b98f0ac533471dc3d9ffdf6fcb22565c44d80c03c1c4df0c8b714931d1a9",
+    "rust-std-1.41.0-x86_64-pc-windows-msvc.tar.xz": "dc969fdb62dbc7464f1e21e48ab36d6fef52b47be002ae6da699d7da6a442859",
+    "rust-std-1.41.0-x86_64-unknown-freebsd.tar.gz": "4436e80598592398724daf0efc33b2a6505bebde59c021d3e894d605ae5255dd",
+    "rust-std-1.41.0-x86_64-unknown-freebsd.tar.xz": "c21e3d50458e8a78a5ae93658c2a7c9cbd7ea819d70a03194152f8b85ecf7de9",
+    "rust-std-1.41.0-x86_64-unknown-linux-gnu.tar.gz": "b563fc979eea8372f5b371e10f0857e79cdffc34b124c7a7b0d89014d1b351b7",
+    "rust-std-1.41.0-x86_64-unknown-linux-gnu.tar.xz": "29c52cc00339881886bd18e18a4d1c6512836773cd31cc6135302dcc3376d3b6",
+    "rust-std-1.41.0-x86_64-unknown-linux-musl.tar.gz": "6df5f52b7acb58d2123f2a6596741ae1857921ec747087bbd0b0cdf4cec5e369",
+    "rust-std-1.41.0-x86_64-unknown-linux-musl.tar.xz": "a889280bcac58eef42d18168e318ca7da9b7946abfb5993ed282f5f28027ce04",
+    "rust-std-1.42.0-aarch64-unknown-linux-gnu.tar.gz": "1343f51fc87049327233cee8941629c3d7dfdc425d359385f93665de3d46711b",
+    "rust-std-1.42.0-aarch64-unknown-linux-gnu.tar.xz": "9d88ebdbd49d92887d6830b17f341ed7c2a043ecf7dc781ced2d9855d069f94f",
+    "rust-std-1.42.0-aarch64-unknown-linux-musl.tar.gz": "77dd67761c8e2e17aaa837b714ddb9dd4433272b6b2980fa327faf23a6fc5bc1",
+    "rust-std-1.42.0-aarch64-unknown-linux-musl.tar.xz": "213802d9c34d6763594d60033b98cc12890b2a933fae10ba4c055bc40da2545a",
+    "rust-std-1.42.0-wasm32-unknown-unknown.tar.gz": "695439ef4099f2a1da7c9932e556b3985f4ede5b27e6ef260d670bfe4bc3894b",
+    "rust-std-1.42.0-wasm32-unknown-unknown.tar.xz": "1454b1c096e0ec03d08e63e173d11bacfaf6995830f1d9ce2128e08036166075",
+    "rust-std-1.42.0-wasm32-wasi.tar.gz": "077bb250b6df47f1350ea875645fd388d3e6df69830ab49627fe6f6bea5887ad",
+    "rust-std-1.42.0-wasm32-wasi.tar.xz": "1901b7aa76cb42a64947847f1f5798fb910fa82e5757bc315bb64bfa34057a38",
+    "rust-std-1.42.0-x86_64-apple-darwin.tar.gz": "1d61e9ed5d29e1bb4c18e13d551c6d856c73fb8b410053245dc6e0d3b3a0e92c",
+    "rust-std-1.42.0-x86_64-apple-darwin.tar.xz": "3adc66e6a87e4008c681be27e5cfb079a69ebaece9476913b65cd05c660e7f12",
+    "rust-std-1.42.0-x86_64-pc-windows-msvc.tar.gz": "192d8e1277280df261bc917d1dcc8225b5fb507f281d05bbcf85f859679e1429",
+    "rust-std-1.42.0-x86_64-pc-windows-msvc.tar.xz": "e762cf107de469ca74dd2787b3b754b729497ae84f52526dc9f1ee52c00c7b66",
+    "rust-std-1.42.0-x86_64-unknown-freebsd.tar.gz": "76e0f0f7275e114908b0ce2bf39813eaa580af92cc1fab31496ca37ba9d5703e",
+    "rust-std-1.42.0-x86_64-unknown-freebsd.tar.xz": "373126721383753443d0d393b6645f2628de3ea45345e65ac746daf74aa085e2",
+    "rust-std-1.42.0-x86_64-unknown-linux-gnu.tar.gz": "e6bf5495a8b1cfb849fce2753404b3b7ce7fba0c5d743d940fac3ee4558fda26",
+    "rust-std-1.42.0-x86_64-unknown-linux-gnu.tar.xz": "21405992fa02411a7a5bbd88e8218cd3e4609fe18bee687bb5ad6bab81e3f783",
+    "rust-std-1.42.0-x86_64-unknown-linux-musl.tar.gz": "c426957a3f2e3d51ee91b996c2c6b21a10d4ade7fb6b7c64d6e2f7100b6b994a",
+    "rust-std-1.42.0-x86_64-unknown-linux-musl.tar.xz": "f429e81c3266bdcc038b6c2c2e5f51c64f75a85b46749e2cf5b93556f17b63a1",
+    "rust-std-1.43.0-aarch64-unknown-linux-gnu.tar.gz": "f4b80b12ecf14e97937cd24573e82f306f147db6266dc5a2cb27aaeaf49398a7",
+    "rust-std-1.43.0-aarch64-unknown-linux-gnu.tar.xz": "5feb424fa10ac8c850d2eae5228c88262bd14eccfaf1c10e70e74d71a7c22088",
+    "rust-std-1.43.0-aarch64-unknown-linux-musl.tar.gz": "5cc80aa5b5cf6dd40a5252de6c2d2cceebd930b80b02bdda7442f93ed6539a55",
+    "rust-std-1.43.0-aarch64-unknown-linux-musl.tar.xz": "f47b8fbc71b15b46985efd2d69325f497d1e88f2e6ff545abf7b9a8ece08c7a0",
+    "rust-std-1.43.0-wasm32-unknown-unknown.tar.gz": "efe2061e7b9711f51b560c7770ebe372003beb9beddb363f27c3960ee12135cd",
+    "rust-std-1.43.0-wasm32-unknown-unknown.tar.xz": "c2fe87ec1396e76c55112072bb3c6d96dd47b2e5ea6cf5031017a93e1ce80267",
+    "rust-std-1.43.0-wasm32-wasi.tar.gz": "6ece090d05853a54bb7f6e4985840cf01dc4857eda0f375bc8e35846d1d533e9",
+    "rust-std-1.43.0-wasm32-wasi.tar.xz": "2b58bb11fd05abf32989e8acb474741072da915892e90c89cfc2bcf04aa87ad7",
+    "rust-std-1.43.0-x86_64-apple-darwin.tar.gz": "c75d37579b9e143ebd98ae2fe42c818fd47e0a2763b2a9bdd7e6b9954509d735",
+    "rust-std-1.43.0-x86_64-apple-darwin.tar.xz": "58320be75a746bb4365acaf61536a062ba256aafc55a3ec25b9b3896774b6a4b",
+    "rust-std-1.43.0-x86_64-pc-windows-msvc.tar.gz": "008ca995f429410248558cbfb0e77ebd062ca709a9e3a7d58d9f81c491395280",
+    "rust-std-1.43.0-x86_64-pc-windows-msvc.tar.xz": "1932903095c6295fc688511cabfb996cb231e487bb0aafe657d99362c2779935",
+    "rust-std-1.43.0-x86_64-unknown-freebsd.tar.gz": "3c9b450b826874be5c3f35f7cb923f02d4769b81f763fef21c9c0d3a80532c2c",
+    "rust-std-1.43.0-x86_64-unknown-freebsd.tar.xz": "fd8ed608f3707a832b5c156e1f66ec3eb12edb4f17a47b499120bae87b6858bd",
+    "rust-std-1.43.0-x86_64-unknown-linux-gnu.tar.gz": "84fd8ddaaa217b82c563d4a32a690da2c399388258a3d2baf180992c21938af5",
+    "rust-std-1.43.0-x86_64-unknown-linux-gnu.tar.xz": "e6ebb6a7ae80c297eac1bbab50864c030886b35b790220ced100be5e697688aa",
+    "rust-std-1.43.0-x86_64-unknown-linux-musl.tar.gz": "496efe781a68c1ad75bb16e72b383fdcb9bf28ce448019dbf1ab4742fd4d4299",
+    "rust-std-1.43.0-x86_64-unknown-linux-musl.tar.xz": "423e2b86f31d6a9c692941f04b88a6b69a33a04a61bfe8ccad42fe370e6a8cac",
+    "rust-std-1.44.0-aarch64-unknown-linux-gnu.tar.gz": "fafb49cc7264a8621c17e8954ec2e0a78e097395b285edb5c1639c61ffb8142c",
+    "rust-std-1.44.0-aarch64-unknown-linux-gnu.tar.xz": "d56470b407758bff8c0f1427d1dd494eb956f5c99bd388bed091cccd1c77c2cc",
+    "rust-std-1.44.0-aarch64-unknown-linux-musl.tar.gz": "b32ccb5a8bf7c3ba9e7295e2986acad87c0eab9eff98a98f4dd3eaa4c8b74405",
+    "rust-std-1.44.0-aarch64-unknown-linux-musl.tar.xz": "6bde29458184c9395fcfcb5a362234b083c4457abc0d086b731d76968b488d2a",
+    "rust-std-1.44.0-wasm32-unknown-unknown.tar.gz": "8e12796a0c2fb083953042218f832bdeb78da1bfaf67b9dfe3d719920084d755",
+    "rust-std-1.44.0-wasm32-unknown-unknown.tar.xz": "a061697d4b2db714b783b7977ce3a8c1a5dda0457201d3012100a8aa490ac31d",
+    "rust-std-1.44.0-wasm32-wasi.tar.gz": "ac0ffeb48bd4be6dd460c5665fc52bb4da2be15e5ecdefa4bf73c6db7392759a",
+    "rust-std-1.44.0-wasm32-wasi.tar.xz": "6c9f8c3d5769d06feb7c9b9228d0e2e9f9e1c306205986609cf15fe066d0fcbf",
+    "rust-std-1.44.0-x86_64-apple-darwin.tar.gz": "af58f742764949765e09bb60bd1c16025a79a1be8152996fd5b3a44e5df90311",
+    "rust-std-1.44.0-x86_64-apple-darwin.tar.xz": "dce598542c14f57706420fa865d4ef890e14967454a40525b68f89bc81032707",
+    "rust-std-1.44.0-x86_64-pc-windows-msvc.tar.gz": "1f52376c9a48ce76b24c7aad7a9817b0b4b2cf11a8581001c8d76285d9593340",
+    "rust-std-1.44.0-x86_64-pc-windows-msvc.tar.xz": "9257383136ddbd4b5dbc4e1cf569132db2a3d9cfe0d300603fcd5aa1e52b9c2d",
+    "rust-std-1.44.0-x86_64-unknown-freebsd.tar.gz": "a0315d028e72e221291dba257e8212e564574d87362cb07e06dc15950d1e6788",
+    "rust-std-1.44.0-x86_64-unknown-freebsd.tar.xz": "37698332f103ced3751e3427243330adc01548b84bfc5a9146ac8ad82fe100c6",
+    "rust-std-1.44.0-x86_64-unknown-linux-gnu.tar.gz": "3b7a4eede0ca550c256ca6721877de0154c27e71196d8b9a980a480682ead0aa",
+    "rust-std-1.44.0-x86_64-unknown-linux-gnu.tar.xz": "122b2a909fc185c6ae5a0110af6f60699f4332b4fb3c43698b14a873fbe65b6e",
+    "rust-std-1.44.0-x86_64-unknown-linux-musl.tar.gz": "220877112bc1dafdaa1760c3d1c5b3529766faaa1e969d1a99d27648d3bf927d",
+    "rust-std-1.44.0-x86_64-unknown-linux-musl.tar.xz": "ff43c33836d5a56ce8089f8a0b101cbb12f130374e9631acdcc00f5f051f6429",
+    "rust-std-1.45.0-aarch64-unknown-linux-gnu.tar.gz": "816f6cc132db84617bfde6ad47336bfb020552a45bd0a10250c4e420d512d5ad",
+    "rust-std-1.45.0-aarch64-unknown-linux-gnu.tar.xz": "74a6d33ee80421b261c0e628ce26b90a6c65be37cc130619a9aaae52e7b3bb7a",
+    "rust-std-1.45.0-aarch64-unknown-linux-musl.tar.gz": "c37bb023f496161ef3238f37b44606a93e15af225d70d3083bfd52e7f8fdd36a",
+    "rust-std-1.45.0-aarch64-unknown-linux-musl.tar.xz": "4c89ba61bad1153a79a2a64c6a6e855d2387100643da59f791286993eab29b12",
+    "rust-std-1.45.0-wasm32-unknown-unknown.tar.gz": "1b4f40be1d0f18a5a04f9f706fef74db0e299046557a706a4dc31a2b36d8de21",
+    "rust-std-1.45.0-wasm32-unknown-unknown.tar.xz": "d61862d9eb437e0cb08ab6a8d6cfb225d9446fe9f35a2d27b7ec36045bb7d12f",
+    "rust-std-1.45.0-wasm32-wasi.tar.gz": "1ef0e8e09ad39275a188bc88d4969c4d1e150cd728d9ff5955b42d6a643ac10c",
+    "rust-std-1.45.0-wasm32-wasi.tar.xz": "32a464d2f89a5e761d5dd91786c31b55782aba9d595a02526ef9850f3e6a513a",
+    "rust-std-1.45.0-x86_64-apple-darwin.tar.gz": "e3ac5a3efc106ea13687aa1231609a5d61b1874f4b3a2f68b0e0ad70c89a2364",
+    "rust-std-1.45.0-x86_64-apple-darwin.tar.xz": "6cef5e88f7d7b60c98b51be40e5f19ff842d6c01b423471b7e3df81b81ba4a00",
+    "rust-std-1.45.0-x86_64-pc-windows-msvc.tar.gz": "f638c04f6709382ded2e78aebff03ae5e40e074d003786f083e6e3ccc438e0b5",
+    "rust-std-1.45.0-x86_64-pc-windows-msvc.tar.xz": "9e3b4b79477470c21fec64b1c5aabf800f14b6a90f267a7fedaf4055a2a7f05d",
+    "rust-std-1.45.0-x86_64-unknown-freebsd.tar.gz": "68b28ad5488bfb051589c7079bdfa396aa42c29d463a5622fb5eb9d6ecc4a8e6",
+    "rust-std-1.45.0-x86_64-unknown-freebsd.tar.xz": "319304331b92f96f57a56ec3c662d5be97c58fe037f3087ba442f46d9b1e8bd8",
+    "rust-std-1.45.0-x86_64-unknown-linux-gnu.tar.gz": "7ab1dbcdeab16dfea1ed024675e60429db9719f03648e6a09662de72b4ff730f",
+    "rust-std-1.45.0-x86_64-unknown-linux-gnu.tar.xz": "f3e4dbc0787d0ff2597d2d9c1a406abc45626c3331791c360c79b06a4cb9b89c",
+    "rust-std-1.45.0-x86_64-unknown-linux-musl.tar.gz": "f54b23b39308b6049644d0c8ac625724911ab423d09ed43dcbc52489b7636ea7",
+    "rust-std-1.45.0-x86_64-unknown-linux-musl.tar.xz": "a25e0dc17b3069fead0f0d7e9327e4a1fe46d2d5afd345b99e5fbc94fba0f7b4",
+    "rust-std-1.46.0-aarch64-unknown-linux-gnu.tar.gz": "eaa7cfd73e96b6ce03498398f4bd9ded73870fe3c5db980038a4863c37157597",
+    "rust-std-1.46.0-aarch64-unknown-linux-gnu.tar.xz": "bfd00a780928a511d36acc50dc6f7e41fa040dc2f6fe7b085e323de38921c63c",
+    "rust-std-1.46.0-aarch64-unknown-linux-musl.tar.gz": "5ad254082e3af2d301d3dd2c9af90942cb91eecb293f86778d163a75cd6bafd1",
+    "rust-std-1.46.0-aarch64-unknown-linux-musl.tar.xz": "15945f2685bc7ef67c51fef7dddfaa6fa569ff88ddadcff28f96924f97236750",
+    "rust-std-1.46.0-wasm32-unknown-unknown.tar.gz": "0ef3344aff8ae3f2065ed8f15daa73514a26f934e160cb6974d43a8231fcc090",
+    "rust-std-1.46.0-wasm32-unknown-unknown.tar.xz": "63a1d33353350f99d38e2f673172d0cdee83a8acd34158a9128baec0b90ad3c9",
+    "rust-std-1.46.0-wasm32-wasi.tar.gz": "44a37dfe4398e1c120a199b2ebbe86838171c38a29a0f76e10ede00bf1aeb16f",
+    "rust-std-1.46.0-wasm32-wasi.tar.xz": "39284a6f50b786e5bba932fb98597426dfe29a42ec8ca34acadf9f98ad84db73",
+    "rust-std-1.46.0-x86_64-apple-darwin.tar.gz": "8c897982bc38c9528b448fe551f089fee7716e692dece98052f4459ccc6e591c",
+    "rust-std-1.46.0-x86_64-apple-darwin.tar.xz": "d8a36dc0e7baac0631a3ebd00348c1daf14cb58a6c39eb9c99906ce82a0fe6d8",
+    "rust-std-1.46.0-x86_64-pc-windows-msvc.tar.gz": "06d92b12e2f4e6024971e99a7716423d4738c3e379fc82aa54de2a812de268b2",
+    "rust-std-1.46.0-x86_64-pc-windows-msvc.tar.xz": "745d37074a6b9f90527392e986b7fdce6085c9666af6617a196674e4a7d2032f",
+    "rust-std-1.46.0-x86_64-unknown-freebsd.tar.gz": "e37c06bbe2bf2501675101787388ab87d510ef80f2e091be3f50fc5d019add1e",
+    "rust-std-1.46.0-x86_64-unknown-freebsd.tar.xz": "4b968e65f58b8f5e48848fa77546c0304f36c85a56f52d40e1d9aff819a9637d",
+    "rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.gz": "ac04aef80423f612c0079829b504902de27a6997214eb58ab0765d02f7ec1dbc",
+    "rust-std-1.46.0-x86_64-unknown-linux-gnu.tar.xz": "e631d80cb03539769c041ee4566e94e36a271d4b3cdd149e1447d1f77fda979c",
+    "rust-std-1.46.0-x86_64-unknown-linux-musl.tar.gz": "cc28b7807ceeb5a7f162edb933d825ed5f5880a45a2e920e1f1a846bfdc1b1a0",
+    "rust-std-1.46.0-x86_64-unknown-linux-musl.tar.xz": "9e7107082c5b47b8931f65d5d6a9c97b1540e67533a2e69f480d9d83e8d05d57",
+    "rust-std-1.47.0-aarch64-unknown-linux-gnu.tar.gz": "0019c302a0a02d8a9e40c3bcdd5a31b9b2704161563d72df3572521989182b0c",
+    "rust-std-1.47.0-aarch64-unknown-linux-gnu.tar.xz": "b471f3b984fcf90cc21eb1e4833435d586941fbb434fe5007a6f2898a32698d3",
+    "rust-std-1.47.0-aarch64-unknown-linux-musl.tar.gz": "69e27f17038a4eb99fe43781f0ca6432f64802bb24fd08fd4f2b90dc73987396",
+    "rust-std-1.47.0-aarch64-unknown-linux-musl.tar.xz": "cbbefc40e1b48c710954ed4d202e967ad2221ae9f792c2af6a0270669eb44689",
+    "rust-std-1.47.0-wasm32-unknown-unknown.tar.gz": "b0d19ceb2b56105ee3407bdecaa779747abb1574990632e53a2aba681e964187",
+    "rust-std-1.47.0-wasm32-unknown-unknown.tar.xz": "cfe9005d306997342b548db84f89c375b81ddda5bc384a4e5863a93cf43e423e",
+    "rust-std-1.47.0-wasm32-wasi.tar.gz": "0eab479faac83b9352af04ba4dea376fdeade3101f5e912f40ee3c93e32d1317",
+    "rust-std-1.47.0-wasm32-wasi.tar.xz": "224affcfdbb78bf67966130b891c83798ef9b6dcbbff992578fc2492494e3fae",
+    "rust-std-1.47.0-x86_64-apple-darwin.tar.gz": "6b86bcdad5a6eff87a67b6387051d7f10a48e088b8f92d76869d201500b9ce13",
+    "rust-std-1.47.0-x86_64-apple-darwin.tar.xz": "248c4b2a34b8de34505c136e99bcd19029ab0791cc6acd5d55beaa74bec57095",
+    "rust-std-1.47.0-x86_64-pc-windows-msvc.tar.gz": "896614728a21128c335f632f2f45217320974f71cb4c7c23184610f0b587b7b5",
+    "rust-std-1.47.0-x86_64-pc-windows-msvc.tar.xz": "583888a4f73ccacaa517496978e9559c897611383ff794b9376a3d5343fe2897",
+    "rust-std-1.47.0-x86_64-unknown-freebsd.tar.gz": "80f5dee782bd74b41c55a676c624ce2260ab54c834102c90ea54e0c5e7e513c6",
+    "rust-std-1.47.0-x86_64-unknown-freebsd.tar.xz": "6770420e5b55a8a7c665000479009f96bd2065ffa92705a12bcc75d931aa545a",
+    "rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.gz": "17ecad27d96b331608e4a96dfa3cad05ccb2ccecb888894ed35054e0d1f5207f",
+    "rust-std-1.47.0-x86_64-unknown-linux-gnu.tar.xz": "a469db59f7df3a5e4003421d853b274e828b537d2d56fd5ce6bba8ba73266f02",
+    "rust-std-1.47.0-x86_64-unknown-linux-musl.tar.gz": "fe4d2ee953979abd09aedaab25fa2ab646089caa6fd4ea9c78486a819729d777",
+    "rust-std-1.47.0-x86_64-unknown-linux-musl.tar.xz": "11a181846bbc56b42f2142cc5517dc084e12b9147b215a55056fc70274f643da",
+    "rust-std-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "3b0e5c4d03ddb97cd462947c539005427813f5ba91be81888db77e7d4bf36e45",
+    "rust-std-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "3a50eeb64a63a09f79bee49e01f72410d455b9ae1c7f07ebdb6dc0d40e9aa0bc",
+    "rust-std-1.48.0-aarch64-unknown-linux-musl.tar.gz": "29be0b241bd14651bf9d470a9766000b424a112a0b4a6160f422b075e4668c4c",
+    "rust-std-1.48.0-aarch64-unknown-linux-musl.tar.xz": "f5510d5d7c0112c3837380051ec24e6e4836bdad66848af2d75452e83b2e8567",
+    "rust-std-1.48.0-wasm32-unknown-unknown.tar.gz": "6f981b353e096b8a54c86e6812c82db3b5fd45335b575396e3bfc29b03ffe959",
+    "rust-std-1.48.0-wasm32-unknown-unknown.tar.xz": "7d06858530e6a3a4292034083a71075bb2f354ea7a66e946b4d834466454ecb1",
+    "rust-std-1.48.0-wasm32-wasi.tar.gz": "ed57645e5fe429ef99018759e1a89e090220a3197f30ea544070610ef73c19aa",
+    "rust-std-1.48.0-wasm32-wasi.tar.xz": "28f2b3ac9f1ebeed0c3036a069b443be2f9bd2146331eea4f6f7fb5b63db034b",
+    "rust-std-1.48.0-x86_64-apple-darwin.tar.gz": "430d0ca7c04b0e1140f39f2274e0072a3ba2373a99a230d14ab16361e19b6129",
+    "rust-std-1.48.0-x86_64-apple-darwin.tar.xz": "0d8af65d6966e4c53b702571ad903074a8c10490cc5499058685829f0759bc8e",
+    "rust-std-1.48.0-x86_64-pc-windows-msvc.tar.gz": "a526c6f6c00d6a0cd4b6e3348e6329d204099983672862249593ba932b5ddf28",
+    "rust-std-1.48.0-x86_64-pc-windows-msvc.tar.xz": "cfe7ebfcf55bbe53d042cf2836185eaf84274af7979247fff83f2db3a505cf3b",
+    "rust-std-1.48.0-x86_64-unknown-freebsd.tar.gz": "a5ea4ec9664f38a2464216031eeea01f723b4e0691f7d473d8f7ab663551f979",
+    "rust-std-1.48.0-x86_64-unknown-freebsd.tar.xz": "d36bfaba851e6729e503e89862d66151c26a6f7d931106f67c583c6221f2dce0",
+    "rust-std-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "2e7152e5d24cea7e44e6645ebbc0387cbe1c7059b54d95d8ea3afe298ac8b2fc",
+    "rust-std-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "1c00a6a0dabbf6290728b09f9307d9fa6cc985487f727075c68acd4a600ef3f8",
+    "rust-std-1.48.0-x86_64-unknown-linux-musl.tar.gz": "1bf2a0cfaa3e0cf8f743a48802c91d641a3289dffa1c44d7dc5365b68c8739c4",
+    "rust-std-1.48.0-x86_64-unknown-linux-musl.tar.xz": "4f485d8800f90898705686b873765a4c0fe909d1127d5b091a01979bc32f01c0",
+    "rust-std-1.49.0-aarch64-apple-darwin.tar.gz": "cf3308806fc3b6fe00ce49f1e63b1cb1d1443cc812eff7947257f31f590465d3",
+    "rust-std-1.49.0-aarch64-apple-darwin.tar.xz": "509cd5d0faa216c468664ca7e0c89be70a7699080f6ee4c8ec7270302331e43f",
+    "rust-std-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "c58bd4f0738ff662f70e35c19bfa6b8eb12ad54b0fbdce32ee3e50186c04a969",
+    "rust-std-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "69c9a3d56fe8fcbb74b9885e451dd387c9316513a0da8f618dda066597011256",
+    "rust-std-1.49.0-aarch64-unknown-linux-musl.tar.gz": "bc5501347598f48f55ba23011602a8fc1fe156c23c1c7b4d449c84eddd64d4ba",
+    "rust-std-1.49.0-aarch64-unknown-linux-musl.tar.xz": "3e2ddbe6d0683b93228467663a2ba2f80f588fe0cee267d73308be8eeb0b43ff",
+    "rust-std-1.49.0-wasm32-unknown-unknown.tar.gz": "803b4bd43c711753e3e73c210b88a30c4cfe6f3955902d76e2a15a70ad191ffd",
+    "rust-std-1.49.0-wasm32-unknown-unknown.tar.xz": "75695161842c04846107d4e2ba880c45ee4a41fcfe95e962fea9897eb4f34aa0",
+    "rust-std-1.49.0-wasm32-wasi.tar.gz": "0c97a1f8470719b741186cbb89c4be6a61057fa013d815b2b97fc1043e269d22",
+    "rust-std-1.49.0-wasm32-wasi.tar.xz": "c01f9ee262f550f51ffe19f9253453d93bef0f1f02e2ba391fada02c54dfd09c",
+    "rust-std-1.49.0-x86_64-apple-darwin.tar.gz": "c4389a8534b8da3ae3570646d68fea9a25268b17ed138867e31d4517312759af",
+    "rust-std-1.49.0-x86_64-apple-darwin.tar.xz": "d064ec56f8d4f880098922dbb34642ccbfa7cba0d333bd924215d202e0f0cd95",
+    "rust-std-1.49.0-x86_64-pc-windows-msvc.tar.gz": "bb55ad626b9d304c0e080fc8731c7978a937c98e873a84834925c525acdbb5e3",
+    "rust-std-1.49.0-x86_64-pc-windows-msvc.tar.xz": "240cce33f8704d161ca00097f2faecb7cc0ffc00cef7f94fad592e3853bca9b4",
+    "rust-std-1.49.0-x86_64-unknown-freebsd.tar.gz": "ba97f1d751d6656d5efba4b0278a6571e6a56a489670f279bd2c647a90f1679c",
+    "rust-std-1.49.0-x86_64-unknown-freebsd.tar.xz": "6ba34f59ef2ee0e2f0160e13724dc6c66b0a4926c4db464d7f182102771a90b5",
+    "rust-std-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "f0d2c2d509c29ea9f7c24bb5a885321030281631e0bde0714e5cf881184d57e2",
+    "rust-std-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "638c3983ad20f9b9e1f49da1c64ac681eec5cf705fee1089f052de4c09b05c2b",
+    "rust-std-1.49.0-x86_64-unknown-linux-musl.tar.gz": "07d5ebdb6c391631c168deea21c7f4d538ea93c86c2e5e1968508e90835c14e9",
+    "rust-std-1.49.0-x86_64-unknown-linux-musl.tar.xz": "1b6ec104ccfb0b782de4b73d460db22a6b7ca495673d548b1e8554cddb97facf",
+    "rust-std-1.50.0-aarch64-apple-darwin.tar.gz": "8a1cda91afd3a732d3737b6f933b0b6065949dd8fbc820245a7e2a97ae9a7711",
+    "rust-std-1.50.0-aarch64-apple-darwin.tar.xz": "975b3e25c09c2817c1681e7db647c72bf4f65b5dc3a764d5d5ff2ba4a93eabb5",
+    "rust-std-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "83aeff923faa528e2ff5b582e4c3bdaefeda34078345e48878eba6ef95d41040",
+    "rust-std-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "1a1b1a540d531c89e866083f84ef67125dee108844e4e415b07c3a1000006544",
+    "rust-std-1.50.0-aarch64-unknown-linux-musl.tar.gz": "fbfa90f58d9c96f91937666ff2495345f564955442109833189ab7dbb0facd89",
+    "rust-std-1.50.0-aarch64-unknown-linux-musl.tar.xz": "9f47e009bcba5fe5ae871106a02dfde033674796ef93f22a7f3c1dc19fd85b50",
+    "rust-std-1.50.0-wasm32-unknown-unknown.tar.gz": "6b639eb5b07e1fee82e58e4fb74b2f40f5c76b02384d27f9675692a7e9656bf6",
+    "rust-std-1.50.0-wasm32-unknown-unknown.tar.xz": "5468ae3ead6459fceb66473eaaa0beb4f68977c9491cf25f86daba05565667ea",
+    "rust-std-1.50.0-wasm32-wasi.tar.gz": "205216840a1c286523342adc5c085819e8a4fc6de55efbfb70dc691a463fd8fb",
+    "rust-std-1.50.0-wasm32-wasi.tar.xz": "25717eaa844ec325983fc5792624d6a63e70989697b0f57dff9bd31913870ba3",
+    "rust-std-1.50.0-x86_64-apple-darwin.tar.gz": "a291354e78e8147b22e92c817a0dfee8d3342e07bfafa73a2904a1c99d22c5b8",
+    "rust-std-1.50.0-x86_64-apple-darwin.tar.xz": "5f7dd6bbe551195e1c8b09921e4712f80adb26bf03dc7b19f0533049c7ddc500",
+    "rust-std-1.50.0-x86_64-pc-windows-msvc.tar.gz": "48e562e1de58bd45aa0d8a95173e159c588ee76b0164affdc0140c928b1994c1",
+    "rust-std-1.50.0-x86_64-pc-windows-msvc.tar.xz": "2abfda2e94bd0dcd541d6ca6c8f46fba5b12571c404c3b144551506c50296992",
+    "rust-std-1.50.0-x86_64-unknown-freebsd.tar.gz": "b9b543a310adef1e8432f7edea63b684369b30dad1c30aa12a57ccdaf8ae0224",
+    "rust-std-1.50.0-x86_64-unknown-freebsd.tar.xz": "09ac8e9e3efd6e5d1a833fc693e22204d33ed1a7e1a613f78be826520c12222e",
+    "rust-std-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "2aaf284a204d605f6685d2000cf83c25d0e1c789093009801ca16e1c659ae8c6",
+    "rust-std-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "f1eb68db2b28a56ed8701edba7cf3688011d903ca12ff9d85bd21d3f8f614792",
+    "rust-std-1.50.0-x86_64-unknown-linux-musl.tar.gz": "f8924ff7378552c2f16faba6aea178c1b098f4cfcb07247c7c58533543980594",
+    "rust-std-1.50.0-x86_64-unknown-linux-musl.tar.xz": "e2878dcf80a8ffca1fb53d75dc0418d3fa3af52d03e25421c4f9fa29af2eaec0",
+    "rust-std-1.51.0-aarch64-apple-darwin.tar.gz": "b9ed9468652417b375d24152eed9b87436f1ca0ad0311d8a1a802fdde263bdad",
+    "rust-std-1.51.0-aarch64-apple-darwin.tar.xz": "cfdb0c1b095384648e1993288ea7176c4ca058e4a0360aacc72e31b578896554",
+    "rust-std-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "a6ed4abe59dfaf2119e2803f67fd8aef757a622ae3ac9a040946af2b02f4c269",
+    "rust-std-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "b9692bdf8baee930ebea7e9fdd6174c2463fea45bd83769ece31715dfa5025ba",
+    "rust-std-1.51.0-aarch64-unknown-linux-musl.tar.gz": "9c0dcae82c10d52d202052fa0fa912cd7a21dd286de01717f70e24dfa20a5b03",
+    "rust-std-1.51.0-aarch64-unknown-linux-musl.tar.xz": "ca3eae4f02d96f19c24d921a10889740976852aff36bda51cd6452b4297407f0",
+    "rust-std-1.51.0-wasm32-unknown-unknown.tar.gz": "27f4455f01911c2fa1a58cd2fdb3bf5699bf1521cbd462a457c4a1ccb8650e38",
+    "rust-std-1.51.0-wasm32-unknown-unknown.tar.xz": "fd57886f607cee8573cb511ca546ffec5591bcbb62bbafafe91c9804b85edfb4",
+    "rust-std-1.51.0-wasm32-wasi.tar.gz": "6e96fef8f132934a37169296e7bd13e64ee73679014b47e7bdc399add9b10007",
+    "rust-std-1.51.0-wasm32-wasi.tar.xz": "7a9700d8ddaa9bb950b46b731fb7b1ee8d66e2b8ed8ecb048919d92704ca6b29",
+    "rust-std-1.51.0-x86_64-apple-darwin.tar.gz": "2856bc46d3624ae2658897c15388c0c353bea916963a2fc5991c23b920d5678c",
+    "rust-std-1.51.0-x86_64-apple-darwin.tar.xz": "63be2a7ce6a8f495dad57c5c3550506311eafdc60fe757517c7ce3ef1c491be5",
+    "rust-std-1.51.0-x86_64-pc-windows-msvc.tar.gz": "0e9300e21b61ec1adde0b48772a76f1c881015cf1e7885b641dcfa1dd8289e55",
+    "rust-std-1.51.0-x86_64-pc-windows-msvc.tar.xz": "63a72141efcba51c3a6bac4a98f9f3d7589c4cd3ba832e9b98be60cd151a7b41",
+    "rust-std-1.51.0-x86_64-unknown-freebsd.tar.gz": "4d03de5911c533cd0ac2ab5ea9b9105e853ac0ee0f6aea22b6714a7dbe008f01",
+    "rust-std-1.51.0-x86_64-unknown-freebsd.tar.xz": "9cceb857b488e0ea5837e37b38b8a97e888f521a9cdb02879bd9a231dd9bb0ee",
+    "rust-std-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "5e7738090baf6dc12c3ed62fb02cf51f80af2403f6df85feae0ebf157e2d8d35",
+    "rust-std-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "1199ba8351bb88166050c0fb15a55a23b20b6ead098d7637aaca53b91c5e68ca",
+    "rust-std-1.51.0-x86_64-unknown-linux-musl.tar.gz": "8e23cf075b514633226e73786bbcc0907853a2e9cba98ec208ca16ba3847b834",
+    "rust-std-1.51.0-x86_64-unknown-linux-musl.tar.xz": "3a0ddcc426fe79e21f943309258cf40b552e633180536fe90be21e6e492053c3",
+    "rust-std-1.52.0-aarch64-apple-darwin.tar.gz": "2bf799c9846c9e6308d777d30f38a54acde53b690bd12324dbba3e3b12c44822",
+    "rust-std-1.52.0-aarch64-apple-darwin.tar.xz": "8145cd071c190bc50fa5d81f856e067c1cb8fcd7d55ec6924cf6a39e1b858c4f",
+    "rust-std-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "f16adbfc562875aad7f6a4c9111519ee27eeca804fa575f8d274bd2dc1efa41a",
+    "rust-std-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "3720d98988302bc1f676cef2ea3b2a641404cbbe2d47d0f28f8954658586aa12",
+    "rust-std-1.52.0-aarch64-unknown-linux-musl.tar.gz": "54d9f39a8a2ebcdec83b0102eac209439f846248cd6b9919421a51448b757bf0",
+    "rust-std-1.52.0-aarch64-unknown-linux-musl.tar.xz": "153d4a56264b3c38187c566ebdc3dee2e7573cad87b7c68b7e5c52d0c5ad056a",
+    "rust-std-1.52.0-wasm32-unknown-unknown.tar.gz": "d4b059dd880b7c2418c454f6ff9b87f075f8634364d86ade1f4131083951592d",
+    "rust-std-1.52.0-wasm32-unknown-unknown.tar.xz": "305e10c5cc7e8f270347e2bff624097605be11775b850d751de972f4b051e14d",
+    "rust-std-1.52.0-wasm32-wasi.tar.gz": "37a48c39b8a5c41906b003dd803d5d4679a1321c0dd36c222e74b3384592a2d5",
+    "rust-std-1.52.0-wasm32-wasi.tar.xz": "4140f74f6b60d4be60ad913e4732ff35d1f713a42c49a4aae7e237e3ec46ed06",
+    "rust-std-1.52.0-x86_64-apple-darwin.tar.gz": "dfab59a96112512f8b3f6550ea932bdc4f09b0c0659545a938dbc334e96b9515",
+    "rust-std-1.52.0-x86_64-apple-darwin.tar.xz": "cf6b4788718abe9c3f6439620ac1eee3aae57cff21504cb4c4cdca7083edee99",
+    "rust-std-1.52.0-x86_64-pc-windows-msvc.tar.gz": "28adfe2d59d37f179d82fa0ad9b2d0308607abd6c05de0f17458625d83997930",
+    "rust-std-1.52.0-x86_64-pc-windows-msvc.tar.xz": "059e62e8e48d182be17de3ba10d28df1c451f441e75efc4cc53703bfff15e590",
+    "rust-std-1.52.0-x86_64-unknown-freebsd.tar.gz": "e721b2acb871722a0c36ae2e9d8d97a2ee8175c9c2e3cb80238c662be401b3e2",
+    "rust-std-1.52.0-x86_64-unknown-freebsd.tar.xz": "23c092731e39221f6281428e51ae3060c608452a4af57a106e9c32048a501182",
+    "rust-std-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "dcea50e20596a698bf534d37f28cabbe6ca6fa31bee9c4c186b0874d1d67d4ed",
+    "rust-std-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "dcdc0083facd6484527494ee5b8f72e040a095ab346bb658ce176be573d5c9b4",
+    "rust-std-1.52.0-x86_64-unknown-linux-musl.tar.gz": "6d9883520f6d3cc540114a0246849234a6f801bdfb0346340426b02f4c677063",
+    "rust-std-1.52.0-x86_64-unknown-linux-musl.tar.xz": "d5809f3f1345a3c524f00cfa2ac1631b494a6de3143b1a3d081476f2c4f78905",
+    "rust-std-1.52.1-aarch64-apple-darwin.tar.gz": "3b8914c1e9a51407690661032b059fb87482e93f10f2160f3b042ecc4cb97c38",
+    "rust-std-1.52.1-aarch64-apple-darwin.tar.xz": "b87b3b86b8e9e8129c74bc53f79f0a16085c05555df07b87923b9c8ab5d30944",
+    "rust-std-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "b87ef86a241626cc86bf98fa0e70483f96d1bb9bbb4da7d9c589ac2094393a8d",
+    "rust-std-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "c26b9ddac553ecee1b98ae0f068f98296ec14943eb3cd7bb2b410cadc48897ad",
+    "rust-std-1.52.1-aarch64-unknown-linux-musl.tar.gz": "fe8091e71cde5e3a344d204a6627765ab79ccf19321348dbfa27768ac5f2abf9",
+    "rust-std-1.52.1-aarch64-unknown-linux-musl.tar.xz": "e49bff685aa5feb69c9f51c178a72b66b3858edfd3774784a55088fc5b88f8dc",
+    "rust-std-1.52.1-wasm32-unknown-unknown.tar.gz": "83953390e0d1e99cd6572e825888020f91d095b07eb744539a59891837b6fe9b",
+    "rust-std-1.52.1-wasm32-unknown-unknown.tar.xz": "dbe1069bdfb85290b39c238af4d4832cb4bfbf9285eee844c116bda68ec68b33",
+    "rust-std-1.52.1-wasm32-wasi.tar.gz": "7f90fb6336d679ddcce034201645f254d8b97c6352926f5122e38329fd6e1aa6",
+    "rust-std-1.52.1-wasm32-wasi.tar.xz": "03a9e0395d553a866277c1e85789347057e25c38a7250d64952bcd405a40c9fd",
+    "rust-std-1.52.1-x86_64-apple-darwin.tar.gz": "3567ec015a498b8d5c6e8f47aaa3ec469a418ea0e0f163249e825ef24457e38b",
+    "rust-std-1.52.1-x86_64-apple-darwin.tar.xz": "19c78017d12e31d32bcfcf3c781eece80f426cf1de36957ceec73fafbac56f67",
+    "rust-std-1.52.1-x86_64-pc-windows-msvc.tar.gz": "ca95b1ddeae98af71439574fdd9fd9b233ffaea7792c1b654c212a1821d33986",
+    "rust-std-1.52.1-x86_64-pc-windows-msvc.tar.xz": "cca65fce2e9cfe697d50e699c66ed997f53915fc29b12c7d351258a8a86ed2df",
+    "rust-std-1.52.1-x86_64-unknown-freebsd.tar.gz": "5ac8a9dc61421dc4f39380a5d4380130fa176047eef48b3aba205103363b9774",
+    "rust-std-1.52.1-x86_64-unknown-freebsd.tar.xz": "d89ccd638c21d903aad7c64270b559daed9795fecef41dcb32e0d34953f1d91c",
+    "rust-std-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "ba9cf6570d509b3e4c4d821db4caf304f2ffacf5377b7ca55dc1ef9788ae5b58",
+    "rust-std-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "5dfeffb7e6600c311cc7208142bd66367a62a02d593903d3ac940d0a31350fce",
+    "rust-std-1.52.1-x86_64-unknown-linux-musl.tar.gz": "1f3155180a1a143119fd7b1eae3eeed0a0758ca095fd6533918d87cefeb93fe0",
+    "rust-std-1.52.1-x86_64-unknown-linux-musl.tar.xz": "13c198e5e9e49e7cf92684f2b3682884f7566e60bf6e3490489d62fc5d5ac047",
+    "rust-std-1.53.0-aarch64-apple-darwin.tar.gz": "a6191c9b5adab64832c0e0c0ea24f64b32db07ac5f56faf21239055ce38041ed",
+    "rust-std-1.53.0-aarch64-apple-darwin.tar.xz": "2b790f46e49100a0a4e583e432f9b7847701181ce709e8dfc0b519a09223cb8c",
+    "rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "9e5c09d14fec5609bfd042299900f20a44c52d53c64e76e184faadf67d07590d",
+    "rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "fc261d0ff057c58b36057c30217bad1a29a9a3f257c70f5df88ad3f1d982386e",
+    "rust-std-1.53.0-aarch64-unknown-linux-musl.tar.gz": "7501cc0787a63e550f9918dc5d23ee9fa9f3f3162088b33213694be2d6e2aa32",
+    "rust-std-1.53.0-aarch64-unknown-linux-musl.tar.xz": "f7867d54e677dd53539a72421cfbe2a2e7a9f845b8ea38e30d2dc43fbae0f7ec",
+    "rust-std-1.53.0-wasm32-unknown-unknown.tar.gz": "d9539af508a484d7da6b9683aaeb9b50ca63730a14c90837100d668c2591a697",
+    "rust-std-1.53.0-wasm32-unknown-unknown.tar.xz": "7f88e2cf265cec593b02c63921660387ed8325b3f67cd1e3504b1be83c847839",
+    "rust-std-1.53.0-wasm32-wasi.tar.gz": "e75188931308e2dbd6cf85c802d28bbd175a0696cec241b134c17f2ffdfcf10d",
+    "rust-std-1.53.0-wasm32-wasi.tar.xz": "babe36210fed82375d30cc7af90d92c3621e3a889ddb8b540ff57265049fead9",
+    "rust-std-1.53.0-x86_64-apple-darwin.tar.gz": "ef9b2d8b467a29c8d5621ca804dfd6b9eb38ceae6ed86c763ddece0a38714697",
+    "rust-std-1.53.0-x86_64-apple-darwin.tar.xz": "3194a6fac963335ee08bdf56bfb358f7142831f5f2ad7b45bf0c1d65b84f06ef",
+    "rust-std-1.53.0-x86_64-pc-windows-msvc.tar.gz": "b5dc9771dd9b8c2a9fb10769e64c962cea01cc3e0b0057b78ce8a9ba0477a4d0",
+    "rust-std-1.53.0-x86_64-pc-windows-msvc.tar.xz": "45a3ef1b85d4e751356b1c7ee1193b2a676bc17eb23e8192621b62d41b69d497",
+    "rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz": "238bf461d866b5ef4614609462356304eb0225b0c61668d51a7b1844561df845",
+    "rust-std-1.53.0-x86_64-unknown-freebsd.tar.xz": "e307ccdbe7c896e3ac53d3a933bc5254d8a7cd2a18026211dffe7211192eba80",
+    "rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "b3428b9ffd5a8f8f13506eedf2fc865665a53894408f0b64314686e8a08d06b2",
+    "rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "66d5257bbd194db08e67ca63a74cc80cdc4a36eaa30bf7dfe65861d9deaff7f7",
+    "rust-std-1.53.0-x86_64-unknown-linux-musl.tar.gz": "e91abd171f35951f1fc56b10af817c9e83833eec5c3712dae8bc1e5e63cb7100",
+    "rust-std-1.53.0-x86_64-unknown-linux-musl.tar.xz": "413449866616b1cd048da1356a41d977bf4e037cce114f07c3afbb0497b3e4c6",
+    "rust-std-1.54.0-aarch64-apple-darwin.tar.gz": "469b832c7d33c1edfefe705a2ad27172f6906a73b56be789fcc30629792f75b4",
+    "rust-std-1.54.0-aarch64-apple-darwin.tar.xz": "f6c87ba69889f4efdba616990b1dadbed5fe76746bf5f1c07ccc618a96b78e99",
+    "rust-std-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "2d90cd90734a2d057b2a4eeee36a72d96569fb5fff0ac1e22eeb5fab93e66848",
+    "rust-std-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "a1a77737d218087eb7d3613adcde2c9e383d758cdf128646a0ee63396145270b",
+    "rust-std-1.54.0-aarch64-unknown-linux-musl.tar.gz": "4c689f32444afa8faef2f7eb896b59f76827e9950f795988d626c9e4552e3d4b",
+    "rust-std-1.54.0-aarch64-unknown-linux-musl.tar.xz": "9a7ff8e4cd160f6a58c3b5c7e679b7acdc427c2440ecc70a31a5dc71bbecd0c8",
+    "rust-std-1.54.0-wasm32-unknown-unknown.tar.gz": "6e454b700234a0b33df15e6936c1c27c643101a3c4253f5e41b8e8a48a9f7ab2",
+    "rust-std-1.54.0-wasm32-unknown-unknown.tar.xz": "c109ef05ede1d69f7af5aa4d0a1e1ea6e22c27ebccffe610577e28d6bdd45b85",
+    "rust-std-1.54.0-wasm32-wasi.tar.gz": "052220fdf7ea1988b6cc6445f8ea58d2c29335feb442842014f161e618534331",
+    "rust-std-1.54.0-wasm32-wasi.tar.xz": "481b00badbeaf5b8a110881ff52f8760098cc7eadc6c0942939646067be4a478",
+    "rust-std-1.54.0-x86_64-apple-darwin.tar.gz": "3908ff438cdf39c3f46a103f3a0fa04a0d8add996c87e4290c80f1a766df6a04",
+    "rust-std-1.54.0-x86_64-apple-darwin.tar.xz": "d6533d147e5844feb3af26a02c71c78332462334b554af577f68898aeb7a6d3d",
+    "rust-std-1.54.0-x86_64-pc-windows-msvc.tar.gz": "13f7595449308c4ffe79a6111d5fd2e7a4c6a56174d6c295437676e29951ce90",
+    "rust-std-1.54.0-x86_64-pc-windows-msvc.tar.xz": "01706f7711fb763b9c1e4ca6c7675b656f1c0283e1377a7afb81d46ff76b1fc5",
+    "rust-std-1.54.0-x86_64-unknown-freebsd.tar.gz": "f504cad489fe606dd1a7d064253d6e0d0e5450674cfd941b8f848953efce99e5",
+    "rust-std-1.54.0-x86_64-unknown-freebsd.tar.xz": "29e423fef1e3480dfa4d011d6663551f893dc01e98c1c486c875dae62d90f2b2",
+    "rust-std-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "487c51ac97e7f7deceae904b70e9bb031574dbeefe07b39b24e3fb00740962eb",
+    "rust-std-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "a22e19859b3c5032daac1633637546a986c51bdfa3ad0db6e394e6cc461f466b",
+    "rust-std-1.54.0-x86_64-unknown-linux-musl.tar.gz": "7cbe73472390e0e63d1812dd86d5024350e0e8dae36a6bf52585ad0136148818",
+    "rust-std-1.54.0-x86_64-unknown-linux-musl.tar.xz": "c2de24eb3e524c0fdd1e8116f578c103035da1ece1e4c06efab67999180eefe8",
+    "rust-std-1.55.0-aarch64-apple-darwin.tar.gz": "bd364710331b34f454258b73e5cfc0583d3c0763ecce0994d8a990c1847604a4",
+    "rust-std-1.55.0-aarch64-apple-darwin.tar.xz": "cd5f46a7c594249907b944d2cdcedc46bf2bdc5fe66ccd6ce9fc2defe52bf4d8",
+    "rust-std-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "e30063a259e32cd0e31baadcee82112ef840e0f654d5128dd79fc715ede92058",
+    "rust-std-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "1aa21d2e90164f452c17650f862ad64c7ec1863c0409f2926d306d406ae4668b",
+    "rust-std-1.55.0-aarch64-unknown-linux-musl.tar.gz": "f540bf8238b46cefc5490eb6e626f8712ff5a49d8fdb7e75e838a5c1e1b3046d",
+    "rust-std-1.55.0-aarch64-unknown-linux-musl.tar.xz": "aab252fca85811305964a8038460cf1c5c1833753666bca00ab2bd7fbb2c9879",
+    "rust-std-1.55.0-wasm32-unknown-unknown.tar.gz": "275d7a1032f709d186bb8bd66a96f17f5c8d6c1a4c3b51b7ce60a4f3dccefdf4",
+    "rust-std-1.55.0-wasm32-unknown-unknown.tar.xz": "939f4a53a3b000e026d1da8df604ec4cdae1b3ced784388f152204b8d5331ec3",
+    "rust-std-1.55.0-wasm32-wasi.tar.gz": "69696faaa29bdffc58a71707a4547a85a09199218411302afa7554073357f576",
+    "rust-std-1.55.0-wasm32-wasi.tar.xz": "b4ca353d8e68a01b48c03a31ab4710147a58067ca28e6a2874f5b21281682a9f",
+    "rust-std-1.55.0-x86_64-apple-darwin.tar.gz": "8888fb0a1cbc645f86e1551d27cc127697361fecab9cd414691e434976412733",
+    "rust-std-1.55.0-x86_64-apple-darwin.tar.xz": "0e167e9e0e4fd86a2586fa3df21b8d7550761bdcc3464c64a4ae6b521017657b",
+    "rust-std-1.55.0-x86_64-pc-windows-msvc.tar.gz": "8507fe0f2059d68bc0cfabae1cc96cfc3d0357f04522942c5d4fdcdc1cbc23a8",
+    "rust-std-1.55.0-x86_64-pc-windows-msvc.tar.xz": "c4a086db9d5e861540192efc0ce31d38fec2743e858205f1e5f04cb1200f1363",
+    "rust-std-1.55.0-x86_64-unknown-freebsd.tar.gz": "522f4f75c50a0fde08d6235ed80c7cac30c922943954aad1e7c154cd8762ddd3",
+    "rust-std-1.55.0-x86_64-unknown-freebsd.tar.xz": "0295cd52fb356294a0b2ebc082437fde89c98e654fcf21e753b9ae52c4342045",
+    "rust-std-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "c07c5ce96b86364601c0c471bb85105e80a5e345b3e4b3e2674e541cc2fdefcf",
+    "rust-std-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "160873f5ba5099b21202a1e62eb7b0588aabf88dd709f886b142ce60356b3006",
+    "rust-std-1.55.0-x86_64-unknown-linux-musl.tar.gz": "357b8f56ffa3858e2f32be837bd84e3d89403f17c55bf0c105f34a0b796bceed",
+    "rust-std-1.55.0-x86_64-unknown-linux-musl.tar.xz": "a7f02bd5b4fd2b1f55edaddfa869d2ce210ce4951cb752ce7b380129bc2d1882",
+    "rust-std-1.56.0-aarch64-apple-darwin.tar.gz": "88ae1a2da1c7bbabeab3bce392ed9cdf1403c1f6cef5a8bc9a6813e480127fc6",
+    "rust-std-1.56.0-aarch64-apple-darwin.tar.xz": "4d27aedcb0d12b238dffdce9c2571094ac5b1aeee9c69d15fff97be8a95357ce",
+    "rust-std-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "061c8a855696b3e23fb48ad69aa90e70ead825825e4cc02374d3cb1df4486258",
+    "rust-std-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "3cd1c69c618e5efaf578a156c2a950c93964f9b47ba4d705d5700bdc64880231",
+    "rust-std-1.56.0-aarch64-unknown-linux-musl.tar.gz": "2a83ec23e14e0b578b636c3c95283c92fd034e8b56a564c043db3f8b746eeb2e",
+    "rust-std-1.56.0-aarch64-unknown-linux-musl.tar.xz": "f8fd780fba59a523bcb07db1632e7fd017c04244abacbd4ffbedcab9439ac3f8",
+    "rust-std-1.56.0-wasm32-unknown-unknown.tar.gz": "3e0f1282549f09f9f9062f8fa8ca197eba5407c4422378688d78075bdfaf3358",
+    "rust-std-1.56.0-wasm32-unknown-unknown.tar.xz": "9ccd02fec8b546e5c712cf21e89ca148c1909d34d0906edaa48622ad7f356e6a",
+    "rust-std-1.56.0-wasm32-wasi.tar.gz": "f819c096dcfc3fd0466eff346ea4291fe0ef86a08529b9be6843017c79256237",
+    "rust-std-1.56.0-wasm32-wasi.tar.xz": "6603b2d51440b33e860615818027dc29b3aada77542813fd3a5b18efe70a97bd",
+    "rust-std-1.56.0-x86_64-apple-darwin.tar.gz": "58c6fad6f09706f2940cd501a1d0dbd984ce4926000009aed313dd2cd3c1a7ad",
+    "rust-std-1.56.0-x86_64-apple-darwin.tar.xz": "1633917bdc5fb5d9e161070328440fec4afd8f50827c5979ff78af4fca1b10a9",
+    "rust-std-1.56.0-x86_64-pc-windows-msvc.tar.gz": "7d3961a5115f29738061d9c22e2472082a5e2de7bfe550a04a22180c3caa472c",
+    "rust-std-1.56.0-x86_64-pc-windows-msvc.tar.xz": "424c12ddd9863538ee6034d84cab30d8d02839ce3718d16b9ec2ca7d59f1692e",
+    "rust-std-1.56.0-x86_64-unknown-freebsd.tar.gz": "e059d39f15cea58fd89d860a06504f48234ae2aff2c1eb5e4463b50367827ff7",
+    "rust-std-1.56.0-x86_64-unknown-freebsd.tar.xz": "4409121b07a4dd4ec5a7c65c230ad796005fdfa8d5064506b8e546728d92a87a",
+    "rust-std-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "3c314efa230f95f5d9e3357e5f915a4f40d2a21b10ba7b92fcc9036cbcd9fbac",
+    "rust-std-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "f693e4f41a959d62528e0043b0b010c4815fb9f5887267ae34ff8b860f8ec4ae",
+    "rust-std-1.56.0-x86_64-unknown-linux-musl.tar.gz": "03b7a319a3d3e5f86278753f2780c7b3fa3f1b60bc2b8ddf6fd18a36540b8601",
+    "rust-std-1.56.0-x86_64-unknown-linux-musl.tar.xz": "0b1f5494cbde937294b1d90f58e94de24c25608e485f3eeafff50192b4d3c6f2",
+    "rust-std-1.56.1-aarch64-apple-darwin.tar.gz": "59fcdb16c264fce206a1a59261fc576f547fa0a807d3370b542ab25261ae5158",
+    "rust-std-1.56.1-aarch64-apple-darwin.tar.xz": "733d5855a4b4158778e4eab50229a96cfdd492cfa8cf1877bfe7c9a242d523cd",
+    "rust-std-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "d577c25879cf160ec1a04d5101971dd684f9b4f87b3cb463a7521b676dc3df89",
+    "rust-std-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "a83416d15354e4dfa1c1e4a756282c6be7169679f2b04eca82ed34e2116b93f0",
+    "rust-std-1.56.1-aarch64-unknown-linux-musl.tar.gz": "444d5cb43bb82322562afe54c249c3d85b5b1cf215fcd0cfdabd2e657fcda687",
+    "rust-std-1.56.1-aarch64-unknown-linux-musl.tar.xz": "50603cfa6332846ee1a7e9c0440f976b57b49d1800a2504ef0be1fb484646bbc",
+    "rust-std-1.56.1-wasm32-unknown-unknown.tar.gz": "4e62beca963a5b8c98913dd10abc493126675a0a35c2817afdf6975a49cc1bce",
+    "rust-std-1.56.1-wasm32-unknown-unknown.tar.xz": "4ad9c1d9eb00c2dc569f6e2b5ca5acd715db02db3456af08ba61d00f40e3a0fd",
+    "rust-std-1.56.1-wasm32-wasi.tar.gz": "a7eaf9bf238671f7a54afe00cd76dbb354933e525ab5bceb10d156a2bc414dd7",
+    "rust-std-1.56.1-wasm32-wasi.tar.xz": "c5ae515041a447a94de4d7f9559f82e70fcc7b48571bfb26d9866dcb2fa5cfa6",
+    "rust-std-1.56.1-x86_64-apple-darwin.tar.gz": "a1cedfaea1508bf3bfc8a77d82d15c693b41e70e56fad930d24f21f0bce5052a",
+    "rust-std-1.56.1-x86_64-apple-darwin.tar.xz": "5e58c2ecb19b09dd56637bd21813fd76778aee2be3104d324b62bc6c4ec3c46d",
+    "rust-std-1.56.1-x86_64-pc-windows-msvc.tar.gz": "ace5ea90e70b9d035b28b405175d52e1796fb1bb36cfbdead1048ff00e9ec1fe",
+    "rust-std-1.56.1-x86_64-pc-windows-msvc.tar.xz": "064e4e9a030057c20e398c2f4c46e6e5e2d3b493b5e677c2e5e32fe77d1ecfb2",
+    "rust-std-1.56.1-x86_64-unknown-freebsd.tar.gz": "1382799af56e1ec48cf3971f84122c9d445996422055b822d9d6226a31a20737",
+    "rust-std-1.56.1-x86_64-unknown-freebsd.tar.xz": "8ae63f5c03a8d8a60be62dc536672b6ae8e5259837cf2a543f1c4c30d4cbb5e6",
+    "rust-std-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "afd959b295e17640d1e94648278a944dc5f349ebdd9e59e2404729db0810c531",
+    "rust-std-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "b01011cbb5503c456ecc6a557a38e099994b8497df545c661ce8fd48c5beadc6",
+    "rust-std-1.56.1-x86_64-unknown-linux-musl.tar.gz": "88bfd0dce45d4321b0781550a300f90da5344dda20744219b6b23072b6cb03af",
+    "rust-std-1.56.1-x86_64-unknown-linux-musl.tar.xz": "055c5f8676712d8b86c3685d857d45bc0757594cb59f04dce4949a91df99635c",
+    "rust-std-1.57.0-aarch64-apple-darwin.tar.gz": "3b442d3f546524aef4fe8483c5ddcec1c5dbd52216d98aabc066883db31088d8",
+    "rust-std-1.57.0-aarch64-apple-darwin.tar.xz": "1636ae0aa61c0d64bbcaf424d0a18b4f1e604b538ffdf86d710beeb1e36ffbf4",
+    "rust-std-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "4c70901d1cbddec9ea99fbd62b20f454d30e1ffbb48a21169ac823b3f02a1fbc",
+    "rust-std-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "3618da916a0f92f241cf1d67d04bb57835b303cf2047b57dc2f2487b89a4fc1f",
+    "rust-std-1.57.0-aarch64-unknown-linux-musl.tar.gz": "4f0c6533186b8fb596ee11b49bd6c9ffb76be59eb8bbdf26f25a47d297666c02",
+    "rust-std-1.57.0-aarch64-unknown-linux-musl.tar.xz": "a955bb0d7b8c6fc67f89af6e4eba4aa700debe7b040c5e19cbb9e2eb57c234af",
+    "rust-std-1.57.0-wasm32-unknown-unknown.tar.gz": "3e0525d9e16f1a58e847080f2d3c02e275c2d5563b7980311e39382bb6c8441d",
+    "rust-std-1.57.0-wasm32-unknown-unknown.tar.xz": "c5ceafae74f43ae31ca21f9523eee317e298d77b2ef94515a27676941f6271b7",
+    "rust-std-1.57.0-wasm32-wasi.tar.gz": "391d814379cf117e927e5deb17bf44e964adee4f5f7208eaee1ddc8927da1fbc",
+    "rust-std-1.57.0-wasm32-wasi.tar.xz": "93395034223068ea82efc61c6c32d040a7db13a5c0682608507261ef408c2cb5",
+    "rust-std-1.57.0-x86_64-apple-darwin.tar.gz": "c1eb892ddb50ebeed288b7aa8171ad46d62362bb26b2d82d2b463dfd45606dc2",
+    "rust-std-1.57.0-x86_64-apple-darwin.tar.xz": "46c2c8fd6aeffbfb62bc03ba913d65b37dfdb328405e2b75a540b6f68e1031c2",
+    "rust-std-1.57.0-x86_64-pc-windows-msvc.tar.gz": "c3984148c561297f804238f6f1e4dd06302c6b3465d3744074016bc23a9f078b",
+    "rust-std-1.57.0-x86_64-pc-windows-msvc.tar.xz": "f6a7512ed0bb31885c3b98ce195f2fa314e02cca71c6a3c1c5d1601d0f44df66",
+    "rust-std-1.57.0-x86_64-unknown-freebsd.tar.gz": "1528a4bc7e3ba42da164bcc7b952dfa73048333c5b9254ce2d03db6bab6081e8",
+    "rust-std-1.57.0-x86_64-unknown-freebsd.tar.xz": "d8279054e722e03794c2499c5ebb25e99df372f81e98dc986d62a76884baf422",
+    "rust-std-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "9140ad6f46a903345d4297a987ccaf37b9c5ca594cd6fd5a27d0be482116fe7f",
+    "rust-std-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "ccdc72d06c90841b7227ec3630337881eeda3da5fbe87328d2e9d705f6f8016c",
+    "rust-std-1.57.0-x86_64-unknown-linux-musl.tar.gz": "e59345c7ba6bde5e1d2950b846c097511998d5897c63a7cea078ece4b8507f5b",
+    "rust-std-1.57.0-x86_64-unknown-linux-musl.tar.xz": "818213a6444503ed6adf0231d3c71de990d4c26926c62e8c602bb7e2d636fb94",
+    "rust-std-1.58.0-aarch64-apple-darwin.tar.gz": "7c1d58bdc87b79f439b1083348a0e492305f8737ad1931755c26b2834a854f42",
+    "rust-std-1.58.0-aarch64-apple-darwin.tar.xz": "812116676bb5278cbe3da3e7e8f2b160b653cc2cfba777317c26188d800c7833",
+    "rust-std-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "3a1283a2dce7abf2816dc70d622215f5769c416abf3e94dd94dd6a5d1109f506",
+    "rust-std-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "b562646864cea55079e4b9d35dc2e9b6abc8efa224e2e49779ba2cbf8ff83b3d",
+    "rust-std-1.58.0-aarch64-unknown-linux-musl.tar.gz": "2e0589157f7f5055f4f295886f9161cdd239d845b7e021a0a59bf338facf9dba",
+    "rust-std-1.58.0-aarch64-unknown-linux-musl.tar.xz": "e8686490679bb827cb59df5a1fe72c9b03ae6ce2299be7fb88ab31a0efa9e1ad",
+    "rust-std-1.58.0-wasm32-unknown-unknown.tar.gz": "cb668772798a811de6e6d5823398abf888f29319bd3803621b0f4ff8c1693de0",
+    "rust-std-1.58.0-wasm32-unknown-unknown.tar.xz": "f220d05a1da577759fb757314cbab9a70407118c7b02c1ee268e5450e3219df7",
+    "rust-std-1.58.0-wasm32-wasi.tar.gz": "4d86cf175ebeb3002fa940447b52ff6fdad99f9fb2ba6a56e42ef961e685c3f5",
+    "rust-std-1.58.0-wasm32-wasi.tar.xz": "86b64ff90d0ca72cd50cd04f1205747f9189f6b13f009ee0cecae0a79db5cc09",
+    "rust-std-1.58.0-x86_64-apple-darwin.tar.gz": "fa89e9ab2e3645d6732811dae3828c86fbd65cb7447ec33c84137e61b168396a",
+    "rust-std-1.58.0-x86_64-apple-darwin.tar.xz": "b6077abd2c70e5782fafb0a5559a0870ebd4d0393725fb7b1e96c862b876ee4a",
+    "rust-std-1.58.0-x86_64-pc-windows-msvc.tar.gz": "20738c0c92fbb59800926ab2fda5191b03537a3d6574ba4b6534de3ebc12d043",
+    "rust-std-1.58.0-x86_64-pc-windows-msvc.tar.xz": "0a93f536d321df52f435a2b7807254f76c7ff530bf6517b54f7b89484585cd4d",
+    "rust-std-1.58.0-x86_64-unknown-freebsd.tar.gz": "99016932b881df2a579d52761d4851ed538e34c39b47e882505892bb50d930bd",
+    "rust-std-1.58.0-x86_64-unknown-freebsd.tar.xz": "2eb84f63368b36e3e737f0e8e28275e1ecd25bb4699bf6d9ca18eac1320118d6",
+    "rust-std-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "0517b0cb57a311bbe1997e9b87fc6bae1f9e1eadec4f7d97374740f17f890842",
+    "rust-std-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "319e2dc5f50cbdfb7091f56643c637465d6bc34291ccdaf1a06a2023a37f50c7",
+    "rust-std-1.58.0-x86_64-unknown-linux-musl.tar.gz": "10d911a65381b624cd1d33a913c9a2270355dbcd6db66b847e63f0f9b0f85f35",
+    "rust-std-1.58.0-x86_64-unknown-linux-musl.tar.xz": "dc839b669ab75699a1c85f6cf0a50d632cbeb18ab0ef08ce2fac0bb3008d07c1",
+    "rust-std-1.58.1-aarch64-apple-darwin.tar.gz": "307f4d430f3491098b7d73db618408eadc22b0e290d2e22fbcf2909c5ec96c2b",
+    "rust-std-1.58.1-aarch64-apple-darwin.tar.xz": "fe57c547650490721bb6f602daeff15dfc3838d556cacdcaa4e2bbd16752e741",
+    "rust-std-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "1f81a91f29d1a5dd4bbedbb76be74582553bb363103bc390c2f8f1f26c2a24bf",
+    "rust-std-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "c7a016ac63aeb5481d661ee3e680b57d35d5ccb902c605c32937a047a02cff49",
+    "rust-std-1.58.1-aarch64-unknown-linux-musl.tar.gz": "feeb863de2688b70b98eafaf7e707b2192373b649ad147aa07d1e95d8cde825d",
+    "rust-std-1.58.1-aarch64-unknown-linux-musl.tar.xz": "4c8d9774fb1f6cfa616f2c43395f438e887a38f0cd901a3886056cc1c1b84c30",
+    "rust-std-1.58.1-wasm32-unknown-unknown.tar.gz": "ef92a50952a03111c59745b8732f55f209da12e5dd8cd15072ad4ed96ad048e7",
+    "rust-std-1.58.1-wasm32-unknown-unknown.tar.xz": "ed74ac99f5ae8e43d4ae1ea0b3f63306bf1fc33f3055d2a4910f29e3f7ed80ce",
+    "rust-std-1.58.1-wasm32-wasi.tar.gz": "09e3b15ebff0a68e83b36913e4711db5ffb4c8dd3d7fa827988c1bdde6b9ee32",
+    "rust-std-1.58.1-wasm32-wasi.tar.xz": "8959da91e21df01588777a1f0e999460d9e94b4d8b89952c9f8bcb6eb2212cdf",
+    "rust-std-1.58.1-x86_64-apple-darwin.tar.gz": "aaa1e34c45394abaa943499e56047f6e678e42e7fcf5fe065000fb33559961cf",
+    "rust-std-1.58.1-x86_64-apple-darwin.tar.xz": "56ffe262af41121997c8036677d1daace0c27dfb577c51b10d8e22d1e31678f0",
+    "rust-std-1.58.1-x86_64-pc-windows-msvc.tar.gz": "b8c335eb2ac500f59f2259b3ac9095647566725ad133509732d3f4a5a7d53139",
+    "rust-std-1.58.1-x86_64-pc-windows-msvc.tar.xz": "82c26dfa30c1671777ae30e54190a11431c13ca6d8174ae11a15154387306447",
+    "rust-std-1.58.1-x86_64-unknown-freebsd.tar.gz": "946c4bc834a89b30deb82664b04b67aee0fa65c232447b3adb4c29e89a559b4d",
+    "rust-std-1.58.1-x86_64-unknown-freebsd.tar.xz": "23204823aa1fae2f93e99c909728fd7752fee7a7515d7f694082fca162d7de78",
+    "rust-std-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "649bda48542f211d77afab4b71505572a4712b6b5c5bdee94533e2e7a9a832f1",
+    "rust-std-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "e72367c15906f021f46801652181c917cd3328be022b93bb30506724f7b56256",
+    "rust-std-1.58.1-x86_64-unknown-linux-musl.tar.gz": "c4e56dfcf9d3d8466eb7d065af44763369df6e641a812a0a6974f94c98ef9a12",
+    "rust-std-1.58.1-x86_64-unknown-linux-musl.tar.xz": "b0d3e03c9b1eff6e241383913b02653ba80776626ca7c4a93f36c2ad829ba989",
+    "rust-std-1.59.0-aarch64-apple-darwin.tar.gz": "e70bd0c56f8f716238a1395c54dd9d993a3168e2764e404dc65553babf7aa127",
+    "rust-std-1.59.0-aarch64-apple-darwin.tar.xz": "ba29d736dcc5bd8d8bade517b95d9752b02e798075d6b9b8e673c03327dc46a9",
+    "rust-std-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "81dbd37919f631f962ac0798111803eb8f06ffde608f0e5dd3682d701cf5566d",
+    "rust-std-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "68e50dee4f6dddeab7330906e46022f57f2c004c847eae3f5b1bc82c59e43fc0",
+    "rust-std-1.59.0-aarch64-unknown-linux-musl.tar.gz": "e4f73617db73df7cb3b97984e38184f57292cc527654b52451293cd70f36f5a4",
+    "rust-std-1.59.0-aarch64-unknown-linux-musl.tar.xz": "6b8424e9b99da7df3b842b47476fbff4c371414186ae50ca0aff050a532c1d52",
+    "rust-std-1.59.0-wasm32-unknown-unknown.tar.gz": "d79f31c54eab23c24e245e8988efa2f73451dc8537d386c52dcc1d7a6db246dc",
+    "rust-std-1.59.0-wasm32-unknown-unknown.tar.xz": "84228f29383f3aed7865b6ed3d3581c55ab595e85a19786c8521fb2e95ae81d3",
+    "rust-std-1.59.0-wasm32-wasi.tar.gz": "b62d02df72e2129c64b35a5d531525d4f51f96eb550cc6705f618968218a7ed6",
+    "rust-std-1.59.0-wasm32-wasi.tar.xz": "66aad729352a3677e23bcabf0183e4aa90ffc173d19a60cbb426fdccee53cf09",
+    "rust-std-1.59.0-x86_64-apple-darwin.tar.gz": "959af8bafbc9f3916a1d1111d7378fdd7aa459410cdd2d3bbfc2d9d9a6db0683",
+    "rust-std-1.59.0-x86_64-apple-darwin.tar.xz": "5697c8283461a3ec4fd397b33bd8bd1b05a2b7eb7bebd0020c7d09128994b794",
+    "rust-std-1.59.0-x86_64-pc-windows-msvc.tar.gz": "fae30c5c9ac491380b556377fb0e804b35707118c5e69f8190debf828c9ad863",
+    "rust-std-1.59.0-x86_64-pc-windows-msvc.tar.xz": "d967779e1ccad4b62c16074c914261aad327c4fb340f7d86f8a56a4e0acb65b9",
+    "rust-std-1.59.0-x86_64-unknown-freebsd.tar.gz": "cf5e4303dd7c3b70a738a2336097c9f2189c8b702a89a8c453d83ac0dee4602c",
+    "rust-std-1.59.0-x86_64-unknown-freebsd.tar.xz": "301233c8a82e1f1320fb180209162adc116bb92311bcf673ab560dec42fadddd",
+    "rust-std-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "3927fd7a094ba063daaf3163fa1b3b0b196968356845fe31c901a23ecc5048d4",
+    "rust-std-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "c854a9ee3dd8e5be9522c1581f75838c1cbae6dece3934b0004f138c4a5024a3",
+    "rust-std-1.59.0-x86_64-unknown-linux-musl.tar.gz": "dfad080e9d86d97929f040a3e2a113a17d4906809c47e9ab6410418b492116af",
+    "rust-std-1.59.0-x86_64-unknown-linux-musl.tar.xz": "473b6ddf598418db49efc21c3d2702cdaf9c78ee4ae00611c7d9e384a2d4dad7",
+    "rust-std-1.60.0-aarch64-apple-darwin.tar.gz": "ca99a455d930147d9383da282e6db4f0de2a013099555b551ab381d58fd82732",
+    "rust-std-1.60.0-aarch64-apple-darwin.tar.xz": "365ab4623bbfd00d78390364748e2b4be547e068c1ec575226246694131cbe44",
+    "rust-std-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "790b12924797dd00e550f3205c8f6403e73124b88de10a77b00830f67904630c",
+    "rust-std-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "fbc39c2ba2eee9bad7305d73d02a63ada651961be8fd9e0dae520bda5d715c6e",
+    "rust-std-1.60.0-aarch64-unknown-linux-musl.tar.gz": "1f023fb8e8d41451e503e1d194f674ba12b37da79612018d77dc13860b8b694d",
+    "rust-std-1.60.0-aarch64-unknown-linux-musl.tar.xz": "16e8f0e03e6a025ef1f96cb76890810d4212525de82340d8cbf2f627725f2ec7",
+    "rust-std-1.60.0-wasm32-unknown-unknown.tar.gz": "9f9472ec8a59ce2bdfa2616ca79113761ebeaacd03e5ef15edef5f075f643a4c",
+    "rust-std-1.60.0-wasm32-unknown-unknown.tar.xz": "f749f69fca07c276285f24590da186b11acd1cd86410aaefd1cd12bfc03c4a85",
+    "rust-std-1.60.0-wasm32-wasi.tar.gz": "0a774f702751843261e215bb638f89e4888f176599dffaed105637b80babf55f",
+    "rust-std-1.60.0-wasm32-wasi.tar.xz": "4f66235d6c72e7fb17f521972a482da46d5a803e1bc99cae31e0b31fa2a27252",
+    "rust-std-1.60.0-x86_64-apple-darwin.tar.gz": "1cdd56c95d27b954f5fda8c5527d2edb4e3f17cf17c5553b8b3b57f8dfc77eee",
+    "rust-std-1.60.0-x86_64-apple-darwin.tar.xz": "7eb4e17c03114e1a5860de096e3413e9eed70413cf63b2d541492b1c9f8c77c1",
+    "rust-std-1.60.0-x86_64-pc-windows-msvc.tar.gz": "e585a7fb4a7fcbc96cebdb2f458f47598b41f43b0cd1e5387128d761f9c03636",
+    "rust-std-1.60.0-x86_64-pc-windows-msvc.tar.xz": "95dde154e4c8a25207df1981f3a69cfb787d03ab671a2158aa5432c82a788fa1",
+    "rust-std-1.60.0-x86_64-unknown-freebsd.tar.gz": "322e5919e849ceed37377b466cede0769352c1e844dea6c685fb248d4c96aa35",
+    "rust-std-1.60.0-x86_64-unknown-freebsd.tar.xz": "769fa6a98cb62c9175929214b9e16a989f05fd663d077e272f41b9a23f9b5e0b",
+    "rust-std-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "963fd25a1f0e986a890e0f99f14902314c71e00f3b14bb587a08ca447ea7d1a6",
+    "rust-std-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "6fb8ee3650beb10836ae48a9aaa535473e64eaca20695b88113267aea3c7557f",
+    "rust-std-1.60.0-x86_64-unknown-linux-musl.tar.gz": "0f4c714c3e6c6b71d39a7b995282eb1b8dea83256e3cf44a688735f9c63e57ea",
+    "rust-std-1.60.0-x86_64-unknown-linux-musl.tar.xz": "0801252694e49eca069003f311e23e124a6dee3557e613133dc2e3cab7bed64d",
+    "rust-std-1.61.0-aarch64-apple-darwin.tar.gz": "9417b3640eb67e233544c925cdf4f0787e5af3c03a1ea8be400f1ef66281e0ed",
+    "rust-std-1.61.0-aarch64-apple-darwin.tar.xz": "c057292538667f1f61638225ce3b2c4c95b823db90b7d32b6af0724934c1e34c",
+    "rust-std-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "2cc8cfc5cc60e0c6a473bb609b54251c561d8d12a986fda8a7ca86dc1d36b4df",
+    "rust-std-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "57d60a519dbce12146849f7e72d55f3cffe9cdcbff8d58e90bb62d3c016bb5c0",
+    "rust-std-1.61.0-aarch64-unknown-linux-musl.tar.gz": "4858a62e12e8541d2f5a7dec0ce0ea73c73ed9dfc73766e6e2d08b8a8bcdfde5",
+    "rust-std-1.61.0-aarch64-unknown-linux-musl.tar.xz": "a7b10112f276a1bafaade1b921985684c93e172f014a5d21b346eb208e387605",
+    "rust-std-1.61.0-wasm32-unknown-unknown.tar.gz": "c502b5894f226c2579ead0c45395327be63eadca75700979ef147a7135d55302",
+    "rust-std-1.61.0-wasm32-unknown-unknown.tar.xz": "2b854a2c9d39fb943d655ddf82da8bff31e954c6eaf7e2ed7ce51e11d15a3534",
+    "rust-std-1.61.0-wasm32-wasi.tar.gz": "6682457e5d9233638bf1ac5c896bde5740686b9504684553faa74407c0b00b5e",
+    "rust-std-1.61.0-wasm32-wasi.tar.xz": "985556f07b723e3d51be669d6d8182afc68f7c0efeb579f31d4bdb52f931895b",
+    "rust-std-1.61.0-x86_64-apple-darwin.tar.gz": "cbd76787224916cd16c11b9b0d506a479413b6384525fb5c3bdd92fe5b2c0806",
+    "rust-std-1.61.0-x86_64-apple-darwin.tar.xz": "c01ff5b433b17858a1fb648f3c5a76ef29b2437360d81c20cf4442543f20d39b",
+    "rust-std-1.61.0-x86_64-pc-windows-msvc.tar.gz": "8d93cd3e3792054ed5cacae601fa003106ce508420e5f78ae759c405255da15e",
+    "rust-std-1.61.0-x86_64-pc-windows-msvc.tar.xz": "9212d90983ef22b1670c0b8c7179cfd68eafe875fefc62afbf026867c022e338",
+    "rust-std-1.61.0-x86_64-unknown-freebsd.tar.gz": "2ab4e71a0e0f65fa41df203073e7dbd67368e6e774ef2cf01b3a77b3d001478b",
+    "rust-std-1.61.0-x86_64-unknown-freebsd.tar.xz": "ee35d9703c8c3857ef1ba75809e207e8365941e781f2f91fffad4c7dcbd22383",
+    "rust-std-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "27383bf7b39d2ff1298fc0dfcd70ac70e1c01e70d7d0c60a2002c266a25b2015",
+    "rust-std-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "270b07aa5f2de52255a117e1e587138d77375ce0d09a1d7fead085f29b3977e9",
+    "rust-std-1.61.0-x86_64-unknown-linux-musl.tar.gz": "fb41f74af65bb86626ae9b641167f82cfd8c9f17f470b0174b3eb11ba651fe7c",
+    "rust-std-1.61.0-x86_64-unknown-linux-musl.tar.xz": "1f4f2e4c5dd0f9b0dac7c8888f4a49ef16a6fe8992f39895823d2a442f0fe408",
+    "rust-std-1.62.0-aarch64-apple-darwin.tar.gz": "49447cf8f6c9ceb27626a860adecdaf912ab14f3f93a1f12007d2f60aea8174e",
+    "rust-std-1.62.0-aarch64-apple-darwin.tar.xz": "8bd3a2c75d954cf81ec0a86e1f331bc2d87c1307d33be2b0bd4cc5daea12fb62",
+    "rust-std-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "3bffcbf76689f8ae6d00d5c115515eb9363a3b6c2cc1dfd8ed397bba2fda5f78",
+    "rust-std-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "dd5df8a92af3e5d49a1122b9561821ebd72a9317884a37ecddae041e652a7563",
+    "rust-std-1.62.0-aarch64-unknown-linux-musl.tar.gz": "9f21aa1992429bee75437532dc61de6bfdd38c18169f9bddb8eb9eefa8576648",
+    "rust-std-1.62.0-aarch64-unknown-linux-musl.tar.xz": "8098164090a4625f5d7caebce3475b50424689f5ca849cecfc341ce6b7f569e1",
+    "rust-std-1.62.0-wasm32-unknown-unknown.tar.gz": "b6373e4d87eb8339fce915243117ff243093acaa91ce08f25e0f65520999854e",
+    "rust-std-1.62.0-wasm32-unknown-unknown.tar.xz": "80827b5ffd3036dd0e2a7115fb40df62b8fb64b2937455b19b8a8c3639d020e6",
+    "rust-std-1.62.0-wasm32-wasi.tar.gz": "d7f8a75dfef2a363fa294d149082d058f24f42b4be541657c9503433736958ca",
+    "rust-std-1.62.0-wasm32-wasi.tar.xz": "95e9e41c9009490b9d4934b49a0faa979c4048c75e504fae00c2da506b1bd085",
+    "rust-std-1.62.0-x86_64-apple-darwin.tar.gz": "426707e7f6e37f94266a5a4e4488c5c75dbe5385e9a1b6b1eb02f709e6ed7bb0",
+    "rust-std-1.62.0-x86_64-apple-darwin.tar.xz": "599cc7766a5b46d157bc2e00771822310925221e673b4fba137731cb209a140c",
+    "rust-std-1.62.0-x86_64-pc-windows-msvc.tar.gz": "eb7be417576ae9d95bf3e5bf5973fc06509005f2aa61173baf0e62bf8b7df4f6",
+    "rust-std-1.62.0-x86_64-pc-windows-msvc.tar.xz": "e00f96ec3f88fb39ac1bd17840a2ac1592df30cdf7f8c277cfb36596ebd7fd5f",
+    "rust-std-1.62.0-x86_64-unknown-freebsd.tar.gz": "cf94f19a5ffd8ec1817abf80c16a17853947bd48bf2cec88370f45e9dec24d1b",
+    "rust-std-1.62.0-x86_64-unknown-freebsd.tar.xz": "834774bbe9126256cd8e9c8e1560305735e50e4d1cea9708eaf225011df0cc3c",
+    "rust-std-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "80c3a88c8a972d20b2ac59adc789495c508d6b70d1fad2aa12e419ab683638dc",
+    "rust-std-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "addfae87b6b1b521d98a50fdc5120990888a51bb397100062e9c558267c67c77",
+    "rust-std-1.62.0-x86_64-unknown-linux-musl.tar.gz": "44f3efb98179a2482ace8a5a126a1f2f58e4f649d35bac1760515af47bfb2d3d",
+    "rust-std-1.62.0-x86_64-unknown-linux-musl.tar.xz": "1280847d3026276d0c511fb42d81bf8c39f01b87bb19bda4248386e35b86aed0",
+    "rust-std-1.62.1-aarch64-apple-darwin.tar.gz": "02dbd6cac8f1a3c7e08c5b2818598ac22f48c09b4d419d7534d8f1780fe36e99",
+    "rust-std-1.62.1-aarch64-apple-darwin.tar.xz": "93573f03b9dfba038f67cba659eda4b6e17a51fe53a089a1dd4ebcad53553c45",
+    "rust-std-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "6af6bac7a3ae1b2e1b9153d5d0bed124122daf8e6a8e90440701cb199c2c95d2",
+    "rust-std-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "9b3caeba947cd6d68ee45cadd6148d781bddb596d3a4addf2b68d0d1149adf1c",
+    "rust-std-1.62.1-aarch64-unknown-linux-musl.tar.gz": "ef305007ff13cefabb08a6bc69751fdc25a453fa54aaf535cfda21d8ad86426a",
+    "rust-std-1.62.1-aarch64-unknown-linux-musl.tar.xz": "4af7045d381f9eedd01ced7625c4062598e9f7cbf97c089e47a1b718c10c246b",
+    "rust-std-1.62.1-wasm32-unknown-unknown.tar.gz": "2720a4d88a4940c9c73be36f20c95c87ffd79ae1a47c5e8519a6a95e7a1f0750",
+    "rust-std-1.62.1-wasm32-unknown-unknown.tar.xz": "b7e4d9ebf2c4a224808ccbfe1298ae41ef7b2a901c8940b7ec62bbe077077173",
+    "rust-std-1.62.1-wasm32-wasi.tar.gz": "1b19789de33d8a35c87b68bf8007da6ec99de132a82dbbe6c4a0fb0e2b3f91ac",
+    "rust-std-1.62.1-wasm32-wasi.tar.xz": "5cf8b3681dfa9e3dd06d6c77942e034dfcc979242d6f8a691c6054b99b39bdf5",
+    "rust-std-1.62.1-x86_64-apple-darwin.tar.gz": "c8597ca0924adbdc804014f3a39ffda7c7f98fba4c3b4095a8e67f530f7d6299",
+    "rust-std-1.62.1-x86_64-apple-darwin.tar.xz": "621d7336bf019363f5eb31d425c93f7d4f2fe8fe22cd21521586dbe8c79d67ec",
+    "rust-std-1.62.1-x86_64-pc-windows-msvc.tar.gz": "7b1c7a6f51b958b76e5fd4e9221527ef559c40832b797fe66cc36e797238c22c",
+    "rust-std-1.62.1-x86_64-pc-windows-msvc.tar.xz": "554ab57c234d25a2b3fc13b1b72c5fea767a817becf86b55b64539400ae78b05",
+    "rust-std-1.62.1-x86_64-unknown-freebsd.tar.gz": "04f1d52ecafba78750d384d720a6ee9c3dad2e8fb0a16f37cbd69f5b28fc8da2",
+    "rust-std-1.62.1-x86_64-unknown-freebsd.tar.xz": "dd4e64380ff903f2cb06fcd8c285efc65a2bffd2b417a5108310218e62d42dd3",
+    "rust-std-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "564e5afc7151826190f8b31ed839fc305469158967ffe907d4c6e712a281ff5f",
+    "rust-std-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "431110528b25c0eeff47304ebedc423fa8051e995b35cfedce880038a52b23a4",
+    "rust-std-1.62.1-x86_64-unknown-linux-musl.tar.gz": "e4adac8cb3c49241f7c0b61b2e0eca70abe0b3e4786182654f7ba8f33027c177",
+    "rust-std-1.62.1-x86_64-unknown-linux-musl.tar.xz": "1d286fceccd0370b13a0721bd1e164f5dcad0c0c4f3345af2fe88889583d2c8e",
+    "rustc-1.26.0-aarch64-unknown-linux-gnu.tar.gz": "ddddaddb585b95d81854171ac4e02d07790505853cee3034f199c8b7897f32e2",
+    "rustc-1.26.0-aarch64-unknown-linux-gnu.tar.xz": "859daf94bd0f9c14aa58af41c30b5105c49f28860bcebba3ddcd9699813954cb",
+    "rustc-1.26.0-x86_64-apple-darwin.tar.gz": "5cb67314656d16cf2a1bdc84213aaaf6afdb5811825c7afba916e2d42d3d641f",
+    "rustc-1.26.0-x86_64-apple-darwin.tar.xz": "0a34d9c744f5d0f1e15a931c6091a489e27b3669e24d2cec33bfc4ea295604b5",
+    "rustc-1.26.0-x86_64-pc-windows-msvc.tar.gz": "427ae4a43a901be288ff3a4dc85d3a14f7e95108cfdaae63e8dbb4a227e07cdd",
+    "rustc-1.26.0-x86_64-pc-windows-msvc.tar.xz": "8af095ac8553cf1d2cb27e4ab7833666cfa3394149b6df52f409faa0edb37636",
+    "rustc-1.26.0-x86_64-unknown-freebsd.tar.gz": "9499ce5b68d631f8345c387e1f59b21892d97e0acb5650deb61a34719310bd38",
+    "rustc-1.26.0-x86_64-unknown-freebsd.tar.xz": "e799cfdf3867aaa6740903c99f61c14f1c9cafc1bbd57a4113bd9d9b5a9773ba",
+    "rustc-1.26.0-x86_64-unknown-linux-gnu.tar.gz": "7ca9a30010602aaf2244c376a3cc5baa89429d54da17b8ba1cb0cdfdc846cc61",
+    "rustc-1.26.0-x86_64-unknown-linux-gnu.tar.xz": "58d2e6c167c0a7d5fb4f76cc57ce65bd08c93e34bbfb97177523c9db49468a9a",
+    "rustc-1.26.1-aarch64-unknown-linux-gnu.tar.gz": "7a06bd5312cbe8bb19e526b4c9ab04de1628019815a566ce0ff9401515bc2c04",
+    "rustc-1.26.1-aarch64-unknown-linux-gnu.tar.xz": "754d12eb5680e750a919504ca1028c9a5917f410c5c5799c1946c3a01726d423",
+    "rustc-1.26.1-x86_64-apple-darwin.tar.gz": "e5f4291c3709b170fbeb17fab7fae50fe0c626dbdc5c42ddb1f342ea03acbad4",
+    "rustc-1.26.1-x86_64-apple-darwin.tar.xz": "b252eb43238afa260cdb67e1d72b32a5194b45aed1422fac0a93cf7edc41925a",
+    "rustc-1.26.1-x86_64-pc-windows-msvc.tar.gz": "e84dca395837aa24b4ea87d46d06a333c2e87d0be5fc5259476a95fbcb05accc",
+    "rustc-1.26.1-x86_64-pc-windows-msvc.tar.xz": "16be234ff02b7e0643fc4b7275168e0f58cc3fc452ac69e3fcf1430c6ce51927",
+    "rustc-1.26.1-x86_64-unknown-freebsd.tar.gz": "dc3dc36010d73349152e6158522e82830fda173007b9299b0a947c90769c54ff",
+    "rustc-1.26.1-x86_64-unknown-freebsd.tar.xz": "24baa5d15b20a8355901afb9ecf3b4742ce62ab7959a3ec5149e03a8200578c2",
+    "rustc-1.26.1-x86_64-unknown-linux-gnu.tar.gz": "45bc1c30e0c473c42889f22b182ec6f0b0fc3be0825e1607c64933592486eb2a",
+    "rustc-1.26.1-x86_64-unknown-linux-gnu.tar.xz": "5736225bd53f9955801a19c872a937a2ab2b7765499761d72801758b3b9ade30",
+    "rustc-1.26.2-aarch64-unknown-linux-gnu.tar.gz": "b09fea72e259811fcbc6aade942329bc4588356470765987ee37d6108a82f7b6",
+    "rustc-1.26.2-aarch64-unknown-linux-gnu.tar.xz": "a70793b101aebcdd528072cb4b3590a3ef651cc15642c4d031e933653e7800c3",
+    "rustc-1.26.2-x86_64-apple-darwin.tar.gz": "5b0a3d94a4fa76ed28859123e35c09a91d7eb8ff65f40ec4c50dfa56ffed8ae5",
+    "rustc-1.26.2-x86_64-apple-darwin.tar.xz": "1a4ecdc1fd15dcd91d40b6a94ee76db969fc093fd56fbeb749271cf14942fa28",
+    "rustc-1.26.2-x86_64-pc-windows-msvc.tar.gz": "15eb657747a86a4481501bb21e2dbcf56a06c0beea00e8677c86ef74b8812576",
+    "rustc-1.26.2-x86_64-pc-windows-msvc.tar.xz": "b2a75bff1972e23791459ddf1e15981b0d54bc29137e14cfb3f3455ad1e0284e",
+    "rustc-1.26.2-x86_64-unknown-freebsd.tar.gz": "48f20a8dc6bc54c90aae685d0c3fa2caf3677f1c4a4d0c53aee9d15588bd0735",
+    "rustc-1.26.2-x86_64-unknown-freebsd.tar.xz": "fc7d1a5a1573e7ef6e70a99b6eafb7c079cfa17ba5fd39370f58612a14b9341f",
+    "rustc-1.26.2-x86_64-unknown-linux-gnu.tar.gz": "1ebdafe52b581a63cea217a036fd6e77706d2715ae9cfe10a8c715d753326004",
+    "rustc-1.26.2-x86_64-unknown-linux-gnu.tar.xz": "ab750f32e13ca1e431df6e382972ddbc4a63ce2deedfc4eb2fbd9f70a4327230",
+    "rustc-1.27.0-aarch64-unknown-linux-gnu.tar.gz": "b58c0373df43623adcc990d36190ee157f46f6fba650d0242632f3df2dfbc425",
+    "rustc-1.27.0-aarch64-unknown-linux-gnu.tar.xz": "de90185473d5ea52dbc7a2f1e8815ba0a78ee9d122f9951f8e03e590e50619eb",
+    "rustc-1.27.0-x86_64-apple-darwin.tar.gz": "0b00c6971ef524f68b911f621d199e60c339c390b18e12700d55e012b62aa90c",
+    "rustc-1.27.0-x86_64-apple-darwin.tar.xz": "d038bcf10c56af570261feb3a7badf521530c185b73598f26e342aa1b314b0bd",
+    "rustc-1.27.0-x86_64-pc-windows-msvc.tar.gz": "22eeac4f4b4d91c28cf18c6a4a8b477091e6661e3e827c0b32355d52e634a517",
+    "rustc-1.27.0-x86_64-pc-windows-msvc.tar.xz": "eb727446a12d39dd1c4a831701d7a99ec62258aabdb2762fc8bd23dfb60a8546",
+    "rustc-1.27.0-x86_64-unknown-freebsd.tar.gz": "24c193213450ffacffebdd1413d77fc3c1ed00049cf1ede2d0f3f370dd86b462",
+    "rustc-1.27.0-x86_64-unknown-freebsd.tar.xz": "14d298640f0676c89a651bada2bb1a568f2401873599f71bb0c0ef98c7d13234",
+    "rustc-1.27.0-x86_64-unknown-linux-gnu.tar.gz": "29f399a1a208ea3f27f21e57f2d832e9d801c397a986aaea17e3a2ddeded6c3c",
+    "rustc-1.27.0-x86_64-unknown-linux-gnu.tar.xz": "85e1f29d83a22cb1758e5361676ecce273db9ceba5cf473d920890cc3708e981",
+    "rustc-1.27.1-aarch64-unknown-linux-gnu.tar.gz": "c48d19ff5474ce75ebbb97e1b26ca8dc23d38f635ae7a3e21b8a4139df5cfb8e",
+    "rustc-1.27.1-aarch64-unknown-linux-gnu.tar.xz": "d439b48d80fac05bb3cfe54f2d6e58fb9554fbf3ba5470955bdcf9f94cf99f3c",
+    "rustc-1.27.1-x86_64-apple-darwin.tar.gz": "747f616e07e5da9323a21c1cf9d76b53bb46094a68223d461a7333f26c714f19",
+    "rustc-1.27.1-x86_64-apple-darwin.tar.xz": "d5fbb6be167f0493a94c310d70a8863fac3e4e4578f0401d02334af3bd7778d9",
+    "rustc-1.27.1-x86_64-pc-windows-msvc.tar.gz": "76abfd523f876516e589f62a83eaaa6e55496745e32f2e9f3f87aca55da3e8b8",
+    "rustc-1.27.1-x86_64-pc-windows-msvc.tar.xz": "f03afefbfcae245fbf45eb76dd88960e6f790d015b20ad45f8b170a9b0f6e62a",
+    "rustc-1.27.1-x86_64-unknown-freebsd.tar.gz": "9b199c21094f996fd9d4b620a5ff2c4bc5b8dab13e96bdf7c113291f601ec944",
+    "rustc-1.27.1-x86_64-unknown-freebsd.tar.xz": "506b92f763ce9d0feae49804e581237145cfc5aac96792134cfc20d8224f498d",
+    "rustc-1.27.1-x86_64-unknown-linux-gnu.tar.gz": "a6bf6205b345b854d705d0028a4e7161a0f5b209e464130e7d135fa01a296dc1",
+    "rustc-1.27.1-x86_64-unknown-linux-gnu.tar.xz": "d4c45e15d4ffb150f3eeef1fa2945a5ae541ab791f9464e9a4dcccba77bdf9c7",
+    "rustc-1.27.2-aarch64-unknown-linux-gnu.tar.gz": "c1a5ddc6e40be5eef7afad8c126c6f426d07eb1a297902c7ef871279fdbeea49",
+    "rustc-1.27.2-aarch64-unknown-linux-gnu.tar.xz": "27e0f00de24321b6200b66fa70ccec0e2f71126ffdd2ada50089a5e7d3bc2ab1",
+    "rustc-1.27.2-x86_64-apple-darwin.tar.gz": "b5c5edd2094afd0a92ad776dbd12cb6ee37800b940437dece10229ccacd1f561",
+    "rustc-1.27.2-x86_64-apple-darwin.tar.xz": "21d8cd0e2f73d45df8e8f29f0f6b7f1ff2e32c6adf85768958fd1382f6598073",
+    "rustc-1.27.2-x86_64-pc-windows-msvc.tar.gz": "c00dde7df7475340f5574b09c86d0e19f6707f838bf95d2ff463a8f4d4d76d33",
+    "rustc-1.27.2-x86_64-pc-windows-msvc.tar.xz": "80e3ff138915dc9f1eec4b437351884ff566522525483c96486a4bfd3f0bb837",
+    "rustc-1.27.2-x86_64-unknown-freebsd.tar.gz": "66d739632574fa52e82b40aca0eb4cef7a38047ed67cd6a240d8798a3cf9b6a6",
+    "rustc-1.27.2-x86_64-unknown-freebsd.tar.xz": "f0af1185b47da1e4aaad286444ee4c17cea5632585d78bce65e054d41912b1ec",
+    "rustc-1.27.2-x86_64-unknown-linux-gnu.tar.gz": "ec3efc17ddbe6625840957049e15ebae960f447c8e8feb7da40c28dd6adf655f",
+    "rustc-1.27.2-x86_64-unknown-linux-gnu.tar.xz": "927f88b5362e4b601caf619f64d609a88c03852fa505991c08c5f661fe71d7ac",
+    "rustc-1.28.0-aarch64-unknown-linux-gnu.tar.gz": "09d1fa08d7403495ca07565eaabfcbe6703e842b765a68d5110cf4e64e988476",
+    "rustc-1.28.0-aarch64-unknown-linux-gnu.tar.xz": "9a8743b219e0558963f75991af96d6427a9bcb896f4fe1bd7c0bd96e150c7b09",
+    "rustc-1.28.0-x86_64-apple-darwin.tar.gz": "10a5bf35177508c72050149663ff679a770eafa8557c6be0052603ca1267ae4d",
+    "rustc-1.28.0-x86_64-apple-darwin.tar.xz": "51bde784a33d2a445a8116315893f067ad37da522aa53c4c1e4ce7b2ae5c9ff0",
+    "rustc-1.28.0-x86_64-pc-windows-msvc.tar.gz": "39871017768fe779dbffaaff8696baf0788bb9c4d6c4caa3d2564e1153ab2199",
+    "rustc-1.28.0-x86_64-pc-windows-msvc.tar.xz": "e00530e378f4f960911615e8c366601b5babae1707bdc8b32d7dd076479407e6",
+    "rustc-1.28.0-x86_64-unknown-freebsd.tar.gz": "5eeaa17844f87e59aab821dc98dd15a920df0d1d7da3ef5808d2c586331c92a7",
+    "rustc-1.28.0-x86_64-unknown-freebsd.tar.xz": "c9083cf897611ea671340c5124d65aaa68ead46076e95af4cf710aa0707f64bf",
+    "rustc-1.28.0-x86_64-unknown-linux-gnu.tar.gz": "008bb3d714544bc991594b29a98a154441914c4771007130361bbadfb54143d0",
+    "rustc-1.28.0-x86_64-unknown-linux-gnu.tar.xz": "193f5e18e15152c26d1b09b97ee72f334a0e9ef8f0ba05187a3f20dc02443c4f",
+    "rustc-1.29.0-aarch64-unknown-linux-gnu.tar.gz": "c7480c0b98ae84151ffa8cadcb06d1ed2a11a755b6619ac1b89e7c886e98b7ff",
+    "rustc-1.29.0-aarch64-unknown-linux-gnu.tar.xz": "00f3a2380de741fbada38ad8f25945152029ebfc30efc6c6a4de12d7463f3cc4",
+    "rustc-1.29.0-x86_64-apple-darwin.tar.gz": "3462ba7e841485f93251762ce0b36a3922830a1249e5d79d6d010ceb43e4ee3f",
+    "rustc-1.29.0-x86_64-apple-darwin.tar.xz": "15ecaefae6665ae2160f5dee9bebd5cbb2b2be81853de2b00acba8fbcaaae6ba",
+    "rustc-1.29.0-x86_64-pc-windows-msvc.tar.gz": "b27c38cb60092e9cac8afc4ad760349821e6b068d986e13ad46233b9676ab35e",
+    "rustc-1.29.0-x86_64-pc-windows-msvc.tar.xz": "10b2670a424748e860160de4391f44de7dfaf9dcbf2d9fdeff2a97cad758b92d",
+    "rustc-1.29.0-x86_64-unknown-freebsd.tar.gz": "38f30c96f0fa7ebfe94cd2db57e9b99961feca0a09045dbc1e955404b5d7f40a",
+    "rustc-1.29.0-x86_64-unknown-freebsd.tar.xz": "6785925415c8e6bc280c02af76057d4e75a3972eab02c26adaf2ab834ecf13a4",
+    "rustc-1.29.0-x86_64-unknown-linux-gnu.tar.gz": "229c51d51efc239e6eb9b428795bb7f57309f11287705dcba4877d5e220102a0",
+    "rustc-1.29.0-x86_64-unknown-linux-gnu.tar.xz": "3cb6b99c5d2efae5d005fe9fa75086e2723be2eb46653712c114c792bb7d2625",
+    "rustc-1.29.1-aarch64-unknown-linux-gnu.tar.gz": "784ea61ff852225be622141600c79621456f1ad9f9becdf7070eb0217b8635aa",
+    "rustc-1.29.1-aarch64-unknown-linux-gnu.tar.xz": "26094bf08c1f4154cb7b7c469430f25212b25690dc97aa688f2f35866a72feb4",
+    "rustc-1.29.1-x86_64-apple-darwin.tar.gz": "64b86c923786dfafe8bbb5fcbef0d854132f29f0bf635830cd2d95ff225d2317",
+    "rustc-1.29.1-x86_64-apple-darwin.tar.xz": "3f7289db7a5c64f96c4debb25885927ecfa5a98c8825e1874cc9a7da547e9e3e",
+    "rustc-1.29.1-x86_64-pc-windows-msvc.tar.gz": "2675bf444df8fe900b84098917db3e765c87ad3c812ef2a818c7e622d77db457",
+    "rustc-1.29.1-x86_64-pc-windows-msvc.tar.xz": "f84797169e0ec6e7ddd08f67c5bfd5431eb299165a0db7c06eaa7b620d538d23",
+    "rustc-1.29.1-x86_64-unknown-freebsd.tar.gz": "ed9b2ccbfc6028ce2c73105cebebdb9f2e2332018c687951639176358bfed9a2",
+    "rustc-1.29.1-x86_64-unknown-freebsd.tar.xz": "9bc0633075fee0e56d5306cebea40a1805594eb182d8be57161d2cba159827ba",
+    "rustc-1.29.1-x86_64-unknown-linux-gnu.tar.gz": "b99324394ba20bd12efa9d30dad72b10747bd075f97c7a9fd0ce3f9394383fa7",
+    "rustc-1.29.1-x86_64-unknown-linux-gnu.tar.xz": "b6e35469543f059c02d68f4271d5ada6fb1ec20d9c0f5b4edd41b3ab4958dfe4",
+    "rustc-1.29.2-aarch64-unknown-linux-gnu.tar.gz": "54a8c54f04dec72d7f8655ce1c3037dc23ded2f9ada26e7ea77aa45fc8b0d0c5",
+    "rustc-1.29.2-aarch64-unknown-linux-gnu.tar.xz": "46e4c22e991f1fcc1518622e3b5db57d7c7bc93cbf1faf0734460d864edf35f3",
+    "rustc-1.29.2-x86_64-apple-darwin.tar.gz": "d9c0dd8127ed632e27d751f051bca933578317ffe891e39155ae721bc1d3ec05",
+    "rustc-1.29.2-x86_64-apple-darwin.tar.xz": "9b7871d47ce1120ad791373d0972caee114a00021f112f2829ade69e43149cae",
+    "rustc-1.29.2-x86_64-pc-windows-msvc.tar.gz": "53dcf97ed9461784d713c5a413df7e8e5aa4c9158a4d5921a038b77b17120a17",
+    "rustc-1.29.2-x86_64-pc-windows-msvc.tar.xz": "934815535cdceca8d055c2a2630206c6049cd044266558ed769dfdaab8781c3f",
+    "rustc-1.29.2-x86_64-unknown-freebsd.tar.gz": "94fba7a7b88ca86c037a48376b7e09bb4ca66e1268fc8d664796cdbdee97c0fa",
+    "rustc-1.29.2-x86_64-unknown-freebsd.tar.xz": "e62e706aa52df221d976219ee2e7ac7afbf7affe93c75e9cbeb50cb61588be48",
+    "rustc-1.29.2-x86_64-unknown-linux-gnu.tar.gz": "b04146b09edc4bad0de7c8fa1a5a2aa4416d365c03c5962b8a5b26c7047b7cc9",
+    "rustc-1.29.2-x86_64-unknown-linux-gnu.tar.xz": "b0ea41cd20caf9af62394601b09d2c8b12814293f3cc1247a8c61fb672477499",
+    "rustc-1.30.0-aarch64-unknown-linux-gnu.tar.gz": "ccff6c6d8386655955265f586862314dd3b646bbeccd1369877f4343b1960a53",
+    "rustc-1.30.0-aarch64-unknown-linux-gnu.tar.xz": "ab3e74b2fb9722461c43b0ff17cbd5673dde2c79cfedd61ef1ed9350ac20614b",
+    "rustc-1.30.0-x86_64-apple-darwin.tar.gz": "d4fcbc61c7323e6fa1001ae268c5db1693ff07e5ef1ac25907138a2ee7bd8faf",
+    "rustc-1.30.0-x86_64-apple-darwin.tar.xz": "ca5fc1f48c5f95fa92441c9d1f5fe8186dd8f6e16276fc55181e22398981ce0c",
+    "rustc-1.30.0-x86_64-pc-windows-msvc.tar.gz": "2d2d1a51bb15794920a2f0cccf7fd2c8bfb037d00975e799ff4a4ac3b83032ce",
+    "rustc-1.30.0-x86_64-pc-windows-msvc.tar.xz": "92cc8e26f4bea9b8d6dbfb16d3da8ae33146117d3cb72e5a87a28a8a72947c7b",
+    "rustc-1.30.0-x86_64-unknown-freebsd.tar.gz": "68a74949e34118406673cf8cc0098b011907c840890e0640aa3b145ce91c521d",
+    "rustc-1.30.0-x86_64-unknown-freebsd.tar.xz": "99a2876c053b63e2e0b4d8aeffb18e0e036ccbbc93987f2e3d0aeecab429c751",
+    "rustc-1.30.0-x86_64-unknown-linux-gnu.tar.gz": "cc45058e9963d33ca28220e752d9e360b7e05f17e34284f5f8197738c3a88444",
+    "rustc-1.30.0-x86_64-unknown-linux-gnu.tar.xz": "97b3fd6978d1321b7c93d61cd3b9823d2973bfacaeefe5e239c376d317efdf6c",
+    "rustc-1.30.1-aarch64-unknown-linux-gnu.tar.gz": "f3569c0a74f07aa2e56bf93c9f2aaddf7434ce17f85d6d6ff854fb9245888bcf",
+    "rustc-1.30.1-aarch64-unknown-linux-gnu.tar.xz": "4215f1382923325f17fc66356f308c8e997b3a9dd495693d43eb6e76462c6133",
+    "rustc-1.30.1-x86_64-apple-darwin.tar.gz": "fd8ca09595e9d686aef9e3b94259500b482cf7a01de167a8c72a4f8d19a604f3",
+    "rustc-1.30.1-x86_64-apple-darwin.tar.xz": "bd19f5dcc0f623872b1e81ed1a40d46c21be9266c3bcbf8cf396671b290ac0f9",
+    "rustc-1.30.1-x86_64-pc-windows-msvc.tar.gz": "8ad1551132de8c766d2d7c66d9bb93a959ebbfa7d86c47f196227fea914583dd",
+    "rustc-1.30.1-x86_64-pc-windows-msvc.tar.xz": "5f5e9c6e61125deed2ed099dc9bdd63a7a7e1ad766707fcbc43bc0588d3eb15b",
+    "rustc-1.30.1-x86_64-unknown-freebsd.tar.gz": "2f79e386bed201eb9b6ffa58240742617ec6006accb559dab7b6424f33b65b5f",
+    "rustc-1.30.1-x86_64-unknown-freebsd.tar.xz": "dd65c326248449c4049b21ed6cf69cd3c436c88ca30593b259fb869e52823b55",
+    "rustc-1.30.1-x86_64-unknown-linux-gnu.tar.gz": "d84de208499b59e4a3c074f9f3f2fcbb26fb20d6bfd19262e6d5f4181ddbe34d",
+    "rustc-1.30.1-x86_64-unknown-linux-gnu.tar.xz": "11c639c3d86cdc8c7f40398d0cec6858ca8621becd400a0dd759fc8ab58e62d6",
+    "rustc-1.31.0-aarch64-unknown-linux-gnu.tar.gz": "1e480d8cadceff39ad39d30fe874bfd485386c98842f16423310cb2ada1923c0",
+    "rustc-1.31.0-aarch64-unknown-linux-gnu.tar.xz": "417534a64da0b39627ca762d214d0680a0542ab0f5ffb231b47896810ef7efb5",
+    "rustc-1.31.0-x86_64-apple-darwin.tar.gz": "250fd3f3aba7d38c4af9682a12a37c733dbd6dde127665b0f493551e6c4aea8b",
+    "rustc-1.31.0-x86_64-apple-darwin.tar.xz": "a0bfa1e7f046ab9d78247c7aaad16533210b2cff731ee7908e543c8864faceb4",
+    "rustc-1.31.0-x86_64-pc-windows-msvc.tar.gz": "418abc285870ab4d85d53769eac229cd66b7fc7cdaa6e73699530e88ee5dfaf4",
+    "rustc-1.31.0-x86_64-pc-windows-msvc.tar.xz": "86d20e6a5766f0e404d649fe1addf2785157894c4e379e3f615001b20844d59f",
+    "rustc-1.31.0-x86_64-unknown-freebsd.tar.gz": "9ec40454e22e3494b9859c03e37e8851077f897845bcf838d69d4393900e7b33",
+    "rustc-1.31.0-x86_64-unknown-freebsd.tar.xz": "2dff193a31ca6feae7ce9534c94eadada702e654f9f8cf22813e5e0befce4013",
+    "rustc-1.31.0-x86_64-unknown-linux-gnu.tar.gz": "5c4581f0fc05f0f5076db6231b0c1a4d27eb61c0b36bfb42d97243ad8f4e43a0",
+    "rustc-1.31.0-x86_64-unknown-linux-gnu.tar.xz": "9a370c31e3d3c9318136a7c5c497619f15200d797688d3de2c2d36ba9458d9c1",
+    "rustc-1.31.1-aarch64-unknown-linux-gnu.tar.gz": "315ea9c981e4320a557f6c75b58242c0598a90316f610b4dfef5d06e82b927f2",
+    "rustc-1.31.1-aarch64-unknown-linux-gnu.tar.xz": "5d1a2038cb793c04d507c63450670ce02671021d74fcb4c39a6fd793fc61c927",
+    "rustc-1.31.1-x86_64-apple-darwin.tar.gz": "e3f9c5ccd0e6e09da8012f30ee9a1880efebc0c039cc1f3866cf50c984be16a7",
+    "rustc-1.31.1-x86_64-apple-darwin.tar.xz": "b71f573bc2bdc3510a1a99e68f04e321701d88ba65fd624e2c5cfd885c38b43a",
+    "rustc-1.31.1-x86_64-pc-windows-msvc.tar.gz": "0320b7544de463d4444c6445fd2e23044e28fde1173f614145a72a4bcfc6ccd9",
+    "rustc-1.31.1-x86_64-pc-windows-msvc.tar.xz": "6d283715102d67acba4c5ea4a430441678a9e444eb8dec710cc9d8ab237624a6",
+    "rustc-1.31.1-x86_64-unknown-freebsd.tar.gz": "fb38ad94976c273c0fb95d0b5ba2d1ce90684e58fa06fafc9f8050ba00559f50",
+    "rustc-1.31.1-x86_64-unknown-freebsd.tar.xz": "41ee1aeed5ff6b226d2e6920ac6b347fa0577e1944eb802d46fe01b2a8d1f269",
+    "rustc-1.31.1-x86_64-unknown-linux-gnu.tar.gz": "77d47ce7e27a146e4301f11befd43f3fc5ac195ace0dfc07ac8154f130b057ea",
+    "rustc-1.31.1-x86_64-unknown-linux-gnu.tar.xz": "84d65ea3876a73f674a3ad3e627b273e15c9162f497c09c4d4b119222623e41a",
+    "rustc-1.32.0-aarch64-unknown-linux-gnu.tar.gz": "193cbe67161e20a0bf4eeb8bafeb302f3e61a59ca939a0454fc3fbc76e9524cc",
+    "rustc-1.32.0-aarch64-unknown-linux-gnu.tar.xz": "eb8947bf2f05aa622c5d49e3420502fd84f66d60257b652b30d84d0ef1759f6a",
+    "rustc-1.32.0-x86_64-apple-darwin.tar.gz": "0334c4568f09cae984e53e4a3f4ff207e2bcc50fce13ad32b8eca89f014e5e61",
+    "rustc-1.32.0-x86_64-apple-darwin.tar.xz": "90dce7015d17471487d88136c4d3607f81402d04e38f5cb355e0782c82f6bb91",
+    "rustc-1.32.0-x86_64-pc-windows-msvc.tar.gz": "a7799495d3032c5ad6b5f712f7d7a9538f695c6d8d2e5258c0f7aadac8cea1d4",
+    "rustc-1.32.0-x86_64-pc-windows-msvc.tar.xz": "63ba3c27701881e7f5b733acad4a65033fa92f215e501d3d93e096e806ddf3fb",
+    "rustc-1.32.0-x86_64-unknown-freebsd.tar.gz": "a14a0e288be8ce894a85810151a2eb70fc86afa36e4a5fae4e903c744b888687",
+    "rustc-1.32.0-x86_64-unknown-freebsd.tar.xz": "69243bbfd9db20dcf52074d818ba3e8725cd8dcec86b283a920e76c559ec0b74",
+    "rustc-1.32.0-x86_64-unknown-linux-gnu.tar.gz": "75c31f32e19548c1608611d08b82b87560e02f15caac7b2663a8189a4609977c",
+    "rustc-1.32.0-x86_64-unknown-linux-gnu.tar.xz": "8f553852579fac6cf7c10f77ea842752caa59a79b5c75f5c2126489d14cbbddd",
+    "rustc-1.33.0-aarch64-unknown-linux-gnu.tar.gz": "e23141cc65d1d8e3957a96f3a601bdb7a9d09026ac20396aeaebd2613ea0d08e",
+    "rustc-1.33.0-aarch64-unknown-linux-gnu.tar.xz": "b4264930d8b98838778946d766a311fecc4d394b7e01ec1edd4dc99b5653f23f",
+    "rustc-1.33.0-x86_64-apple-darwin.tar.gz": "ea1f0a95015bbefba9eac5890b12ee2887f464822ab579c8bbc2db3023c6dd08",
+    "rustc-1.33.0-x86_64-apple-darwin.tar.xz": "c6cf3e201a3e600716efba26f97d33d0f250d70c3f9a85a38df2b7550f850ce9",
+    "rustc-1.33.0-x86_64-pc-windows-msvc.tar.gz": "b935a78d072b9ae91ff8ddf9155df95d77fd8a1c6293e39df3c65b18d860320e",
+    "rustc-1.33.0-x86_64-pc-windows-msvc.tar.xz": "a5a761b947f0f8919d1912afd01070d13048870f0dfc98bd844b78734f185de8",
+    "rustc-1.33.0-x86_64-unknown-freebsd.tar.gz": "8bfc7fc50c50294cf4ded35360b41b590180401a0d2e84256f5931c7c1ff35cd",
+    "rustc-1.33.0-x86_64-unknown-freebsd.tar.xz": "8bf10724e5ae2aacb6c7532eaf6bdc56a686eca38bdb58ba51c35c287510849d",
+    "rustc-1.33.0-x86_64-unknown-linux-gnu.tar.gz": "54a342f718b712d8a17fd7878ebd37d22a82ebc70b59c421168cd4153fd04c2b",
+    "rustc-1.33.0-x86_64-unknown-linux-gnu.tar.xz": "57c5ced1a826d34f26e50adf041528dd0000f2a59e8be32d2359386843382ce1",
+    "rustc-1.34.0-aarch64-unknown-linux-gnu.tar.gz": "364328a40c7aa5749be80b13a14466149a559205e34aef3d8823dc2580f55921",
+    "rustc-1.34.0-aarch64-unknown-linux-gnu.tar.xz": "396dddc57bd33697650ef742e37693d3dc4df800b7bf28a278abf79dad58dccb",
+    "rustc-1.34.0-x86_64-apple-darwin.tar.gz": "2044d44f01a8aa7fb3382f35fc839facfde4fc1eb6f951ead42aef954e317088",
+    "rustc-1.34.0-x86_64-apple-darwin.tar.xz": "d51507072ce88f1d15768054bb161c422efccb6ceafd77bd8835367888c91c84",
+    "rustc-1.34.0-x86_64-pc-windows-msvc.tar.gz": "371f9abd2bc615b339dfd606d93e6b4892594fd86084d513e07a9f80ff21a828",
+    "rustc-1.34.0-x86_64-pc-windows-msvc.tar.xz": "0b58c3361ae37d8f2ece888a8096cd73d4218431d0c3811f9a242d72c3485e5c",
+    "rustc-1.34.0-x86_64-unknown-freebsd.tar.gz": "522662f147d0550e4f4f49026b4ebcc5e05a0935fa88acc9b99da5d7435755aa",
+    "rustc-1.34.0-x86_64-unknown-freebsd.tar.xz": "5d398acbda83050e915e834371c83db286adf49464e978e33fe64ad3616042e1",
+    "rustc-1.34.0-x86_64-unknown-linux-gnu.tar.gz": "5852e84dd30e4a552a7cd4d7c0172648d7ffb4d9ac7078871adbb902c183ffc2",
+    "rustc-1.34.0-x86_64-unknown-linux-gnu.tar.xz": "ccbb2580d619ab44e19f193893f4eec9fb703b6f8a929ea7fb25be5ddc3b126d",
+    "rustc-1.35.0-aarch64-unknown-linux-gnu.tar.gz": "dc06d77e6cdc06693d3b87ce473f151c96bda2c1e5dbba8c0354c54990c64fc2",
+    "rustc-1.35.0-aarch64-unknown-linux-gnu.tar.xz": "0127763a0042c2b6d4f1d643f4e322723bd22476e9c04dc2e9911685f635b5a7",
+    "rustc-1.35.0-x86_64-apple-darwin.tar.gz": "5b2fb7581332f349c041860479ffdbfec0eebf87fc3016146836b8868afc3ae5",
+    "rustc-1.35.0-x86_64-apple-darwin.tar.xz": "360b383d959ff780d82beb4a4b3d0b93ecf7ce3aaa6cb2759f7da8e3ab74ea71",
+    "rustc-1.35.0-x86_64-pc-windows-msvc.tar.gz": "df4f94d29d10fde2486d9fac3247a566d99a2b7f97fa6ebd416f308b804f7693",
+    "rustc-1.35.0-x86_64-pc-windows-msvc.tar.xz": "bccefe9eaf530c2dd7c2e5ee29acf1eb6def99cd637ef0f6a5a93a50a172cd20",
+    "rustc-1.35.0-x86_64-unknown-freebsd.tar.gz": "d3b5a6cfa41264e1873287bdb89892a7edc40333d581f468890c68336f50a601",
+    "rustc-1.35.0-x86_64-unknown-freebsd.tar.xz": "df2eb504e3a8886530d4d924578d45168041e6120ea9e03036787d7ed47ef10e",
+    "rustc-1.35.0-x86_64-unknown-linux-gnu.tar.gz": "bb3a07a1f2fdc3eeeee25fc40131d3f05494e3838dfd4e9275475ffc500d7a9e",
+    "rustc-1.35.0-x86_64-unknown-linux-gnu.tar.xz": "5d6dc216ba429ddf3a1657e70f3e5e380549b546fe56de897677a11d72aa4e07",
+    "rustc-1.35.0-x86_64-unknown-linux-musl.tar.gz": "a975395127a2abf727a7c6b6ed2656e90368b46c5e6ccdc53fd50acca3cd3f94",
+    "rustc-1.35.0-x86_64-unknown-linux-musl.tar.xz": "961df84a116c7b1b11eb912d33c8edb233b76980f97983f9ed3989621f9f90c3",
+    "rustc-1.36.0-aarch64-unknown-linux-gnu.tar.gz": "62e40e0677032ae0cd91a7f8b4450dbaaf5223050a05b28a9174802d09691da6",
+    "rustc-1.36.0-aarch64-unknown-linux-gnu.tar.xz": "98ce55b141a5057bee1c0126ddf20824a940104fc57d7350417776768ce533ee",
+    "rustc-1.36.0-x86_64-apple-darwin.tar.gz": "97568272717ffa62dbf4459dff6086e69c808df252a912146e28468412667013",
+    "rustc-1.36.0-x86_64-apple-darwin.tar.xz": "2465f33b66f09d4b16f0aac19179818665db5c92c97770be81bfddbef13db9d8",
+    "rustc-1.36.0-x86_64-pc-windows-msvc.tar.gz": "4c131f68eac74bc20315eda097578c43de2b695445739462a4b273f90a131ffc",
+    "rustc-1.36.0-x86_64-pc-windows-msvc.tar.xz": "0140145950c6c748a78dc240b8259cda9abf86976acdfc7b0a645de5048bf4e5",
+    "rustc-1.36.0-x86_64-unknown-freebsd.tar.gz": "c2dd0cec49b054ed9439762fb31555b8df9a3d81747b194f7d3afbc6d8adb8de",
+    "rustc-1.36.0-x86_64-unknown-freebsd.tar.xz": "10d896f57dd5a0dab4e44e9a94cf46e83a157cd46d904571b8eb8f0308c35fe8",
+    "rustc-1.36.0-x86_64-unknown-linux-gnu.tar.gz": "7c149fa1695b41e8e1edcb95dca199522889f119be99f922741084d50470a9e5",
+    "rustc-1.36.0-x86_64-unknown-linux-gnu.tar.xz": "fff0158da6f5af2a89936dc3e0c361077c06c2983eb310615e02f81ebbde1416",
+    "rustc-1.36.0-x86_64-unknown-linux-musl.tar.gz": "913b7097e13c4e616edb8f83a3a976908c8c12295472f65a5682465145ced552",
+    "rustc-1.36.0-x86_64-unknown-linux-musl.tar.xz": "04c15e34bdfd17136b924baa4f93cfbfe64739964b57f5a13ada8e91f9239076",
+    "rustc-1.37.0-aarch64-unknown-linux-gnu.tar.gz": "721ba21dbe9b350a8c50a4c783c76ba3f6926525480518851dd6ba92ecdb042c",
+    "rustc-1.37.0-aarch64-unknown-linux-gnu.tar.xz": "8e06a483a5764f687db8e352591ab651c7a78e3be06af2d2a4f33d6c9b158c59",
+    "rustc-1.37.0-x86_64-apple-darwin.tar.gz": "00d4d15b4d9a4d188e0db8bbc17cd5f0c3c3a87ad681e80ef15580c0d5bd4ff3",
+    "rustc-1.37.0-x86_64-apple-darwin.tar.xz": "403b1ee63235b6a196a6eb99f315b05ce007558cc7041150251354cfbf734f07",
+    "rustc-1.37.0-x86_64-pc-windows-msvc.tar.gz": "790bdb5b57f397d7481151ad8715f7ac3f32b343efaf2922650f4fc6e374d7d7",
+    "rustc-1.37.0-x86_64-pc-windows-msvc.tar.xz": "923e829d67102e45fc16eeae727a4dad13f7abe6239b99fef0e4a233c7509880",
+    "rustc-1.37.0-x86_64-unknown-freebsd.tar.gz": "a4dd357a0b39abf1ebbe8a0f64973c3b0c5bc527e374c12afe51266279fc1ca6",
+    "rustc-1.37.0-x86_64-unknown-freebsd.tar.xz": "077509f49f3546bef943476387e1a9b22f4a42544841b17e5997900179be35be",
+    "rustc-1.37.0-x86_64-unknown-linux-gnu.tar.gz": "c759b318f333639a45f29c1551ca7ce55b1bf64e0fc3a3357d6b9356885d1626",
+    "rustc-1.37.0-x86_64-unknown-linux-gnu.tar.xz": "7014f34578a0bbfffc09bf53d536e29f4ec37bfc48a579d372a340b4d6763416",
+    "rustc-1.37.0-x86_64-unknown-linux-musl.tar.gz": "1981b67c0cbcaf37f40ee9576d6d1b9a554019e571fc4c49ee9457cf011e0f75",
+    "rustc-1.37.0-x86_64-unknown-linux-musl.tar.xz": "b2edb942f73604973f7281e1d51629f75274ed64394edaba55ea9f35cc3c66de",
+    "rustc-1.38.0-aarch64-unknown-linux-gnu.tar.gz": "0c787eaf01b5779b5a0c12bd0573901cf1b58e5e484ad44c3530b7ed51754d15",
+    "rustc-1.38.0-aarch64-unknown-linux-gnu.tar.xz": "2bbcd0822f54b60b6952a4503eb51389e6da23d3f6ca4ce050688c92f026b6ac",
+    "rustc-1.38.0-x86_64-apple-darwin.tar.gz": "ac34aee5a5f67003b8f7f857ddb1fa68f89a32680a591ab77561282721b75256",
+    "rustc-1.38.0-x86_64-apple-darwin.tar.xz": "96042d7c440a50403f521c9e379e1539128becbbc426cd745659724c9ae63bd8",
+    "rustc-1.38.0-x86_64-pc-windows-msvc.tar.gz": "6e00ee5f34c552c1b9fafec3b7a1330140c820a2ae4bd4213d2c4f135341a88d",
+    "rustc-1.38.0-x86_64-pc-windows-msvc.tar.xz": "b6ba6e09ad4d9b85732e792b6b80efdf19b776ba580d29494803c629dfd71206",
+    "rustc-1.38.0-x86_64-unknown-freebsd.tar.gz": "1d99318bbdc947c6dc375215f0eddcd767348c309811cd141e5d18e17d5aaaa4",
+    "rustc-1.38.0-x86_64-unknown-freebsd.tar.xz": "7609333d9ae4e9e3da182c914f0d312b9463beee77b7c445fad2197b0656bab2",
+    "rustc-1.38.0-x86_64-unknown-linux-gnu.tar.gz": "790a611695fabd12c3a141efa58b3dc5913d749947c1a95d3f5b6eb5476ee612",
+    "rustc-1.38.0-x86_64-unknown-linux-gnu.tar.xz": "0fedde3406cf3367ceb00f493698e6bfc3264bd7f7253c85de7a042b45f873fa",
+    "rustc-1.38.0-x86_64-unknown-linux-musl.tar.gz": "bb0166cbb1d31bcb09d79224e7ac43a80d9448b7199b5392a3852b3ec71840aa",
+    "rustc-1.38.0-x86_64-unknown-linux-musl.tar.xz": "9bc0b51bdfca3ed7b298021e2ec768bd28ea3af138d9dc1854a70e3866f06c0d",
+    "rustc-1.39.0-aarch64-unknown-linux-gnu.tar.gz": "c64fc482404277fdb160a4b593b0be5a1b0c32d985464595015295321d111621",
+    "rustc-1.39.0-aarch64-unknown-linux-gnu.tar.xz": "d12cdc9b0f4a6c77b606fffb749e61f39041f29cdad1a87a2d3986966a72c28d",
+    "rustc-1.39.0-x86_64-apple-darwin.tar.gz": "9347ffb47e936fb44666ada525f8bfb86758a719e7c0330e93e17bbd5f3623be",
+    "rustc-1.39.0-x86_64-apple-darwin.tar.xz": "d597416eed2c71cb5c65a6ffe637d7344d1dc61919a8af6317fa0317038f2c5f",
+    "rustc-1.39.0-x86_64-pc-windows-msvc.tar.gz": "9a94785fdb473079d02f32bded6691322688001dcc16f5bfb582c1d181d3ef67",
+    "rustc-1.39.0-x86_64-pc-windows-msvc.tar.xz": "fc36e1e3a770c66150ede7fa474fec8283e58b7a1259f0cd43d5b0627d37d210",
+    "rustc-1.39.0-x86_64-unknown-freebsd.tar.gz": "3714bf7bd4163a3bfe18291d49acaeda02f4bf2beb9fe36c520d2ecdc29ca031",
+    "rustc-1.39.0-x86_64-unknown-freebsd.tar.xz": "802aa5124f15002ba07b33838f6b8ecb394e3d63d2f9bd2de725c85baf8b8bf5",
+    "rustc-1.39.0-x86_64-unknown-linux-gnu.tar.gz": "333399dbf96dd6b8a9dc9cc56b1cb5d8aac2296b4e4aa857bd59d906d6df6fa1",
+    "rustc-1.39.0-x86_64-unknown-linux-gnu.tar.xz": "5b2a435a4c034615d70cfc383abe9924cbd1ffd4669caa55ce6539f22ed979ed",
+    "rustc-1.39.0-x86_64-unknown-linux-musl.tar.gz": "07a9705dd77c6859ef921389dc6a958a297030e53571fe015163c79aa93d1e43",
+    "rustc-1.39.0-x86_64-unknown-linux-musl.tar.xz": "bd3e2964d171eafc95668f675b521669b89abc32129214bb4c3b2509e4c66247",
+    "rustc-1.40.0-aarch64-unknown-linux-gnu.tar.gz": "8981d500261ecfec93c4b52e8f96a81c705b56ff9317d63e0363d11a72ee09a0",
+    "rustc-1.40.0-aarch64-unknown-linux-gnu.tar.xz": "40619bf6316706e9d8f9d842802e9e00018140ffb3e937d807299b5a28af4536",
+    "rustc-1.40.0-x86_64-apple-darwin.tar.gz": "f45bb00a9a59ca819a8266e9de77f7232f4b704d64f1c45d3870e2db4f646a77",
+    "rustc-1.40.0-x86_64-apple-darwin.tar.xz": "f25ffcefd0700a39c887e444d65cb5e5459cbbbd6cd17dc2082f0cb8f1bff403",
+    "rustc-1.40.0-x86_64-pc-windows-msvc.tar.gz": "16299638792b7bffb63ca20674a7196a33d1fb25e91083b90f8015be010eec19",
+    "rustc-1.40.0-x86_64-pc-windows-msvc.tar.xz": "229be7c97b0f94cb187e8c06e2d96649d08fb6231251242bfbd7fd8ddfe57412",
+    "rustc-1.40.0-x86_64-unknown-freebsd.tar.gz": "65810804d3e4cf8f845978c6226f8e23d77a7ccf35ebafdd5f8dac027627f396",
+    "rustc-1.40.0-x86_64-unknown-freebsd.tar.xz": "031769384fdbf6d53853020bdc7583d6b1e7afaf041179379d53edbf7ba3d178",
+    "rustc-1.40.0-x86_64-unknown-linux-gnu.tar.gz": "5085a26abdc932fd9339aab2078084f9ab654f8298ad9f301611ac41ba8eca19",
+    "rustc-1.40.0-x86_64-unknown-linux-gnu.tar.xz": "b1c00618b7a98156e88b14682508a503284f85748eab23de749a20dcc8847111",
+    "rustc-1.40.0-x86_64-unknown-linux-musl.tar.gz": "acd01559a875b57f6fc7e27beafd8d011f8295c627ab276d814700082088f2ed",
+    "rustc-1.40.0-x86_64-unknown-linux-musl.tar.xz": "769b9e31557fcc0ea2a661f88b679d3dbd62b537807c7b3c75ac6816a1be4fa3",
+    "rustc-1.41.0-aarch64-unknown-linux-gnu.tar.gz": "9d994935f92088c968f520f558a88b140bb7d60e917fc4ad69019e2b830b1db7",
+    "rustc-1.41.0-aarch64-unknown-linux-gnu.tar.xz": "3be313538e776b0406d16aab342fb3a95b0ce26a2acfbd7f897bfc8cac877f13",
+    "rustc-1.41.0-x86_64-apple-darwin.tar.gz": "25ee8865e21007c282cd1f3457c3bf932591337c3044e55ba574fc988bead3ad",
+    "rustc-1.41.0-x86_64-apple-darwin.tar.xz": "88b3db34b3ee045cf87691fdff346cae07d80e273af54b46e9e34b9405ef798d",
+    "rustc-1.41.0-x86_64-pc-windows-msvc.tar.gz": "b338afb534be113f179252f8de29195e201dcd8bf4053b1d5e8eef928c457ca3",
+    "rustc-1.41.0-x86_64-pc-windows-msvc.tar.xz": "f388e7dc49356cdc93efc7f89157c54924ee3ab0297a373b32160ddb48dead92",
+    "rustc-1.41.0-x86_64-unknown-freebsd.tar.gz": "de3386f79a0e261b8f6133dc0d5a7d51b70ad73dba5a14dd30204ac285d04f3a",
+    "rustc-1.41.0-x86_64-unknown-freebsd.tar.xz": "1cbd96a85b6895e5f7fde41711ecc6412a5e50db827f6bea57ab02d41846cbba",
+    "rustc-1.41.0-x86_64-unknown-linux-gnu.tar.gz": "531b4cc77cc25e960aafa2ebaee073c137fceb0004447c6b7274557281c62a6d",
+    "rustc-1.41.0-x86_64-unknown-linux-gnu.tar.xz": "482314411cef6a315c2784eb68729c2c88346e7304f516304bcf42c98ba71ec0",
+    "rustc-1.41.0-x86_64-unknown-linux-musl.tar.gz": "18c0f6d263d3a54a6842e2feab7c90ce5d8e5136b67cedabb98756f029122c8a",
+    "rustc-1.41.0-x86_64-unknown-linux-musl.tar.xz": "99a60002fc0f5dfa88b6a4f61466daeb6357722023955049a4fe27dedda01845",
+    "rustc-1.42.0-aarch64-unknown-linux-gnu.tar.gz": "612c10793852fd0c2e52b30f3d50dd6aef6f8181032b820eddefc93e3bf4d97b",
+    "rustc-1.42.0-aarch64-unknown-linux-gnu.tar.xz": "9d06a74b838df2f55db12280da94e805bc0640034d1c36888036875ec4e5b094",
+    "rustc-1.42.0-x86_64-apple-darwin.tar.gz": "778dea93d7e46261e2c06cadec35b68f9857604f279ce6fbd1b37c1a89634625",
+    "rustc-1.42.0-x86_64-apple-darwin.tar.xz": "00a3a385c88d9622e827836b214c71bb17896d599bb6f7742695ca4f4a42cb6c",
+    "rustc-1.42.0-x86_64-pc-windows-msvc.tar.gz": "d132f99df49cb0d421f6d8948a268d4eddb1ae23e0af2641272438998503708b",
+    "rustc-1.42.0-x86_64-pc-windows-msvc.tar.xz": "b63323a3bf36aa9599f748da13065a94a11d0c42acc857c5f6edde05fca20c05",
+    "rustc-1.42.0-x86_64-unknown-freebsd.tar.gz": "e6e36a7df9886b18cce32752f5ac7a8da6977c6a1878fae696340f3843176fe5",
+    "rustc-1.42.0-x86_64-unknown-freebsd.tar.xz": "a918690e354a194e285830032addad926347148be8ac96170d04556f8a7b0c41",
+    "rustc-1.42.0-x86_64-unknown-linux-gnu.tar.gz": "4242a728b850bf6e74db9a95c68e8ed316fa4813b38e6b8bc296396b5f47ea5a",
+    "rustc-1.42.0-x86_64-unknown-linux-gnu.tar.xz": "3d2e4dccbeec8866c7d1d151abe06526f331ea1dac9f8ae3cbe30ac6568fefb2",
+    "rustc-1.42.0-x86_64-unknown-linux-musl.tar.gz": "60945b79fdf8be51c87967368245380a64d0d331ef1aefa778712f3695028c39",
+    "rustc-1.42.0-x86_64-unknown-linux-musl.tar.xz": "79029296fbd91c19c2ad080a52c62963eb127227c59005645b86b5aa9aa310b8",
+    "rustc-1.43.0-aarch64-unknown-linux-gnu.tar.gz": "99f26a2b4376fc08203d129d65e15f01b2630db40dd2d4d6a7b917df8d512e72",
+    "rustc-1.43.0-aarch64-unknown-linux-gnu.tar.xz": "ecfcc28e58d37008e2d645c120b50bd618764ed975569d2d0567a86516d92133",
+    "rustc-1.43.0-x86_64-apple-darwin.tar.gz": "3723b8194e38d7238262b4cc49762a22037f53f58ab1df199c1d710dad5728a5",
+    "rustc-1.43.0-x86_64-apple-darwin.tar.xz": "139847eb84be840cdde8c493ca701bbb7d2f8b99ff1f573d0f34a2ae3f7989f1",
+    "rustc-1.43.0-x86_64-pc-windows-msvc.tar.gz": "c6d1aa60cf2056c4fb35a5a197fb4e1a42887eb4ad1615b00398524ff78ce74c",
+    "rustc-1.43.0-x86_64-pc-windows-msvc.tar.xz": "b1fccfae06c3b992a4e79ecbf455dbec42d77daed585d21f9b694dccc9158362",
+    "rustc-1.43.0-x86_64-unknown-freebsd.tar.gz": "69d572e80e13da85599557f662ce71909823194c874eea0fe91f82da0958fa68",
+    "rustc-1.43.0-x86_64-unknown-freebsd.tar.xz": "99ad9cb9dc206fb2ba7311c254f74d6c63160077f56ff630c326241d8c51b66e",
+    "rustc-1.43.0-x86_64-unknown-linux-gnu.tar.gz": "950b323044ae9a7932b697a2e4f4f62b59248f58faa320e22dc20f8ad9521f6b",
+    "rustc-1.43.0-x86_64-unknown-linux-gnu.tar.xz": "c8f3ac271f20cae5259fe01f91e6906d9ef435b1fd1836daaefb3b176ba00e29",
+    "rustc-1.43.0-x86_64-unknown-linux-musl.tar.gz": "7b9ff3fdc2024d044f19bfd5353441fa5fe7409c9ca4883726b5c8fdece3a7a6",
+    "rustc-1.43.0-x86_64-unknown-linux-musl.tar.xz": "28d73b5f899d671453b40df5c42f1d6b99d2488bed725a7fbe08c432d32647ad",
+    "rustc-1.44.0-aarch64-unknown-linux-gnu.tar.gz": "b0fc4cee7119c10f79fe2701ca0d19ab738bd20954352ae5b1dcc4c6f432779a",
+    "rustc-1.44.0-aarch64-unknown-linux-gnu.tar.xz": "8e050879b5013401f788bc9eed5f6d6fb9a35d546e2add7d4189c0fb156c9310",
+    "rustc-1.44.0-x86_64-apple-darwin.tar.gz": "4fd09afcae85f656d4a545ee415e19546e03e34f1ca23be5eaa68c489e3186ab",
+    "rustc-1.44.0-x86_64-apple-darwin.tar.xz": "23a2357a11f31e19315fea66fa51c208e8a15a01a9e37abf4495b180a8dd8b17",
+    "rustc-1.44.0-x86_64-pc-windows-msvc.tar.gz": "0b3aec27d86034cbadf4adbaf36308bcf98d97c0979d162ffccf4328fb4f96cd",
+    "rustc-1.44.0-x86_64-pc-windows-msvc.tar.xz": "badd51fc41d8f2f03f6b70dc3277ad19b48401bef2539837f6c6d34a69c0efff",
+    "rustc-1.44.0-x86_64-unknown-freebsd.tar.gz": "6f3c4e16bbda8719e5c07dc687e84a7236e097da55c4fabea13ef1cbd6a30c40",
+    "rustc-1.44.0-x86_64-unknown-freebsd.tar.xz": "9cf831863749042476ef1239a4d74c5a720ca9eb0ecb907e580ac987df851e0f",
+    "rustc-1.44.0-x86_64-unknown-linux-gnu.tar.gz": "52671652e7045df0702d8f2e8af60bf6f20da3e3a5db1aa6022bf9545e914449",
+    "rustc-1.44.0-x86_64-unknown-linux-gnu.tar.xz": "fe1d8d81950eea1f67219abc49bc1ae88b2b27fd02d1bffa38b43bc5bff05124",
+    "rustc-1.44.0-x86_64-unknown-linux-musl.tar.gz": "71440388e5e4affe11fddf3c3a706ac6f129d9ea47717894b586290e553223fa",
+    "rustc-1.44.0-x86_64-unknown-linux-musl.tar.xz": "f023a98493b3617f3eecbc0744c88a9b4d4e1a8ac105d0cf50a9c191018facf6",
+    "rustc-1.45.0-aarch64-unknown-linux-gnu.tar.gz": "b1ef2ea19142d851f2ee6936cd46a30ec8f157ba53048bc2748279d1e9e0ad17",
+    "rustc-1.45.0-aarch64-unknown-linux-gnu.tar.xz": "d1c265a74dce6f7cb1ab27c01130d34bf7a8b7cde95157832288c1d4b649e69d",
+    "rustc-1.45.0-x86_64-apple-darwin.tar.gz": "fd17d99c3e827f0b4f01b9122d4bf2fca0f1144827300a1eda93718d8642b39f",
+    "rustc-1.45.0-x86_64-apple-darwin.tar.xz": "54dc3113a513b0d678491db512d7c62a3af2ebff900c04a6b0f945406376d0e6",
+    "rustc-1.45.0-x86_64-pc-windows-msvc.tar.gz": "f65fb383f2c6f979a19acbd4e099e6eea8addc0e76f1fd988582dfc0daa4a121",
+    "rustc-1.45.0-x86_64-pc-windows-msvc.tar.xz": "a28e7440f2960ff0ff903792ec991d108ac5a4dae791abcec44bde1ba90857e3",
+    "rustc-1.45.0-x86_64-unknown-freebsd.tar.gz": "b5d263c53320f8a5dd5daceac1e60da172fd21614ada67f584565430d9d1c9c6",
+    "rustc-1.45.0-x86_64-unknown-freebsd.tar.xz": "5df7d5014594aa7db2c4c05d2c81f89fbcc1c65e7212a70c3085cb0a33acad9d",
+    "rustc-1.45.0-x86_64-unknown-linux-gnu.tar.gz": "3ef2fcf818c133c3e9957441917b23ea536805efd0ff9ac6ee0bea349d703a90",
+    "rustc-1.45.0-x86_64-unknown-linux-gnu.tar.xz": "57e96d49f71a3a900fcae25d24f7d436272b858ebd45c31f6ce5e7d2a5cd2cb7",
+    "rustc-1.45.0-x86_64-unknown-linux-musl.tar.gz": "596f04e0774225ca85b5c99575854dd66973854ebcdd0b7a60d3c2cff4d415db",
+    "rustc-1.45.0-x86_64-unknown-linux-musl.tar.xz": "6a456c9862fe2620120270581cb2eec4a0b17067dbcbe5463bbf5ffe8f91c884",
+    "rustc-1.46.0-aarch64-unknown-linux-gnu.tar.gz": "41239ece19c79250a205e5b2fae60b242bba4bf72b687bccc88f011e66a872b6",
+    "rustc-1.46.0-aarch64-unknown-linux-gnu.tar.xz": "b6c6f966a1494fa26d3b81470d28344726205a25a6ecc4629e305a34f721194d",
+    "rustc-1.46.0-x86_64-apple-darwin.tar.gz": "f690b375df7b1399e5baa69b64932e3e4a3f2b651e5ef2ebc85509bee777a9d9",
+    "rustc-1.46.0-x86_64-apple-darwin.tar.xz": "d1feb3e25667c9966e81ee17d28d3015c3d50f068d198ee53bf33a1f793fd10d",
+    "rustc-1.46.0-x86_64-pc-windows-msvc.tar.gz": "56badce580b65f59d676b20b4e5f138969e5039182b7f6052ac7da9d38bd0aca",
+    "rustc-1.46.0-x86_64-pc-windows-msvc.tar.xz": "91dbbe38a0212a5ebd7e21c084863a6f2414532e628a0c035073f83801540c68",
+    "rustc-1.46.0-x86_64-unknown-freebsd.tar.gz": "e76d3e18d1826753395d881bc37be3d43e9ff8d2d34d49d7ed6105f228d56284",
+    "rustc-1.46.0-x86_64-unknown-freebsd.tar.xz": "df757f57c947b67a2820e2423aee1bb2692d7064da1d683e088d3c8e6a768657",
+    "rustc-1.46.0-x86_64-unknown-linux-gnu.tar.gz": "4c0c740cfb86047ae8131019597f26382a9b8c289eab2f21069f74a5a4976a26",
+    "rustc-1.46.0-x86_64-unknown-linux-gnu.tar.xz": "6edcec5367f9fcaee78cbcabfb1f6757fa95d7fd2c0853913223fe20ad534f12",
+    "rustc-1.46.0-x86_64-unknown-linux-musl.tar.gz": "6ab2664edc93122b7a93a1b72025e869d088445af65d3df286258c3860090114",
+    "rustc-1.46.0-x86_64-unknown-linux-musl.tar.xz": "130fb0ef33324996bd87abcc5d6835b0fea97d9786f53c90af5986a80c1d97da",
+    "rustc-1.47.0-aarch64-unknown-linux-gnu.tar.gz": "2e143bfa59eca5c3f3e995c5997ae55c7defe824fb4dbe7e77896e132f42c24b",
+    "rustc-1.47.0-aarch64-unknown-linux-gnu.tar.xz": "86195fb50d9a0b3b8739388fd115601c7eb602a396ca789721589c52d68f8dd0",
+    "rustc-1.47.0-x86_64-apple-darwin.tar.gz": "4773ad46b912c859984f1e4466e506dd8102603d1ffcd8b63cfe7522f49e5987",
+    "rustc-1.47.0-x86_64-apple-darwin.tar.xz": "168860cae8596e14b7f1cedfa564503240a965f02f092633a15a16a9037adc7c",
+    "rustc-1.47.0-x86_64-pc-windows-msvc.tar.gz": "f2010e4500602d0efc431c0853692733415bedb58652376023d7d6ac204f8c7c",
+    "rustc-1.47.0-x86_64-pc-windows-msvc.tar.xz": "cc86c913c0020fbc915f9c1caa60f89bca6a50441241250f232c5317ff841069",
+    "rustc-1.47.0-x86_64-unknown-freebsd.tar.gz": "811f298c07fb32a6a01f9960f2d7dc403f6f288a3f475ed9806648e2cc5938ca",
+    "rustc-1.47.0-x86_64-unknown-freebsd.tar.xz": "e4469b6e35638329aa7cee9b91b5b48d87b2a633aef48f6356af8384c681940c",
+    "rustc-1.47.0-x86_64-unknown-linux-gnu.tar.gz": "d96be0ae1deada01f41372ab2c2f485a9f8625069aeaff33c5b513061e9706d4",
+    "rustc-1.47.0-x86_64-unknown-linux-gnu.tar.xz": "6effe67c3461335eabba2334f4747260bd479c938e635899a60ed094beec7481",
+    "rustc-1.47.0-x86_64-unknown-linux-musl.tar.gz": "4c6979e2b01fc8da0f83b30e9ccf869f692ad84cf517e300362624d9eaac8635",
+    "rustc-1.47.0-x86_64-unknown-linux-musl.tar.xz": "9fb8267d7ed0adc9bf591c00c0dc4ed4542b399312c753affddc5e87d3bedadc",
+    "rustc-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "9c83a5d18f6ca913eeffd78c53913da288b171ff245137b646a8fd280fe72340",
+    "rustc-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "ad2ca472b4abf228afd28e16840524a4f08a5efaeaae1d046ff1855c00f3994d",
+    "rustc-1.48.0-aarch64-unknown-linux-musl.tar.gz": "eba49211f2e0aae157e18258edacb3031dc8b4bb6db0bca142c919d9042c7ba4",
+    "rustc-1.48.0-aarch64-unknown-linux-musl.tar.xz": "72fbaf8488c0097267723f3ef2f4131bf21803e5c49a7eae95728055603a7499",
+    "rustc-1.48.0-x86_64-apple-darwin.tar.gz": "846f45f9bd6676e9d1f6758279b48e32564ba23773e69aa89692dbc123dbea5a",
+    "rustc-1.48.0-x86_64-apple-darwin.tar.xz": "afc242b1973d2d83760fc1af511db70fb946d0347e2a2005d4983abd3a9fcd96",
+    "rustc-1.48.0-x86_64-pc-windows-msvc.tar.gz": "395b2a8e6824b3e56a8a9b4598273be5410b4ea64e92c8aeaf900d9ff21f470f",
+    "rustc-1.48.0-x86_64-pc-windows-msvc.tar.xz": "7e054196c5906bff41cae1a7b48568d5c863a6c5a446638d52ab871f2e487115",
+    "rustc-1.48.0-x86_64-unknown-freebsd.tar.gz": "fbaff313c2423f1ababc9792332560ca0e3749abf3749e7eb5289bc6515d9424",
+    "rustc-1.48.0-x86_64-unknown-freebsd.tar.xz": "444990ea5d6294e10a3ab0fe993569c3bf2069edd0491b8cb1f2e60cd21868a8",
+    "rustc-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "aa4a96b010e0d4573e6a1fec230beaadaae6cdce2bb4befeee7b1c081ee9ef8c",
+    "rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "fc4d292a52cbb6b84fb9f065d0d7596064a9b957381d639d5a750d6e2bf02483",
+    "rustc-1.48.0-x86_64-unknown-linux-musl.tar.gz": "5513813bdbd1aa5e4c4a0a0e680953b72d24829595920fec4e69da3682abdc0b",
+    "rustc-1.48.0-x86_64-unknown-linux-musl.tar.xz": "50c2904db7794400987487ea364392714830f287f3e596a9f8ea9df748dfa8a3",
+    "rustc-1.49.0-aarch64-apple-darwin.tar.gz": "3e8c0c9101f27623f7607f2d8acef5f28dcb2bdfcded56f210d9d370cf9a9c06",
+    "rustc-1.49.0-aarch64-apple-darwin.tar.xz": "c502ca9bbf4ae3356e91e1e1a5bf0ffb4ffd53a6112aa0c5dbf2d38638102ccb",
+    "rustc-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "b72699cdf74c03ccc0aabab937a69807f2ceb5861f3508593e1c222190c4efc7",
+    "rustc-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "9850cb24a8cc86b9ad6e0ea95ef2e473448e45345817bfba51aa3d054411ab68",
+    "rustc-1.49.0-aarch64-unknown-linux-musl.tar.gz": "b76b7f687ffceed03a86e69dafd251e8e069c31c31dbe70c0fcad1ace5398956",
+    "rustc-1.49.0-aarch64-unknown-linux-musl.tar.xz": "d885d860a13855979074d1883dab7d4ce1dc1517f6ae98158e6cb2e08d353ca8",
+    "rustc-1.49.0-x86_64-apple-darwin.tar.gz": "09333f9aacb9c5959e2a2798d7e283cae674255f063a35ea28f91595caa0a78b",
+    "rustc-1.49.0-x86_64-apple-darwin.tar.xz": "d44b0d9f5393e5777396ad63193f64f149cade306677ff6da94cee9e96ee6f08",
+    "rustc-1.49.0-x86_64-pc-windows-msvc.tar.gz": "800b7571438850074aeb0fb9a0e7d890c6785f9f4823b3052b9b0b098bb9ddd4",
+    "rustc-1.49.0-x86_64-pc-windows-msvc.tar.xz": "2f4107995a7ec69dc2feffa5c18a94abe2884b950fd146084f59ace2b7d81688",
+    "rustc-1.49.0-x86_64-unknown-freebsd.tar.gz": "66427837606aba2cda99d4f52161bee1086e98b226a5cb99be8e9a7bf896495f",
+    "rustc-1.49.0-x86_64-unknown-freebsd.tar.xz": "b3d5be8527cad53d9e8089fc6ace493c75a5548cd2f441cd8b80a829057c54b2",
+    "rustc-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "42300556b987934e5e4677972c1dfc57eb07731dc62fa9f4f561935a1c84ed0e",
+    "rustc-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "faa6c7c477284f4e0ef87e19cd5696844b1b079fbf14cefe369eaba8470dd861",
+    "rustc-1.49.0-x86_64-unknown-linux-musl.tar.gz": "4c56ed1fcee28a6f35c98d14edd34a33a60f52ac583c98313623760de093bf7d",
+    "rustc-1.49.0-x86_64-unknown-linux-musl.tar.xz": "eb811b680b0cdcc73bb9643e811f2a84235b9b581cee35c6d01ef43946e687cd",
+    "rustc-1.50.0-aarch64-apple-darwin.tar.gz": "3abc090591fb7fd0a292eeff4cc6a029841d39b0a768eaf1f0b9e4e06cba8ed7",
+    "rustc-1.50.0-aarch64-apple-darwin.tar.xz": "8a746b1aa9e0b0a5e5036653aaac6bf416094c76ad3f4040a1d1edcd912724cf",
+    "rustc-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "9afe0e968da845981b463beb75f91d6da0d4de5443d1abb6002b75a8cf066ea7",
+    "rustc-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "9b956d97d7e428ecd8634d467659ebdb5bd79c387b88363be8749eddd7f98756",
+    "rustc-1.50.0-aarch64-unknown-linux-musl.tar.gz": "abafb6bb1d2f065b72b43331e6cb00f3c98c78af00f261e1c53828c26528a078",
+    "rustc-1.50.0-aarch64-unknown-linux-musl.tar.xz": "b41379437147b8cdb210f1f6d4b6ef31959f4b64844a9704dbdc59af150c2554",
+    "rustc-1.50.0-x86_64-apple-darwin.tar.gz": "3637ee8d8bc0f8e922b1f9ec7b6fc00b6efcceae97c337d205a3bc472be7b936",
+    "rustc-1.50.0-x86_64-apple-darwin.tar.xz": "7a51224e17a2934992207dfe6670ef560879bafb962073543cf5423502fe2897",
+    "rustc-1.50.0-x86_64-pc-windows-msvc.tar.gz": "d7f7607c9cd3e137a335904e1186345f4328a971588ee8a54838e32a35a38e3a",
+    "rustc-1.50.0-x86_64-pc-windows-msvc.tar.xz": "20d55aef294a21b5a87c21354228f8a3bde1bedd907ad67cc10f3cfec34d0771",
+    "rustc-1.50.0-x86_64-unknown-freebsd.tar.gz": "916e616188638738ff217a047b3fbe372d9ad3734bb466d0e56d2fcefd1da5c6",
+    "rustc-1.50.0-x86_64-unknown-freebsd.tar.xz": "83bc3340e67011e4c8c33bf46719692066db52014db7f23bcb692859eb7f9f0a",
+    "rustc-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "160a91a3f545f96b2b955cf48811080d8e0accbd9d9a9732b080e1ffa72113bf",
+    "rustc-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "9bebd360bcd9b5bb58f2a02930b9db4ae291adef259c96377f1f4cbd240bcf86",
+    "rustc-1.50.0-x86_64-unknown-linux-musl.tar.gz": "528d02fa77fc0da26904ff10da2d6f94c6da618c323b37247b49fe28fd950240",
+    "rustc-1.50.0-x86_64-unknown-linux-musl.tar.xz": "fbe1188b42bb859e2557575988ddc66ad0495a48942b4866134ecb8e365430ae",
+    "rustc-1.51.0-aarch64-apple-darwin.tar.gz": "110db4985d7cb18ce6879f34fc02422f5f074b3a2b40b62e6bfd54ceaaa56d33",
+    "rustc-1.51.0-aarch64-apple-darwin.tar.xz": "8e9744845fcb405dd3ff56ff02d4b816a4d4b0880f0a61861aaa20d437b2915b",
+    "rustc-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "b63b21d56cab87133c9cd149f7c8ca3b3399a877cb16496a86f7a87d8b15c784",
+    "rustc-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "4ac31fbece2b8ff077986e9843a94990306fcf1e6feff04c1c0308b45eedfe72",
+    "rustc-1.51.0-aarch64-unknown-linux-musl.tar.gz": "58305d3fffa1662114587a6144afff9a872496aef6073b23dc5da9676d315d5a",
+    "rustc-1.51.0-aarch64-unknown-linux-musl.tar.xz": "332b827f19b8048d9e58397d825c644b5a0baf8eb6eee58b157dfa26e0502695",
+    "rustc-1.51.0-x86_64-apple-darwin.tar.gz": "abca027d4e45870ac97f220e5f60f4e849dd53f575f902046952a127da739aa2",
+    "rustc-1.51.0-x86_64-apple-darwin.tar.xz": "884ef3b6236594edf5fd00e45907592dd936fef3a1c749cc660c755830e0f31d",
+    "rustc-1.51.0-x86_64-pc-windows-msvc.tar.gz": "a6fee78393f3ee78bc81b5437122f7fd220d8d6686c9cfd41848bd699c9758f4",
+    "rustc-1.51.0-x86_64-pc-windows-msvc.tar.xz": "0c55127d95dc142385be4779dd4d0ca7b72f68ddc08507ba9b88140a7db3d972",
+    "rustc-1.51.0-x86_64-unknown-freebsd.tar.gz": "572e7c13bb5951a12a9f6f422e636da8468747d29ab6901ef3b5b03932482e1a",
+    "rustc-1.51.0-x86_64-unknown-freebsd.tar.xz": "ff19c800c0e03f1c83e635f88b5abc5a5903989e4aeb4878172c8a2be099de67",
+    "rustc-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "6b1298ef220302a33cad21fad7c8e1535264872b18e2ece733ac37ed31571dda",
+    "rustc-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "feef13f6cd5072f30e2c121b7775d7ac5316998fcf03b68b2537684f3a7fe24a",
+    "rustc-1.51.0-x86_64-unknown-linux-musl.tar.gz": "77614b115eac2ec975f29a8e2d60d8a77834f11689ff6b0d94eb74d4999df285",
+    "rustc-1.51.0-x86_64-unknown-linux-musl.tar.xz": "dd432bee9206bc5edd149a295b912504998ebcc2569cfe68f37f6366f7122723",
+    "rustc-1.52.0-aarch64-apple-darwin.tar.gz": "9e17debb80c85695aef2b76f1b4ff3a10ab40947b386b2590fe168c4ba77ea42",
+    "rustc-1.52.0-aarch64-apple-darwin.tar.xz": "7cc787e75a4414ee89b1ae0e210f2f46be0ed7a3ea4426cf985f92f482852c1a",
+    "rustc-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "cbfec2d4cfd38a04e1945beb4736a6ad2eb22f3a18743865158c4e0a4da43450",
+    "rustc-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "19ae99631af894d1417770c05988ab97b623db38325e52751a1103263587390d",
+    "rustc-1.52.0-aarch64-unknown-linux-musl.tar.gz": "fdf8be2fd4c4505155f81099e171fca5300f14cd1a343b4e11753bea99f2764f",
+    "rustc-1.52.0-aarch64-unknown-linux-musl.tar.xz": "63d5b88a78bf7369cb6cdafbfbdab66987a3d0d33031bf6e2e1b71331983a095",
+    "rustc-1.52.0-x86_64-apple-darwin.tar.gz": "abed71e08d05a47f7a54495212ef67e020cc61edd6c90cb1589bb4c7f771a821",
+    "rustc-1.52.0-x86_64-apple-darwin.tar.xz": "2826b24bb5d427fa0b9540aa5658606690c1a2d089bb36a7fc75e2a14233b64f",
+    "rustc-1.52.0-x86_64-pc-windows-msvc.tar.gz": "bcad3eaaac6f8bc117346047b3efa088977927ca668477b6e51cd037428ceed2",
+    "rustc-1.52.0-x86_64-pc-windows-msvc.tar.xz": "28582489bb20cddd93f04a46a9f7137030812d1347df220159b595d0923a2689",
+    "rustc-1.52.0-x86_64-unknown-freebsd.tar.gz": "5883388f0d1abc7e187d03bb213a4f34b8487ae4b665d9a76acd80c86fa5d3de",
+    "rustc-1.52.0-x86_64-unknown-freebsd.tar.xz": "b6a97d89277e8978250db48be15a981baa205b294b7b72aba43e3ce7b3342076",
+    "rustc-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "76f16908c37c719abc1cd28e9cb4cd484aa88ba00152b2de3188b6ce86eea848",
+    "rustc-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "a5ce7d951dbebd815530c3c571c193c24ae4b83bc1bf431845c0dbfbe1280476",
+    "rustc-1.52.0-x86_64-unknown-linux-musl.tar.gz": "13e1ef7a3db7a90a2756e423cda10ae0b95510f041d543d8c00a91a2ffbb68dc",
+    "rustc-1.52.0-x86_64-unknown-linux-musl.tar.xz": "57a2282e20694ea9dcb8417bd45ad7623c95ccbfac86c58927a7e3479976b21d",
+    "rustc-1.52.1-aarch64-apple-darwin.tar.gz": "d9f76477db98aebcbfd5ebbe4ce5c3aff30d7ac0185b25cec27e4ecc376ef4b8",
+    "rustc-1.52.1-aarch64-apple-darwin.tar.xz": "506edd3ea9b2aa59a6fb3a0f3f4411b7eaac470c62ba1e5b73cb8e862a0b9ef1",
+    "rustc-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "5218780009126b391786280f76b98aea743fd7cead8d48befc03791c095f88d6",
+    "rustc-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "3dffb653453e913272209a3577f6f03da83f152fc0d34d094bc19c82e8251d50",
+    "rustc-1.52.1-aarch64-unknown-linux-musl.tar.gz": "a1dea60ad703c424f99becef772b97ea3966974002427ad8baf3ff5473fd7ada",
+    "rustc-1.52.1-aarch64-unknown-linux-musl.tar.xz": "6c8c1bcf157bf36bc5ee5fd95b00379866638a4fbc216d5bbec0c5bad1326c22",
+    "rustc-1.52.1-x86_64-apple-darwin.tar.gz": "bc896a1c701ca10328671710c4a06ec4774b398cdeb64cf55fcf247f31dd275f",
+    "rustc-1.52.1-x86_64-apple-darwin.tar.xz": "873c8df5cc03c8ff502611e97922d6b9eb89058f21c647ca4343a0007634e51a",
+    "rustc-1.52.1-x86_64-pc-windows-msvc.tar.gz": "1828ce5c7ca28e7cdc9cb75105dd3489ea1e3648f800d3db0e99c248292d816e",
+    "rustc-1.52.1-x86_64-pc-windows-msvc.tar.xz": "c3700e0d442bab9f68961d960e8b8d69e9cc75f5daf0c8ead270a54065f8d408",
+    "rustc-1.52.1-x86_64-unknown-freebsd.tar.gz": "2de1df845045a8c6dc3832e7d615c9124c52eb5626b1aff1219e66fd3116623b",
+    "rustc-1.52.1-x86_64-unknown-freebsd.tar.xz": "8430f3d0e73baa0f7aff4481b30c246d6c0757aa0bbc07d8eee3c69e5b120b74",
+    "rustc-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "52002b050485674e87fdd72c7b49dac8783dfa36575be7e6265a69b4e66f8570",
+    "rustc-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "582826187f4a20b1df434710dd871ce2debf4025a76cc8225777391e42e4a345",
+    "rustc-1.52.1-x86_64-unknown-linux-musl.tar.gz": "195711077d44392a13e57c6695489e71cf811538eba02758dbea7c4ca2a72047",
+    "rustc-1.52.1-x86_64-unknown-linux-musl.tar.xz": "56a40a49abb2973a934ae97081d335af9c6c63c27784a5faf0c41e5893684c40",
+    "rustc-1.53.0-aarch64-apple-darwin.tar.gz": "a7f9c48adb4062c43bfad8fe608551c98d538529cbd13cb979578532a91edbe2",
+    "rustc-1.53.0-aarch64-apple-darwin.tar.xz": "0817bb9ba012b238ae360f01b31d05ba848014c4ff3b697db7f3c1cfa477dbcb",
+    "rustc-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "a54267708a1e80bab2c0a919284b9387f4b70ca61a96dce7544b2c8001adc5dd",
+    "rustc-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "a857e5c615f6b5b3afc6b707ae007b3b4624585b0b2ba9b38b553114db37f8d5",
+    "rustc-1.53.0-aarch64-unknown-linux-musl.tar.gz": "b26c35cc651c9233c58d08c12c076413a9637875a7fceef3f6b582629e169282",
+    "rustc-1.53.0-aarch64-unknown-linux-musl.tar.xz": "22163063cb39998f4bea6970c44a9e6863cea4c4a72e232c3fca22301acb95ee",
+    "rustc-1.53.0-x86_64-apple-darwin.tar.gz": "ad3d181deafb4bfeaf3d313828b258b89ad2fece3623bb4c4488e282db802e39",
+    "rustc-1.53.0-x86_64-apple-darwin.tar.xz": "4bb2eed591607df5de98bd5ea00764f4775d31157797d519882072a4eab456bc",
+    "rustc-1.53.0-x86_64-pc-windows-msvc.tar.gz": "27b895346c458c141d1cd277b3e87380ad3e304c62c7240d778a0cd3dc245581",
+    "rustc-1.53.0-x86_64-pc-windows-msvc.tar.xz": "d967d6ad2f6cf895b4d854ec41f5dfffeb625817f3f2546d0cad2b2d067a55b9",
+    "rustc-1.53.0-x86_64-unknown-freebsd.tar.gz": "304eb5d1b4a8a98fb67cc1a9599c1c0ef7553d939945a6a80d768e3b69ff8c75",
+    "rustc-1.53.0-x86_64-unknown-freebsd.tar.xz": "fe5aec7b2dc3866a5702d5f16dfb51dc7a579a725c9ee684190a3efd62c87ec7",
+    "rustc-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "c2c24b41602a589886f87276d4d46e42efddbad820917dc4dcbf6625cdf9ff52",
+    "rustc-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "9c2f0443a546dd18f1f020c7711a7b9864432545ceb812e79315c1e76508b193",
+    "rustc-1.53.0-x86_64-unknown-linux-musl.tar.gz": "6ab5694ac8ed7ccb79b7689e5dcf9198ddb937e123d31289e7b385bb60b3848f",
+    "rustc-1.53.0-x86_64-unknown-linux-musl.tar.xz": "50de8b4bcb0819ec0ca363e0aa53fc1c55bc85f53bc82da8dce20a132da7e7d9",
+    "rustc-1.54.0-aarch64-apple-darwin.tar.gz": "f18bbe09d8e08be5753e5f536ddfe15d4141b3ce968a2809a9869c91d492292b",
+    "rustc-1.54.0-aarch64-apple-darwin.tar.xz": "73563f21e164a9d105e844d7f6d38ea1b30451697494aeb37d6cb1c6cc3d02c8",
+    "rustc-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "595e8db56e68247ee3caf29f6a3d3c72d7955ed45f1291e7e596d63923427a86",
+    "rustc-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "0e771c06435b6fa3087ce054c7f2f94b8ee36717997f32f97e2e3425739ac2b4",
+    "rustc-1.54.0-aarch64-unknown-linux-musl.tar.gz": "02360abef6aebef211a3e6fccfbc81f27c83e930c3291f95e033c8c9eb6c07b1",
+    "rustc-1.54.0-aarch64-unknown-linux-musl.tar.xz": "e68c68b77ab5e7e36ddfba8835f1c63feb2b75484e5cd9268819f694cfbe6adc",
+    "rustc-1.54.0-x86_64-apple-darwin.tar.gz": "b3ac970d31893a192c8ec46fd6c9b8409751246cba029a212c4cd84115086a13",
+    "rustc-1.54.0-x86_64-apple-darwin.tar.xz": "e860a4f9b28bd7266c15859dc6d523fe445c7c776fb5ab134e27c400d07335b3",
+    "rustc-1.54.0-x86_64-pc-windows-msvc.tar.gz": "9fd8ed58b28cc6554dc7ae17e8b96770cc4736460c4a0047c78fb7ff54d53f10",
+    "rustc-1.54.0-x86_64-pc-windows-msvc.tar.xz": "9b99ac6700f3e4e48bcfa91771e116f5f60e9386c3a81d352be6099cfe5032fd",
+    "rustc-1.54.0-x86_64-unknown-freebsd.tar.gz": "a2974a15b2b284c09eeac39396728544700fdb8689e8b662ee062e68daa0b554",
+    "rustc-1.54.0-x86_64-unknown-freebsd.tar.xz": "773e37f3a371e6be4826498ea973ffc84cbbf12eccd2dff2fffaf5682c80b3e6",
+    "rustc-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "cd4c1c5db3b8ca3f76fac42d209e83640794eb8c2bbfb71b71e5f93b584d159c",
+    "rustc-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "eafc06aba7128ee8592c16d7e3ae7b877e82c5d9779c9d07099558ed7e286296",
+    "rustc-1.54.0-x86_64-unknown-linux-musl.tar.gz": "896b4eb229259005410311a29587aaab4ed7d5d590d810b06abd7601a004a953",
+    "rustc-1.54.0-x86_64-unknown-linux-musl.tar.xz": "5cffd160f5daac521652ee67c62947c0d66bdc8e5ebf7dc93114cdff9a934b0b",
+    "rustc-1.55.0-aarch64-apple-darwin.tar.gz": "4d782c947f1a35f5fb60799f019b4b82ad121a017746c935ab37fbd105c66c8f",
+    "rustc-1.55.0-aarch64-apple-darwin.tar.xz": "ffdf4b92c9b1d03909c10247eea97c028ffe3b6ba8e0106fbb3ef8292c5f768f",
+    "rustc-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "31dbbc1395f5a545c114e778552159713977dec423bca5705bd4c92ee3840cb1",
+    "rustc-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "8a718456700e65817ebab6ccb709f7541af691c6acdc12b20997c5c541761e7d",
+    "rustc-1.55.0-aarch64-unknown-linux-musl.tar.gz": "a5170d72af554b1d39a0db46cb2bd55911132705e3cf8e38d16a382f3b9d4215",
+    "rustc-1.55.0-aarch64-unknown-linux-musl.tar.xz": "893b01a0fad41c2706170d580521cf3e829c905580a057fa1d2635872def97d5",
+    "rustc-1.55.0-x86_64-apple-darwin.tar.gz": "7d1197687c72d4c72ae04905b96a7205ec4ad7c9da0231ea6f3bbbc8399adb84",
+    "rustc-1.55.0-x86_64-apple-darwin.tar.xz": "366c8e495bcd1402af88e996ecd7d8370206dfb0245a39d83c31d1f4b110760e",
+    "rustc-1.55.0-x86_64-pc-windows-msvc.tar.gz": "2cb681fa074386af8dd2cc6c79b57e1a8048acb1dda18e04fedff1c2dd84d70b",
+    "rustc-1.55.0-x86_64-pc-windows-msvc.tar.xz": "def3198b3e0a32321675655ac0b50bfb2dd8a89ee3f604343b1f70909acbe49f",
+    "rustc-1.55.0-x86_64-unknown-freebsd.tar.gz": "ad50ba2c87acb59020959df594aadc207f4fa527b2b2cd8849f3b1d3f666986f",
+    "rustc-1.55.0-x86_64-unknown-freebsd.tar.xz": "34d02e6e2dd3ca2f04bf58a1b60ce82367cd3dc7826dd8775848ebb828a2535e",
+    "rustc-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "9da098b2df01124f2c4b9789767151521f4bab98f50befdc75a691cece0c0d00",
+    "rustc-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "a602f4178d5adfa8428f89bd4045df029586d1bb87e04ae6ec2da7eb702a403d",
+    "rustc-1.55.0-x86_64-unknown-linux-musl.tar.gz": "f7c1fe2393db842630b23ecf6164fac471b11235fdb62a35a86e7cd3cf8d749c",
+    "rustc-1.55.0-x86_64-unknown-linux-musl.tar.xz": "0ddf6eccc6d005d39aaad3246ff157811a5a81c801f6e935c671299d24036c50",
+    "rustc-1.56.0-aarch64-apple-darwin.tar.gz": "c588dc2cd352eaf27ae74ee593bd0aaa65ac2742416c714f5827f395bb7c19df",
+    "rustc-1.56.0-aarch64-apple-darwin.tar.xz": "de1b5053ccc170af221ea9725a116cd2f26e5357f2551ec0064489cd2badc8e9",
+    "rustc-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "eb7283729bc4c336aa23b020489e8feb78eed70831213ee2e4121ce7d6ac33f4",
+    "rustc-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "0d2491a59f697d2ea52fc429b8d4665acb5f79b0e16703f3604b61b8aa68d1c4",
+    "rustc-1.56.0-aarch64-unknown-linux-musl.tar.gz": "e312187386bfb39fde04ca007faf656179e8c2b1bb1a0d59007db7a247b54b4e",
+    "rustc-1.56.0-aarch64-unknown-linux-musl.tar.xz": "4429db7e6169ae647b2869a534812aabe757e7aa786e2bbb18bd2aaf0512ec78",
+    "rustc-1.56.0-x86_64-apple-darwin.tar.gz": "a724945de2bb0ba78e56217ba02f67ad0cb07a01c2438b01b91f85fb94d273d2",
+    "rustc-1.56.0-x86_64-apple-darwin.tar.xz": "8381b3a6ad395cca58905eb36da2d05f63c411223671d7460c6b6b87135844f8",
+    "rustc-1.56.0-x86_64-pc-windows-msvc.tar.gz": "1034b2f6150d892649c1eb8fb10dbb4228ca2010f88720795e6a12696cab369a",
+    "rustc-1.56.0-x86_64-pc-windows-msvc.tar.xz": "4be524f968909858a37d9d1e6018e74deeed962739a4bcdb9b992094e9c0a128",
+    "rustc-1.56.0-x86_64-unknown-freebsd.tar.gz": "4e7a2f62ef2873b3bd45749133c1690c4b0e037af5a586e9ea691e480f8d2d40",
+    "rustc-1.56.0-x86_64-unknown-freebsd.tar.xz": "fb4eeb2e50facd0e08c26d2e42afe5fd2b2d051ca8a725af37b77f4e56eb8c83",
+    "rustc-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "aa66db89c3f89325e40ba0bfe481f4d631559884ae4812c3c3d091d80ba7c245",
+    "rustc-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "2a5f919e2036496c02ab4707a5eb8bd8a4ce6ea589e01cb39f25d213a26dcdfe",
+    "rustc-1.56.0-x86_64-unknown-linux-musl.tar.gz": "5f7ed6c289b56c129d6dbb407348f566caf39cfc5db35a4b6253cf514940482e",
+    "rustc-1.56.0-x86_64-unknown-linux-musl.tar.xz": "2cf4bf618265bfa2092fcb2bf0e8069120e1f1e1ab3b48b14d028559d81b5b55",
+    "rustc-1.56.1-aarch64-apple-darwin.tar.gz": "fcb2c2e46e3cc7e7cba3abbb78ba87131aea56770145f8d97944b675a491312a",
+    "rustc-1.56.1-aarch64-apple-darwin.tar.xz": "b68f42d3d5ef3c88ac21f5958149a25bacc4144c69a5d6b04ed3d05530265817",
+    "rustc-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "9e7461908d0b3e6f4bbb158b71d85e536c186fe571c9960f8ef4300328b25a11",
+    "rustc-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "77aec6a8c5f3d33941c79a48cda3bb08878c23dd1947dc027dfe5c4da41305b3",
+    "rustc-1.56.1-aarch64-unknown-linux-musl.tar.gz": "1e913b7f39d0f478c48ff9b9dd6a05dfe67a6ad58e478509cafb20e106512965",
+    "rustc-1.56.1-aarch64-unknown-linux-musl.tar.xz": "d8e7e6b9a9f07b9a9f3c080d9fd2ab93684776b8e0434bb06c147ce626adef05",
+    "rustc-1.56.1-x86_64-apple-darwin.tar.gz": "876b9ed13a71ada3c00878c6006d837b852973cba84419753445c8a8a76efe00",
+    "rustc-1.56.1-x86_64-apple-darwin.tar.xz": "aa7f98ef0cbf1cd3e983d8240474d381c800e25c33522532abf03fb960c065d6",
+    "rustc-1.56.1-x86_64-pc-windows-msvc.tar.gz": "709fa5ad9723e233025ab0cd142b628cd8a4bb8d11fcdbb97a779d78a60604e5",
+    "rustc-1.56.1-x86_64-pc-windows-msvc.tar.xz": "68970f47f8eb37b683521c97ce1e9fc711bb526a8474c8950b798fb5f5482412",
+    "rustc-1.56.1-x86_64-unknown-freebsd.tar.gz": "b6a440bf5c3b1e4930effc07c6e50bf03cc44c0465f0c379d626b800f4971700",
+    "rustc-1.56.1-x86_64-unknown-freebsd.tar.xz": "630a2d54a614c7d2b2f57f83c8d36c9b037299b42233e267bfedb05ef178de28",
+    "rustc-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "d09557a497a4f3b0726cae4c8e193843e403c80615f25f6ef740c79d7e4c122b",
+    "rustc-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "a7001d1218b62d377cab15522d1b1c376b073c05f7d0ff32cf278871a5eeda3d",
+    "rustc-1.56.1-x86_64-unknown-linux-musl.tar.gz": "b49ef5d9d8a2c49e48dda8bf08fc5a95ac87095a8895df9dbce0ecfb1a97c70a",
+    "rustc-1.56.1-x86_64-unknown-linux-musl.tar.xz": "1b1f83b69502240ea66a45426bb1ba3a7c1291b05c31b59a28ac0551933e1210",
+    "rustc-1.57.0-aarch64-apple-darwin.tar.gz": "cfd28be33d8669c85dc177775de6c4aa94289bba7cc65b90cbd2d9cd5486c860",
+    "rustc-1.57.0-aarch64-apple-darwin.tar.xz": "edd8bcd6e75a0161a6f63fabafaa32d918b60b49b0eea34c560f3e12bf5b9c82",
+    "rustc-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "91f1e29387fc53430592985b0620c8587e4aacc8ac582de4ef96c45c9ae930d4",
+    "rustc-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "f26811e48d03c56c125de03d389e1ae7c6df36990953c1670c6a5676bc12d4cb",
+    "rustc-1.57.0-aarch64-unknown-linux-musl.tar.gz": "e5289c930ed72c08310108f543deafc319c27389523c6c6905fa35283e9ab725",
+    "rustc-1.57.0-aarch64-unknown-linux-musl.tar.xz": "28e78badf85819eed0099b7dd32a18c1d790f004f137f4df534ced59eaf3c9cd",
+    "rustc-1.57.0-x86_64-apple-darwin.tar.gz": "4417eea141bb915f39305cf2d812579f503422fa2e712eddf11427ce91c48294",
+    "rustc-1.57.0-x86_64-apple-darwin.tar.xz": "07d8a849bbe6f5e12946061d6dc007733b953c3c29f02c8393e1606136ea0c87",
+    "rustc-1.57.0-x86_64-pc-windows-msvc.tar.gz": "073bbc3f8f71fb20bf6c7bd2e4cf6e2758c8ee6f08d3eef51a615d5b5b8a516b",
+    "rustc-1.57.0-x86_64-pc-windows-msvc.tar.xz": "c2c163a386ff840fece2cb08bfcd7a8f962c114e719768dbcd3a6b6f44a4c458",
+    "rustc-1.57.0-x86_64-unknown-freebsd.tar.gz": "ef9af581c88b5d52f3b91f8781fbea77426364ac035bb7cb274f41fa3bf60706",
+    "rustc-1.57.0-x86_64-unknown-freebsd.tar.xz": "83a0431e38c40699d7ffae7729fead5a9f4a1193ed38bb6768f6b4ab14e8c34b",
+    "rustc-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "92257646cd85b7c03520c838920851c879845ed8dfd2b339d2ebb4480ee4d4d3",
+    "rustc-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "c42f40c5279a3a9d539cae93dbcab9d333777ad9a60a5b9f1086b874ef63db86",
+    "rustc-1.57.0-x86_64-unknown-linux-musl.tar.gz": "49ff02cdc94bd8732c2969b06006773311c8e41c188a9cef627b37eefb0b73d7",
+    "rustc-1.57.0-x86_64-unknown-linux-musl.tar.xz": "5b04e0e0bbf140f7c49baa6280114c28f59f6de50481bdd45074eebf629c174c",
+    "rustc-1.58.0-aarch64-apple-darwin.tar.gz": "7b3291177d4f8a73c8e20185a04bbc88775fc85eeb271c19bc8f37fb5051ae0c",
+    "rustc-1.58.0-aarch64-apple-darwin.tar.xz": "2f171d7f0861e870094b0fe1c6f68242567928a8d2c3fba274927d59a29e2797",
+    "rustc-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "34d8fdaec504efe6e9448ad5a118ac0e7ef3bd9a8f6c49ea68204f2f9a9dae4e",
+    "rustc-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "8d7c8a64118ee523ad3ffc84baf91cf02ff4415390dc835f3925f8697170ec65",
+    "rustc-1.58.0-aarch64-unknown-linux-musl.tar.gz": "2c6ee3dfdd496a01f55f6b0ae683d3acdecbd42ee386c4000b336351e89b3cac",
+    "rustc-1.58.0-aarch64-unknown-linux-musl.tar.xz": "d6412ff4d8e72310658598b009e125bfe0b4f77dfa541587918ddd362c198f5e",
+    "rustc-1.58.0-x86_64-apple-darwin.tar.gz": "3d3815385dda1c1d8617ee14b682ec3804307b0f5a0ac5604a7dc5efc783263f",
+    "rustc-1.58.0-x86_64-apple-darwin.tar.xz": "630382b0b52941978e680cada034951978b08e3c65d5dc26b234131f4af0fd4f",
+    "rustc-1.58.0-x86_64-pc-windows-msvc.tar.gz": "2296e7bd3e4977917e1cfd021a618064e3bac955338193fba89e84705306aed9",
+    "rustc-1.58.0-x86_64-pc-windows-msvc.tar.xz": "d500cbb5ad84e59b3391b8056d08179edfa62f2d79a96041f2f1cfcbde216d7a",
+    "rustc-1.58.0-x86_64-unknown-freebsd.tar.gz": "89969a81fd9c9cfb94e6554bf1a8884417b0d5dde5e7c45bd4e9b1887771f5d5",
+    "rustc-1.58.0-x86_64-unknown-freebsd.tar.xz": "654bc0ace57ca64005123642217af9fc500e8361d0f5ccaea9316d08ca9f2c3d",
+    "rustc-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "94e3a5e6dca2ae2516d6496568b6791b9501ac500c3e5faf6f42baaead41d404",
+    "rustc-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "47e586451ac25027eb6c0d23c881a917d21d074d2fe9e5a3f41b4b6de1622be0",
+    "rustc-1.58.0-x86_64-unknown-linux-musl.tar.gz": "1134b85ce578ac017650d8e7c360d14a85a1d6185c164678f95440cac1f6786d",
+    "rustc-1.58.0-x86_64-unknown-linux-musl.tar.xz": "3ed55e845dc5ac8d70609edad2cdb60fe3c36a22be6a22f7d30eab43896420b3",
+    "rustc-1.58.1-aarch64-apple-darwin.tar.gz": "cbcc922fa499131b4f9b0ff6c656792edd34452dc902552a0d0dfa8f4690b996",
+    "rustc-1.58.1-aarch64-apple-darwin.tar.xz": "28cbda14d27337369ae526f8f35cbee78b42ee3555832fdb4695eb624ee60a57",
+    "rustc-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "ad97b6e3ed1e6701ceaa1bad7f2da391546d27b121d967b606bd48542f21c669",
+    "rustc-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "330e7ac9cf685d4f7fb6f32fbe0374815fb7866dff13a34efa727e6853b00650",
+    "rustc-1.58.1-aarch64-unknown-linux-musl.tar.gz": "156c5909cb6c9b5d96662f2eec87edefcdf019783082745b9abaeb97d1d45307",
+    "rustc-1.58.1-aarch64-unknown-linux-musl.tar.xz": "ad1e98337de63f7cd9ab79ffbd277122f23603a0d2022dc17e58dae042f87347",
+    "rustc-1.58.1-x86_64-apple-darwin.tar.gz": "859ea96ca53ed6480333273ccd39c0f9a487d7f288a5fd2646c3907353402fce",
+    "rustc-1.58.1-x86_64-apple-darwin.tar.xz": "a781aef0271351a029fd74df5e275631b65809727cdbbde3ab8e6ba69ecf7e75",
+    "rustc-1.58.1-x86_64-pc-windows-msvc.tar.gz": "31bc5359886854fccf16956a92c4205372df0ba1be19642879a0e9d6441a069c",
+    "rustc-1.58.1-x86_64-pc-windows-msvc.tar.xz": "ab584ed6038748d576fc718b3dcca7695aa3ee454ead0363fb93d67a0f7ac2dd",
+    "rustc-1.58.1-x86_64-unknown-freebsd.tar.gz": "ccc043fbf337adda1dc66611f8b8eea3d2fd9e1cee9adc1a07d1a3c4c0b4711b",
+    "rustc-1.58.1-x86_64-unknown-freebsd.tar.xz": "63b137db93cbbfdf7c585f24f9ebf0f0b1ed96054042b66bfd4a4bd217e0c7f7",
+    "rustc-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "1bab764b75bec5b83ec88f6cf7e6127f0bc5bf64307277d1f5ce8838a8b8a415",
+    "rustc-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "95627658e0a3b59a32f7b9325968af2ce875d4eb1df9bc0952afd8f8776b3e29",
+    "rustc-1.58.1-x86_64-unknown-linux-musl.tar.gz": "626cfaf717b3e05d2e20726ecbbd7026edf8a816de06ef0f499e5a27339c1310",
+    "rustc-1.58.1-x86_64-unknown-linux-musl.tar.xz": "026ec08a186f63569371afa0d3cb687243a0743ce6ecae35d4e0ed7558954ccb",
+    "rustc-1.59.0-aarch64-apple-darwin.tar.gz": "caac78491d8f0844bb9a512989a409c35ff681a131495e7ebfacb69ba006bbc1",
+    "rustc-1.59.0-aarch64-apple-darwin.tar.xz": "337623ec9bfc9a1ad3b7e15c595a0d1d1881f688e61e5b59f9d9b023d465d074",
+    "rustc-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "04d4add5530d247214ec8afd32f2c91d75b219035130b877e4769cebcd4174d8",
+    "rustc-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "d9789013ef6edd76eae3e7427b48f420a036ab3ee2af883e60baa33a9e1c23d7",
+    "rustc-1.59.0-aarch64-unknown-linux-musl.tar.gz": "a50567a08ec5a33bdb60b4a6c4572cb85c2e48429ed6d98a28580ca7ed82d8ed",
+    "rustc-1.59.0-aarch64-unknown-linux-musl.tar.xz": "76d1b1671a0d68aecda7a707186e3e6d7a58c156f048c60804835974aa5abb02",
+    "rustc-1.59.0-x86_64-apple-darwin.tar.gz": "eb5b613800c75882bed9e3bb48c325aac0e5ce418ae2b19f51e4ccf7e4781e0b",
+    "rustc-1.59.0-x86_64-apple-darwin.tar.xz": "1cad5f80f6778ba47ee3675174103dd08864e116f961fb84cd51201f28ebcabe",
+    "rustc-1.59.0-x86_64-pc-windows-msvc.tar.gz": "e838ecdba060b4ad3d0becc08027c9598977db40ac1f4e5fa9231725110ea06b",
+    "rustc-1.59.0-x86_64-pc-windows-msvc.tar.xz": "22c14602552ddaec7f8d684d89e098620e3b195a4b3c4c2de964ea08a30a0d52",
+    "rustc-1.59.0-x86_64-unknown-freebsd.tar.gz": "053fe53aa72e9400b3657049cb0352a26268bd5a81a2b09500ff2cb150c32767",
+    "rustc-1.59.0-x86_64-unknown-freebsd.tar.xz": "0ebe251fb86b7b7c824e0492aab3b4973854ab7787d103b6ddba3014a768afb5",
+    "rustc-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "e7ed041c93b77a7d986aa198d28f63ab96493fdf164bd28c8785c5b31a9e62d9",
+    "rustc-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "838de1fef855ef7733a87862c2575e8da9f3fa11fd0a8ce05c293038ea92356e",
+    "rustc-1.59.0-x86_64-unknown-linux-musl.tar.gz": "34e7b33acbffd2012906249509a0d364692767a15a54d10e67122361703ee811",
+    "rustc-1.59.0-x86_64-unknown-linux-musl.tar.xz": "e0b543b36f8b3471975e5982f7c93894947af315932dd3305d1cf5763c4f5d4e",
+    "rustc-1.60.0-aarch64-apple-darwin.tar.gz": "fc864d34c78b4d2509d13c10680321946b87ddd0b2f6d4c6c5bb711db461dd17",
+    "rustc-1.60.0-aarch64-apple-darwin.tar.xz": "4443c2cb3a10025e51a24b13da208b8a94ce13d1899d1f2082d5e2cd28f88696",
+    "rustc-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "0e1ada844aa2f0fa9c1dcfd9352ddd400f67890131eb5873fd3e9ec700b911e1",
+    "rustc-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "f5b24f2bc30db4b8efb7eba7db86fd5db0bc283631b4c918794e9217fca32822",
+    "rustc-1.60.0-aarch64-unknown-linux-musl.tar.gz": "fe1e5d34fd09b6c8b923cf7454f84a5471fe76ff5a58255e5647a959e43d323d",
+    "rustc-1.60.0-aarch64-unknown-linux-musl.tar.xz": "09b1b227109e4fdb30cc1795e13fb7cf8912caf3e00618ba7213980d7f158673",
+    "rustc-1.60.0-x86_64-apple-darwin.tar.gz": "6569aa1b0959fa7f73fea4d6dd01059132c83d1d8c06216726077cf9e6883857",
+    "rustc-1.60.0-x86_64-apple-darwin.tar.xz": "bbf441c3abf5ac0965a237c09eaa609207726cad2c387b5bc9dfa7c12c0c0409",
+    "rustc-1.60.0-x86_64-pc-windows-msvc.tar.gz": "aa1c8dac9b0afbe5b7a985f08bcc2b06fdb2a902850e06e0a70a23ee943ebb0c",
+    "rustc-1.60.0-x86_64-pc-windows-msvc.tar.xz": "8be10a979fbd4fd34e9529baac6358d140a9acef8112eb56956864631970baaf",
+    "rustc-1.60.0-x86_64-unknown-freebsd.tar.gz": "7771457aa6f080fcc5198e9b645682e43efef5a27a66f3e9bc6d18d6c99bc1c0",
+    "rustc-1.60.0-x86_64-unknown-freebsd.tar.xz": "1fb29ce37e10a60e95ea6887b6a15dc256f52d4ee9948f1d6a77eff6c50023b9",
+    "rustc-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "d68a0566627ea0d481ee5e57c1bfc995c10ff55ffad34b2508c747429c3bbd6e",
+    "rustc-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "fc0b41c15e348ad0eeb7a6c015a922a2ac95e9577e531635558b26d99399f315",
+    "rustc-1.60.0-x86_64-unknown-linux-musl.tar.gz": "4ce8a7c4ae8761c9fbb74e602d813811a005be5d4eb40d24688a367f429c40d1",
+    "rustc-1.60.0-x86_64-unknown-linux-musl.tar.xz": "0b8b5261575575bae6768a27fcd43b01784ee7e29249ca8fd7b1d3b5e1fab5a9",
+    "rustc-1.61.0-aarch64-apple-darwin.tar.gz": "512c774a41c816c53ecbbb584cacdc582b8da1334193ece4eea1e5d0b0730906",
+    "rustc-1.61.0-aarch64-apple-darwin.tar.xz": "6b52e1fdf6066e8df474776c3f090b945ec9ac4de4d9419c86e92e992eb3462f",
+    "rustc-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "cec2afb78b5f0d3303cd6629232dcbd9f9dfa0d5e99b8ca0a95b77d570b1d591",
+    "rustc-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "c996de6391e3ea94629fbc09b03bce186fcde345159f43ec95a82c500adb5e94",
+    "rustc-1.61.0-aarch64-unknown-linux-musl.tar.gz": "d13e8bcf0972ec13174b8aa17df08d74b32ebe765b7cb49dcfa5f308adab54ce",
+    "rustc-1.61.0-aarch64-unknown-linux-musl.tar.xz": "412bdcfc50494267063f356e09679927e684ce298783f6f587184d6c4993fa04",
+    "rustc-1.61.0-x86_64-apple-darwin.tar.gz": "126b7c079a3b70cb60e0be76846862478a668079373124054227245f69378af8",
+    "rustc-1.61.0-x86_64-apple-darwin.tar.xz": "e8f3dd3887544a38eb12a66298f1c579f4d6456d037ea4d22e4348866c336b8c",
+    "rustc-1.61.0-x86_64-pc-windows-msvc.tar.gz": "ddc55e2f43dc88d2eead12d108c43fdb88f89167fa11affc1e6d6bad7f8a1d06",
+    "rustc-1.61.0-x86_64-pc-windows-msvc.tar.xz": "f331c6f9b6235bb367397acfbc4370588126b8abf807ed0c7aa8018bd3faef79",
+    "rustc-1.61.0-x86_64-unknown-freebsd.tar.gz": "0db77e24813108a0c531a17daf1dbfbe2de8b40c3701f1cf2ad6fdbd9ae77a21",
+    "rustc-1.61.0-x86_64-unknown-freebsd.tar.xz": "7cc77cf9b88a7b821fcd7d5d0bc15e843e66a798cf5718262b964bf753b3866f",
+    "rustc-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "708a8f8b9ebda188e133695a12c96ef7875723bb3ad2ed2a2b6a20ebfcd57ff3",
+    "rustc-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "21c4613f389ed130fbaaf88f1e984319f72b5fc10734569a5ba19e22ebb03abd",
+    "rustc-1.61.0-x86_64-unknown-linux-musl.tar.gz": "6db0895000c60d74ca068b2f49dcf787fe8b01c78533e85695291b457253a83d",
+    "rustc-1.61.0-x86_64-unknown-linux-musl.tar.xz": "89cb72cbc493cb5cd8e43830009b4a1a5bfd472246ae184157868c9b0607bf6c",
+    "rustc-1.62.0-aarch64-apple-darwin.tar.gz": "0e360dba315cf9000e16cceaa4e569b77adede57a71d4ead447ce11500299469",
+    "rustc-1.62.0-aarch64-apple-darwin.tar.xz": "f46b4fcbc88b4f372c7f997b8aa65eb79331b4fba269e03adcd0e1d6c058e6db",
+    "rustc-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "34f107285727f7d53e9e3128f05c5f258ef10cf03658f5723a2599890ae265cc",
+    "rustc-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "0fa320a19d41dcfc592bc006f5e9eda8e3b972598a26c96ad64eedd868516df3",
+    "rustc-1.62.0-aarch64-unknown-linux-musl.tar.gz": "1862262b348b840a823fbcde41e068b5fffb76a27f0498f0ddf1da8f93e8bed0",
+    "rustc-1.62.0-aarch64-unknown-linux-musl.tar.xz": "352905af751a4f3920f972209889e80115882cbb910e580df9d5436aa38b80bf",
+    "rustc-1.62.0-x86_64-apple-darwin.tar.gz": "780e23e6c5dd46a74357349591cf576746fa5a28156b0f4ef60b64c2e7cd1ee4",
+    "rustc-1.62.0-x86_64-apple-darwin.tar.xz": "94d11ebcd867e45a548398e720e4b65a32d3fba60b8bfb689d5034266a676822",
+    "rustc-1.62.0-x86_64-pc-windows-msvc.tar.gz": "a40214b9280a5a9bc3f251afe8fd59edf270c6f57be8e5b1b9a64665d5505bbb",
+    "rustc-1.62.0-x86_64-pc-windows-msvc.tar.xz": "66b8e7957fe0b0d5eb48a32b93c7177f0f15ffd285486c376abff5783600bc2b",
+    "rustc-1.62.0-x86_64-unknown-freebsd.tar.gz": "eab2a88a4ff51811b90acbb6957a192031de4392eca3f679307f9c55e7fb7749",
+    "rustc-1.62.0-x86_64-unknown-freebsd.tar.xz": "fc72a5043866661837e705086d6ccf6127d684e8353d052343d5fd212e9915c6",
+    "rustc-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "892752484043f7a129f7c80fb5b71c7745fbfd8542d4ed4c7c7f18898a7add16",
+    "rustc-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "e7f71f4ef09334ddc9ec8cbf2f958d654e36f580c95f8fec6d5c816ce256dbd6",
+    "rustc-1.62.0-x86_64-unknown-linux-musl.tar.gz": "8d3422124f774eaa56dcc2234886af0a4a5f71ffccccda403304e0658809b5bf",
+    "rustc-1.62.0-x86_64-unknown-linux-musl.tar.xz": "8c8e94ed162ff957806b4beb81ad5272c39cf116f2d96f19ccc82b7e805af11a",
+    "rustc-1.62.1-aarch64-apple-darwin.tar.gz": "f5cef5db93fcd2565d6d5f91b04396668bad560352ca445c9c296ba534de92f9",
+    "rustc-1.62.1-aarch64-apple-darwin.tar.xz": "d681a505db3b58559369b5524e3939f3d5481e539e6abd62882419e7c1ff85c3",
+    "rustc-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "7f61cee6f69fb6895cef5e5d077504ca69dbf35535defd5182b7e60582b7f1d0",
+    "rustc-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "25f4de7534d12c9a67534b96e24f4dde3366d0df85169f54e2fcc3b3901ee1bc",
+    "rustc-1.62.1-aarch64-unknown-linux-musl.tar.gz": "8572fdcdd88d2052ae518f2b00f3d9029324abc9cd61c0fca2430f5f8f29fd3e",
+    "rustc-1.62.1-aarch64-unknown-linux-musl.tar.xz": "169a91024496b82c97f8d544fc766d3fcdc0fc3aae32d1bc1d7ec848ff284d27",
+    "rustc-1.62.1-x86_64-apple-darwin.tar.gz": "3c604cdd8ff6617c7ecc1b38a1689772ec4392dd0d1624a5e435f6db6ed13d71",
+    "rustc-1.62.1-x86_64-apple-darwin.tar.xz": "22a70770f0f5c793bf8c4a33887439b42b1e7a3cf7791ab11bd25f87cca43705",
+    "rustc-1.62.1-x86_64-pc-windows-msvc.tar.gz": "6f3f3e78a05502b946e3f00a10da5f8942d9a1aa4c07e2a95e3a41669dc749c3",
+    "rustc-1.62.1-x86_64-pc-windows-msvc.tar.xz": "41a4aa1522d32aceba23ab4eaa9517afa5ab41372e33934d839742dc46052826",
+    "rustc-1.62.1-x86_64-unknown-freebsd.tar.gz": "2da8b3263f91f3c773ef90ea9b4266c8df555728f87fcb5a8ee9998413727b42",
+    "rustc-1.62.1-x86_64-unknown-freebsd.tar.xz": "77870f288f2099e14fc8c1dce21574c7aa11c766b05523077eccff6d91a9e061",
+    "rustc-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "4066d5f897864f88dbe55fdc190881272132d3acf031f6aa29e1b19a3b589c9c",
+    "rustc-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "10a269b15d569dc07fa7bd4a701784d5a897395622891e1003710a6a386fcf09",
+    "rustc-1.62.1-x86_64-unknown-linux-musl.tar.gz": "54cb96ad8db976c4deed44f202522b4f02235af578c7219e9e11865b2113cc9c",
+    "rustc-1.62.1-x86_64-unknown-linux-musl.tar.xz": "1818c682fc8e48537c1c43a9fd7eee4bb12ae24c201f1ac7b0e889ab01b32f2b",
+    "rustfmt-1.48.0-aarch64-unknown-linux-gnu.tar.gz": "28f7d1ef37c034033eb0e30a13e5f0ad5bbc506adb8a8a9c03adce2b0d4842d5",
+    "rustfmt-1.48.0-aarch64-unknown-linux-gnu.tar.xz": "24f5e32213cd81bbb854f836c4da44e31652b4f6dff3a9b5455d5433bffacf9f",
+    "rustfmt-1.48.0-aarch64-unknown-linux-musl.tar.gz": "e6efa0fae347f97dca3b892565302d35b4cedfee7cb6e2b5fcdb2801074fe018",
+    "rustfmt-1.48.0-aarch64-unknown-linux-musl.tar.xz": "7579db65fd6e6a9a2273347a1d3f2e3ad577592c565552270265571ce6d3f355",
+    "rustfmt-1.48.0-x86_64-apple-darwin.tar.gz": "cfe593a9446e7dfa52ded8a7cca174ba0c2d1cac6e865d04e0890282f25d22e2",
+    "rustfmt-1.48.0-x86_64-apple-darwin.tar.xz": "bc67f04503364006f85855ba7231ae657cc937cc0ab9286913f5a45aec7da944",
+    "rustfmt-1.48.0-x86_64-pc-windows-msvc.tar.gz": "96d779befe8bca88d3cb69723d401d290a4a637746e8cc119126cfe9d5c773ee",
+    "rustfmt-1.48.0-x86_64-pc-windows-msvc.tar.xz": "bb05b952dd4dc0f2c922f1b8e10185ab0630a635616eadbe8603cbf6c8caa3a9",
+    "rustfmt-1.48.0-x86_64-unknown-freebsd.tar.gz": "ae84ca6d0841e6be0f140efd67693a1a50520e6610f26e5ee57a15b5a9947588",
+    "rustfmt-1.48.0-x86_64-unknown-freebsd.tar.xz": "1fb64864a7d0d218eea4e41e4072f49c7e7554ad335751c7197838f678b434c9",
+    "rustfmt-1.48.0-x86_64-unknown-linux-gnu.tar.gz": "12d185cfd6ce15e4df3590bf1b9b3233df75e7aa14b42a9269b4235347a14b2b",
+    "rustfmt-1.48.0-x86_64-unknown-linux-gnu.tar.xz": "79925c8a6b651fbbfa159ba2f28875c6b61cb6da30d1450e7acf041cba83bca3",
+    "rustfmt-1.48.0-x86_64-unknown-linux-musl.tar.gz": "1a8674af3fbe9616426a02fa4115057e411e7dfcc0f7bb377ee27e3a3bec15f4",
+    "rustfmt-1.48.0-x86_64-unknown-linux-musl.tar.xz": "482e1b85d1fab287ae6aacbaa5108e310827ee7007c3917cef401e04f8a50ed5",
+    "rustfmt-1.49.0-aarch64-apple-darwin.tar.gz": "4f03d2913ecff9b534bc6c2c7684d0884958a1c8f12668fea86c0aa4371231ae",
+    "rustfmt-1.49.0-aarch64-apple-darwin.tar.xz": "e44c8c1aa133db189d37b3e0b46bbb52075099b50941515c04c9ee7dcc553899",
+    "rustfmt-1.49.0-aarch64-unknown-linux-gnu.tar.gz": "9ef9c477911b3718539defa18ef5838b6f479e646d82e410643e5e8cb21791dc",
+    "rustfmt-1.49.0-aarch64-unknown-linux-gnu.tar.xz": "768545967c75b2b7ac8de3fd22a9e2aa139e4f22ebcc38cfd0c4e0bd672acf6f",
+    "rustfmt-1.49.0-aarch64-unknown-linux-musl.tar.gz": "40dbcf80a23055cf2245a6bbf5e16c0fd0300076e279b8e29d66de8af1d5409a",
+    "rustfmt-1.49.0-aarch64-unknown-linux-musl.tar.xz": "0bea0ab5fddb38ed9c62f9ae353f633c69bc19888f8816409e697033fa870981",
+    "rustfmt-1.49.0-x86_64-apple-darwin.tar.gz": "e505092d5525dca1012d57e9c9dfd048cbbe2890e02e1327c1a0af44cd3d7aa1",
+    "rustfmt-1.49.0-x86_64-apple-darwin.tar.xz": "8961852b61dc2ba8691e9c75103e9f7d384d8b66f3122b11e7f2a6c33237e78c",
+    "rustfmt-1.49.0-x86_64-pc-windows-msvc.tar.gz": "e094798983f77ef95e28db1c561915f992f3a190813162b33e2bc6942485a485",
+    "rustfmt-1.49.0-x86_64-pc-windows-msvc.tar.xz": "f2af88aa992806f9952bc2ec441f97578872370bfefb221c5598672feacb1d31",
+    "rustfmt-1.49.0-x86_64-unknown-freebsd.tar.gz": "ed7465ddcc654b32822e48a8e91cd58391c36210b332f054a9ab5c1e5733ae74",
+    "rustfmt-1.49.0-x86_64-unknown-freebsd.tar.xz": "1bf339e919bde431de75efecff9662d063d821987835183bc7c411729fad9f14",
+    "rustfmt-1.49.0-x86_64-unknown-linux-gnu.tar.gz": "a1b1a9c06b9958116c37e212c5e04d921f78967e9f9956f6249a16e033f67a03",
+    "rustfmt-1.49.0-x86_64-unknown-linux-gnu.tar.xz": "7c27858367164a41d54a09c62411b6cb37c74cd1b00944c91fc028e61aa785ba",
+    "rustfmt-1.49.0-x86_64-unknown-linux-musl.tar.gz": "cad26f7f7f9c67f32e03a07ad84f9dc9b7f755213cc0cc596d2971836bcc0cc1",
+    "rustfmt-1.49.0-x86_64-unknown-linux-musl.tar.xz": "a0cac56eb73bf9ce635e5e5789b0549f5b86421c85188a125a4438c59a58bd7d",
+    "rustfmt-1.50.0-aarch64-apple-darwin.tar.gz": "1dd932c23b3e70c1183dcb58c431ddd97df72c173b4e28d3a3b008132079a914",
+    "rustfmt-1.50.0-aarch64-apple-darwin.tar.xz": "c75b8cbe477ef2ed40d477275a0d7123858e7ca6e7e0a4058adb4e5aed251a38",
+    "rustfmt-1.50.0-aarch64-unknown-linux-gnu.tar.gz": "0bddf9a1b55bcdae7cef3b37c56ba5816a2b2c932d57dbe7cfc73acce65f5aff",
+    "rustfmt-1.50.0-aarch64-unknown-linux-gnu.tar.xz": "98a5159169f06e30d39380ad8e6cd1b08319c0c043fa19845474c0fbabbb6bad",
+    "rustfmt-1.50.0-aarch64-unknown-linux-musl.tar.gz": "c885b27194ad8405d2c75ff134d81c5a51c24ffcab2ce5f3684e8de8b353f66b",
+    "rustfmt-1.50.0-aarch64-unknown-linux-musl.tar.xz": "8b12a914ce0a007bc2a936edf4919a488681ee05c9fc6c6a91b309828bc9972f",
+    "rustfmt-1.50.0-x86_64-apple-darwin.tar.gz": "90108b9bf4b529d12096d7e7c3ef97e77d2304ea142cd0352d0b9814df80c7d2",
+    "rustfmt-1.50.0-x86_64-apple-darwin.tar.xz": "3b9067472587065e463f153011e57f830967e56428c5fe07798f884ea6437572",
+    "rustfmt-1.50.0-x86_64-pc-windows-msvc.tar.gz": "4ee791749b1312091ecb66bee916b0f70fa71cfae1315de8d3351c6da913d5f2",
+    "rustfmt-1.50.0-x86_64-pc-windows-msvc.tar.xz": "100b3778d02fc5102345d35f5e158d508ff4aba8ce2b548e983fd5add820fbf1",
+    "rustfmt-1.50.0-x86_64-unknown-freebsd.tar.gz": "037c575d92f87ee372b2bfb3b802c8a86690133ee1c82a5a8402ef9e97780f77",
+    "rustfmt-1.50.0-x86_64-unknown-freebsd.tar.xz": "eb03eac2c48dbfc7b548906848f76103a4e9375421ecde9d2909520ed58e82b1",
+    "rustfmt-1.50.0-x86_64-unknown-linux-gnu.tar.gz": "2537e788067e56f263ab52869a6efbbf6be9f57ad6b14fc33ddab7cff79a3768",
+    "rustfmt-1.50.0-x86_64-unknown-linux-gnu.tar.xz": "4b7664caa568e4ea9888b13024fb7e210caa684a7d95fde8399560476a59030c",
+    "rustfmt-1.50.0-x86_64-unknown-linux-musl.tar.gz": "6f412c518e078f8891578b174d884cddf992b5fb72b14952f71d5ee8c2a743d8",
+    "rustfmt-1.50.0-x86_64-unknown-linux-musl.tar.xz": "f0d9e3e77af8852cd9bf906904ab4d70a9a3d76e3243358cd2a6c7f7f1c6c0e2",
+    "rustfmt-1.51.0-aarch64-apple-darwin.tar.gz": "2f6966b51abc33a76b497776f061d049dc9c928aa09ea773a3404396002b33d8",
+    "rustfmt-1.51.0-aarch64-apple-darwin.tar.xz": "a045cbbee7e43da6acf06aebd83b52cadb7ffc703d16e0f271ef7421424829a7",
+    "rustfmt-1.51.0-aarch64-unknown-linux-gnu.tar.gz": "5dfa947dfc221ecb282a082263d79c5faf0c586acfcf7e416357d3e5107675c8",
+    "rustfmt-1.51.0-aarch64-unknown-linux-gnu.tar.xz": "fcbd0f9396e259de1f2093a500322b64924c4cae3270eea3a1176d4429801b61",
+    "rustfmt-1.51.0-aarch64-unknown-linux-musl.tar.gz": "0fbca6b470e8c888b03adb501d45db68a5c19dcc05b8f5a1d73d5f9a4d1b3c01",
+    "rustfmt-1.51.0-aarch64-unknown-linux-musl.tar.xz": "baef27c99bae70089a080a6eb4e6c1b8eb413899ea3d5f5cb1d667b22ad04082",
+    "rustfmt-1.51.0-x86_64-apple-darwin.tar.gz": "b30448ce429f2920b5a4d1bf50b40f4d251188f29ffaa6af12bfb131d993c5e0",
+    "rustfmt-1.51.0-x86_64-apple-darwin.tar.xz": "03a27655d659327e6537829afcc6ddf2ac56acc4b431a20468d484bbf74fd2b5",
+    "rustfmt-1.51.0-x86_64-pc-windows-msvc.tar.gz": "520e8eaa186acc4f978fd30a34566b11073ed3396628e3dc192aa2862be42edd",
+    "rustfmt-1.51.0-x86_64-pc-windows-msvc.tar.xz": "6e1717b13d631905d1339a498f5aee3e82ef33798d4fb40d21c432960ac38a15",
+    "rustfmt-1.51.0-x86_64-unknown-freebsd.tar.gz": "3693bd333303984ce0854452c31b5720cf6d8fa02f69062dc28b7db3b677bec2",
+    "rustfmt-1.51.0-x86_64-unknown-freebsd.tar.xz": "ff725ab1a898e59d1fa43ecd4edcf56d2ba6e212315d56b6fea784630905179d",
+    "rustfmt-1.51.0-x86_64-unknown-linux-gnu.tar.gz": "e50c03cbf104de7788eed8d5d923b5dc7555f12a3c045275751633121ce74d43",
+    "rustfmt-1.51.0-x86_64-unknown-linux-gnu.tar.xz": "2a4f5e521f914463cd3384f210d382fd53f9892f03fa20f5ddecc6047ed61f62",
+    "rustfmt-1.51.0-x86_64-unknown-linux-musl.tar.gz": "6798ff8f805cf1ddc187c4567fa7f3e32b9f347477b0956869caf1f31a99c374",
+    "rustfmt-1.51.0-x86_64-unknown-linux-musl.tar.xz": "2c383f6e4a7d622caa42a9189ca1c0a90c837c6b61db4fdd6c6af4c4360359eb",
+    "rustfmt-1.52.0-aarch64-apple-darwin.tar.gz": "263296e44decd784b468de22519f7a22fa3dce3358bd96aab627f60b1f9778db",
+    "rustfmt-1.52.0-aarch64-apple-darwin.tar.xz": "d5baa77ccb90c0b1994ac8bcebc8ac74ca4c9b37a3a14d3dab531f255f51eff7",
+    "rustfmt-1.52.0-aarch64-unknown-linux-gnu.tar.gz": "f70260c7f6e39e20b376389d75e8c3518608860a3ce7647abeff626204341ea7",
+    "rustfmt-1.52.0-aarch64-unknown-linux-gnu.tar.xz": "1527c47e8958b9b650ed7b4bffdee30d54700765cfed7fd03a98210a74a02d62",
+    "rustfmt-1.52.0-aarch64-unknown-linux-musl.tar.gz": "97190a6c8b6044c0fb375c71d672204adcf62d1b6c5d747715cc94a0ae631e04",
+    "rustfmt-1.52.0-aarch64-unknown-linux-musl.tar.xz": "c072e0c3c94cb73e25082f2b77621c9ecca143ee34698294a2fd5d7db4f3bc78",
+    "rustfmt-1.52.0-x86_64-apple-darwin.tar.gz": "c3841b8568c00068ce6d264688320466c95307971a64adbb2b6ca6d5e54e158f",
+    "rustfmt-1.52.0-x86_64-apple-darwin.tar.xz": "eb0cb5ee6f966fdc2dea4516a11b04ff8369c773913fbdcbb862652aacdc5039",
+    "rustfmt-1.52.0-x86_64-pc-windows-msvc.tar.gz": "eba78266b8a381c2fbb07c4b3a1571a6fc102e1b9fc298ae362ab8da0aca41e5",
+    "rustfmt-1.52.0-x86_64-pc-windows-msvc.tar.xz": "12be7726b02381c45e628312948e1515d0de966b6727fcc0240f3eec2a43a0d7",
+    "rustfmt-1.52.0-x86_64-unknown-freebsd.tar.gz": "e150cd81ac2e7036ed9ff55b93c62cbcbd6fa2025371fda568a32a071cf94020",
+    "rustfmt-1.52.0-x86_64-unknown-freebsd.tar.xz": "d86d91d17545929f0a537cf8b4680357d4812cd81cf879040b9aca00e4559686",
+    "rustfmt-1.52.0-x86_64-unknown-linux-gnu.tar.gz": "7563b04b2900e9bef6360fb445baf00a8584072142d4554eb54f8109ac7486c5",
+    "rustfmt-1.52.0-x86_64-unknown-linux-gnu.tar.xz": "2053e365ea14a46ef4a2f2bc1a35828bc0b2b15886aeb0e04bf0af5bc59ad693",
+    "rustfmt-1.52.0-x86_64-unknown-linux-musl.tar.gz": "ba74b93b4a70a7070d516a332a589b10bd161ab8b36826052ffa0569b1d6b5e6",
+    "rustfmt-1.52.0-x86_64-unknown-linux-musl.tar.xz": "d0e27650023a5fe2f21a0c558d6d946786136acf6bc3aff75dea3468239df98b",
+    "rustfmt-1.52.1-aarch64-apple-darwin.tar.gz": "b02cf93d230a4147f2551e012b314b93d2d448ebc4ee71896918c488d8e6e446",
+    "rustfmt-1.52.1-aarch64-apple-darwin.tar.xz": "7d21714d9f47594b2ea85b3e83d96922993dc21cd16ff4fe1553b95a13f2be7d",
+    "rustfmt-1.52.1-aarch64-unknown-linux-gnu.tar.gz": "727d227f5e1e0ab3bcaa4f4adfe6b5e21fb70279b4d5825cb95fc6983c3cd9ae",
+    "rustfmt-1.52.1-aarch64-unknown-linux-gnu.tar.xz": "4c8501c349c0955e19034089622e8373278723fd3afa075a9fb0ff4e5506134c",
+    "rustfmt-1.52.1-aarch64-unknown-linux-musl.tar.gz": "f707919fb5ad7d0db02fd2e63293153b20043c4511385840835d6a8ae7087d96",
+    "rustfmt-1.52.1-aarch64-unknown-linux-musl.tar.xz": "2c098fbc5eb1ed8f9cb1338d19939ebccb249f79ad2c4331dbf8bdca1b44e528",
+    "rustfmt-1.52.1-x86_64-apple-darwin.tar.gz": "fc2d3cfd2742800745a97a3cb69a005166992c756dc9fd191add1f37842210e4",
+    "rustfmt-1.52.1-x86_64-apple-darwin.tar.xz": "b1610f304a799fda1dc12e6611b333b4a767142f77689df1c3558aa47cb4f122",
+    "rustfmt-1.52.1-x86_64-pc-windows-msvc.tar.gz": "d5cf3e6be769dd266e66e0351062ff1317b537bf0f4e95def2a8f518f6e6571b",
+    "rustfmt-1.52.1-x86_64-pc-windows-msvc.tar.xz": "c52b78ae666456d035ece5666b8c3229a7a32e1eeee3126136641bc6d04e3b0a",
+    "rustfmt-1.52.1-x86_64-unknown-freebsd.tar.gz": "ecfebd807b2addc80d102f4909f42c71104039e1f7d9b7bd7e6ebdb5072d8d6f",
+    "rustfmt-1.52.1-x86_64-unknown-freebsd.tar.xz": "dc08c04bdd48a90add9a86ba3367d42c400c23a840b53acf0a61d23e5b2bdec0",
+    "rustfmt-1.52.1-x86_64-unknown-linux-gnu.tar.gz": "1717c5eeae799b0ceee7f8b7180543713d08ad72e03af77b05dd1e69e32b06bc",
+    "rustfmt-1.52.1-x86_64-unknown-linux-gnu.tar.xz": "8952de9ed72cd1ca65ecd37b457dfb9e9f83eab9b3e5c9fb18944a6206a0df73",
+    "rustfmt-1.52.1-x86_64-unknown-linux-musl.tar.gz": "5b19c462dc70b632e44189c1384aa753bdc20f9a9ad66d35dd34d321cfb19b1c",
+    "rustfmt-1.52.1-x86_64-unknown-linux-musl.tar.xz": "7bc29abbbac6532c00248f71ad0bb79df974790f4cd236e0724b2441eb53e952",
+    "rustfmt-1.53.0-aarch64-apple-darwin.tar.gz": "4a29c3663a2c0f5133ca21e1c12223e9ef4fa3f8b1f29b98709ad588aa52c140",
+    "rustfmt-1.53.0-aarch64-apple-darwin.tar.xz": "26fd463ed3ee4803359f1a7269396cf7df6f9ea6e483e9fcdcc7113624f5fa8f",
+    "rustfmt-1.53.0-aarch64-unknown-linux-gnu.tar.gz": "d5157ddaf978a3619292a5b133390eea3a049b7903eeef25ded9f24c995a7c58",
+    "rustfmt-1.53.0-aarch64-unknown-linux-gnu.tar.xz": "4c05130816b8b15c9eca1f8da4dd7f3b2eb324e57c54f9c035d75c797736e5a2",
+    "rustfmt-1.53.0-aarch64-unknown-linux-musl.tar.gz": "91006e773898a40af2f0e843e7f1111ce07320f1507e61d8c9a4ae216dfe245b",
+    "rustfmt-1.53.0-aarch64-unknown-linux-musl.tar.xz": "bc105c3bf8199ee64777849429e6bb50c539443692d9d460c0f9a8dcd5f0bd65",
+    "rustfmt-1.53.0-x86_64-apple-darwin.tar.gz": "b4db708e078615e1d21ad13acfc4b5943b3548d094d397c3b14e24dda3bd78ca",
+    "rustfmt-1.53.0-x86_64-apple-darwin.tar.xz": "3278a0aef19475719c8c2047143762bd0a6bb15bffd7e3c391e7a08de4b84a3a",
+    "rustfmt-1.53.0-x86_64-pc-windows-msvc.tar.gz": "adead783882f055129268f11d137857bdcac5eb1ccc20ea8ff8edbb67026f6ff",
+    "rustfmt-1.53.0-x86_64-pc-windows-msvc.tar.xz": "6f223d3470a5ea99b40137cd605df6a8549109d5b64746a51b9fe03c7166b4c5",
+    "rustfmt-1.53.0-x86_64-unknown-freebsd.tar.gz": "569c6185ad0868f855b1414a51f9e9eba52a0cbf270c0b674bcb4580eece668b",
+    "rustfmt-1.53.0-x86_64-unknown-freebsd.tar.xz": "72e2b8feee6c0eda43924660dea7927b00a9d8a9dd7f1565cdb9d2d68dcf9dbe",
+    "rustfmt-1.53.0-x86_64-unknown-linux-gnu.tar.gz": "e4e826c678f16c6a896e1226309c12c3677ff9c4bc8065ac6932fc616bb67572",
+    "rustfmt-1.53.0-x86_64-unknown-linux-gnu.tar.xz": "49c070d592740d3cd31ef3ed09b0006d5d65d2a00148766992230fcda1352f77",
+    "rustfmt-1.53.0-x86_64-unknown-linux-musl.tar.gz": "6d2778b35149971308717e6f10c29f189f46003a1bb9490d495906c0ae6aad45",
+    "rustfmt-1.53.0-x86_64-unknown-linux-musl.tar.xz": "39acc4d4777a00d1dd04fc82ecadd1953a98fa896aa976a3bd700a9922972180",
+    "rustfmt-1.54.0-aarch64-apple-darwin.tar.gz": "1823b397d89bc23b1a8ec4df113c5f765a0e91cae655dc59fbf13be4616c0f3f",
+    "rustfmt-1.54.0-aarch64-apple-darwin.tar.xz": "9101a9a148dc94857098d7b58904784cd4e8363f40291cc0326f7519855d7969",
+    "rustfmt-1.54.0-aarch64-unknown-linux-gnu.tar.gz": "82f45f13c8885663461f27ca7d590c341e41cdf2ea76f40d23b90d38d374cb46",
+    "rustfmt-1.54.0-aarch64-unknown-linux-gnu.tar.xz": "bfd1258b2f8c909c3fbdde2ca0d5884ff6e76fc3df66bc7f02e9e63cf8749821",
+    "rustfmt-1.54.0-aarch64-unknown-linux-musl.tar.gz": "fbdfde8d13d08718364a5dfd97f8b99898134a630a4ec13fe8405402688f746d",
+    "rustfmt-1.54.0-aarch64-unknown-linux-musl.tar.xz": "70bdd7f295a0a10bc45781f66560b098964018127f7a2dd3e4eb5006e02a6458",
+    "rustfmt-1.54.0-x86_64-apple-darwin.tar.gz": "e33122e00fa2ba319e229f3a92380e31b2b813398f3a681d0e1b2e6fbe3f135e",
+    "rustfmt-1.54.0-x86_64-apple-darwin.tar.xz": "b7a5a1c50b6ec0c1e7f45d8916d25f58424f5ef08578e09f4c700516be2baec9",
+    "rustfmt-1.54.0-x86_64-pc-windows-msvc.tar.gz": "608da9f9cc59d24c14897febeb0983d0ace04264d91e3ff9dd8b57bb546a2965",
+    "rustfmt-1.54.0-x86_64-pc-windows-msvc.tar.xz": "d0d9258288427aab9e8801cb429f142f6a4fc5896204e1a32cacca33be238516",
+    "rustfmt-1.54.0-x86_64-unknown-freebsd.tar.gz": "4b5098c749c547516ca2c81aabf87617d589ae674cdc48d7636b37cc5017d29b",
+    "rustfmt-1.54.0-x86_64-unknown-freebsd.tar.xz": "b5cd37fe1e008fd734834d32a468e8ae59e8859b17918e5deb19582cf6f0572f",
+    "rustfmt-1.54.0-x86_64-unknown-linux-gnu.tar.gz": "0205d6af87d381b93aa69bc75c0bd44ac5eb006832f0f505a851dc8d22aaf101",
+    "rustfmt-1.54.0-x86_64-unknown-linux-gnu.tar.xz": "dbd8bbb04748d71fc9d299f2f2ba0b05efdfb84ae421d7b9dd1d973abfc93b73",
+    "rustfmt-1.54.0-x86_64-unknown-linux-musl.tar.gz": "34a2321d2f7f57398b6f588f2e219639f0958d444ca283ff0c8d0144d8c09fc1",
+    "rustfmt-1.54.0-x86_64-unknown-linux-musl.tar.xz": "90f7c589a35d6c9ef64aed76c0ad32ec64481773fe1efd3da5bd72e2cfe8c287",
+    "rustfmt-1.55.0-aarch64-apple-darwin.tar.gz": "dad1bcea851e509f289178c7bbd8fca5152efd1876450e353cc77fe5fccd2f46",
+    "rustfmt-1.55.0-aarch64-apple-darwin.tar.xz": "7be531d22ffe63368058dc243f1d92cf1efd5c7f436b823c6a8bef7d61a53355",
+    "rustfmt-1.55.0-aarch64-unknown-linux-gnu.tar.gz": "a0a24a0e5618997218cced0632dfe776315225ee394e8412ef5dcf9e21325b9c",
+    "rustfmt-1.55.0-aarch64-unknown-linux-gnu.tar.xz": "14ad85e17e799e4353a1f3ee21336d8a20ab8fb297a08069f6ecb3a16051f5ae",
+    "rustfmt-1.55.0-aarch64-unknown-linux-musl.tar.gz": "736208df67d87b3ced05764d52de07470f44502c901c48ab6cc6dfe3cab6046f",
+    "rustfmt-1.55.0-aarch64-unknown-linux-musl.tar.xz": "242e5b185a0e3a2349f2cc1d69024d1afa8c1fecc0d5b4b64792384bdf1b0c6f",
+    "rustfmt-1.55.0-x86_64-apple-darwin.tar.gz": "b38a096a59ecc6309bcbea67ed4e50de6d48cdc124ff5b721bf7e929ef4c4fa7",
+    "rustfmt-1.55.0-x86_64-apple-darwin.tar.xz": "6507b8da1c76cc326c82080db8ccfca747ee5b173c2ba9dfefd9b8ff81cd6545",
+    "rustfmt-1.55.0-x86_64-pc-windows-msvc.tar.gz": "49f58043700b33578963faa22dcb993b5d604d7d8cc852ff53f11138f9a20f35",
+    "rustfmt-1.55.0-x86_64-pc-windows-msvc.tar.xz": "1ef0bc9436d37086a3f76ccc958292b8f6dd4ea6c068bfc40e103a3a2ce8e3cd",
+    "rustfmt-1.55.0-x86_64-unknown-freebsd.tar.gz": "5317af05afbcfde0fae7ba4ad5404901b0c611d826c7dd38926a8b08ade53c72",
+    "rustfmt-1.55.0-x86_64-unknown-freebsd.tar.xz": "0e053233b1d400639ae96efbd77f7e08558e4b40f0e679a04c92c8a58ea6d467",
+    "rustfmt-1.55.0-x86_64-unknown-linux-gnu.tar.gz": "ecb58add71d3f3cf8a213fe7b531bc230f8da5cecd835cee6429e76798b548cc",
+    "rustfmt-1.55.0-x86_64-unknown-linux-gnu.tar.xz": "165ee593b88b511b0b6b72dd35f9bb0b060d0f8aa4f4cfafa2f7936658c4021c",
+    "rustfmt-1.55.0-x86_64-unknown-linux-musl.tar.gz": "33bd862bbc9b54745c3e1d400440996fd0e6759c4d482f1a888ba8fafab29c3a",
+    "rustfmt-1.55.0-x86_64-unknown-linux-musl.tar.xz": "83e7afa47c0e0edae31f888c1a776957c7f6a6c47ec334d4ed93719c8c313a13",
+    "rustfmt-1.56.0-aarch64-apple-darwin.tar.gz": "0c1dcc80d2028748c38a4c3360048940a887ca899af577e9f3026c3d1a359469",
+    "rustfmt-1.56.0-aarch64-apple-darwin.tar.xz": "59b98eed11b97dcd4005cd10315a15d222e41b418775e5d19a42c589390e2d6c",
+    "rustfmt-1.56.0-aarch64-unknown-linux-gnu.tar.gz": "3dabc693866f74a956b99f8cac1f1beca6dbc38de6cc095ccdacbdccc18b4350",
+    "rustfmt-1.56.0-aarch64-unknown-linux-gnu.tar.xz": "37775efd58dbd0039164051b207fe98e3ea89bdd5bbd32126ee7247635f15e51",
+    "rustfmt-1.56.0-aarch64-unknown-linux-musl.tar.gz": "9d1b9405dc2cbeb7ff7f2ecb468a42d7a36429e642714de1605eb242947afc88",
+    "rustfmt-1.56.0-aarch64-unknown-linux-musl.tar.xz": "bcce6238e41ab8d503a5a3db7f02d30ab11f4c3d663809b2a6f4e2f760e17db3",
+    "rustfmt-1.56.0-x86_64-apple-darwin.tar.gz": "f8fc28492af2fece8915db0959bb5af354706d63556854f4c149e6dbc9f3c11b",
+    "rustfmt-1.56.0-x86_64-apple-darwin.tar.xz": "d26f83735f516d9cb157b6277ddfd9b8b4607838cc9e4a8a55c6e911a192e617",
+    "rustfmt-1.56.0-x86_64-pc-windows-msvc.tar.gz": "1080a5e5f3957eed2799ce65adf93b8bd8c0a9233c5149d8992c339fe7acab31",
+    "rustfmt-1.56.0-x86_64-pc-windows-msvc.tar.xz": "498ec539ef0a8dde2ec5ad1f4a0ee0e3e25d99f3d19773cad6fa0c1620bbd5d6",
+    "rustfmt-1.56.0-x86_64-unknown-freebsd.tar.gz": "a5e58bbf9407ac7da18df4d385f0988d299b1a71d18ce39fb7d1de15c007f5a6",
+    "rustfmt-1.56.0-x86_64-unknown-freebsd.tar.xz": "ae4967b8bace84a80bec93cd1c601b3eb75370c1e92f42e91e4d0b93f4d6ff24",
+    "rustfmt-1.56.0-x86_64-unknown-linux-gnu.tar.gz": "ce14465427e5919e407af9e58fea0a638aa02515f182a1a1c0b740cbd52a5e5a",
+    "rustfmt-1.56.0-x86_64-unknown-linux-gnu.tar.xz": "3478487fadfff567126889d754373a8c8646b0b683bfdc7e4318cdab0ff7b361",
+    "rustfmt-1.56.0-x86_64-unknown-linux-musl.tar.gz": "98dbc11edb80de0c1303823f890434406c36501d89ee45ba2137d4ef4220db8a",
+    "rustfmt-1.56.0-x86_64-unknown-linux-musl.tar.xz": "bea5ad9e1d607b9afd01777b2f7f1f5294d34d75ab629940da56d85f98334ff0",
+    "rustfmt-1.56.1-aarch64-apple-darwin.tar.gz": "25e64095594e6aa4c25b2dfb8830108ba32af2917c1b1a4a1a966114d85199d2",
+    "rustfmt-1.56.1-aarch64-apple-darwin.tar.xz": "610c0d0d07e5e7e9cd5e2844b396e7d3fa86b4becbb20cf6fcce33788e7872c5",
+    "rustfmt-1.56.1-aarch64-unknown-linux-gnu.tar.gz": "b6d1479d66c16eabcd708246521539a60eee31b1b3b492c20676ebbbcbca23fd",
+    "rustfmt-1.56.1-aarch64-unknown-linux-gnu.tar.xz": "db9b22028fd3244ac37bb585ad0a0b1f0c77fc9ff9a60fb7ce161db486c3c231",
+    "rustfmt-1.56.1-aarch64-unknown-linux-musl.tar.gz": "441f9df760f65a79ce15d79938cf984961cb712639d85e91765abadfc616002f",
+    "rustfmt-1.56.1-aarch64-unknown-linux-musl.tar.xz": "e508feb826b188eba7715e751bd94669f94d8e282a1dcbecc2aa337b8f096cc8",
+    "rustfmt-1.56.1-x86_64-apple-darwin.tar.gz": "fa4e086107b5219228cdd928fd4671f5ab7a1165c39ca79874fd99a0f865b12b",
+    "rustfmt-1.56.1-x86_64-apple-darwin.tar.xz": "8f7b96bf3f5f33b24ee922f28130ed36c70bb312650b35a978c4d3575790dd15",
+    "rustfmt-1.56.1-x86_64-pc-windows-msvc.tar.gz": "a18c253e6d29ea8575e9b25a1fe43c913082c0036e2532f372e376b8d0c0e15a",
+    "rustfmt-1.56.1-x86_64-pc-windows-msvc.tar.xz": "6518c61c7118336adb26710acb7ea135fafe8cec316ee43c8a2211ab17ceca98",
+    "rustfmt-1.56.1-x86_64-unknown-freebsd.tar.gz": "b3f184b3cbe2139407e977838e98a843d90409cdebe86d64338841fb919281c9",
+    "rustfmt-1.56.1-x86_64-unknown-freebsd.tar.xz": "fef2cb36fec20fc2653cfb5b27e799e13dcaaf6220dd2f4e80c573081851bd8f",
+    "rustfmt-1.56.1-x86_64-unknown-linux-gnu.tar.gz": "6dce6eced612048180892fa9016a06a901c9fc275da046d8e229986f4dd97115",
+    "rustfmt-1.56.1-x86_64-unknown-linux-gnu.tar.xz": "36ea7b6fb8ac93960090ae76997e8f5dae147bd65a5098d43fecd6810800c52a",
+    "rustfmt-1.56.1-x86_64-unknown-linux-musl.tar.gz": "0a307bd9a4b08a91f1fee0e90e412d92c9b55b75084c2e9b24ed99dd9469f4fb",
+    "rustfmt-1.56.1-x86_64-unknown-linux-musl.tar.xz": "a852ff829fd442dbb01fa2e2330f60e9d89121016e9d989641dc6315c717b0c3",
+    "rustfmt-1.57.0-aarch64-apple-darwin.tar.gz": "85fc5eedb0bb4d6ac599e567ae84debc05a3a5d2c162f73c59df5bf0d5d3fb19",
+    "rustfmt-1.57.0-aarch64-apple-darwin.tar.xz": "b8bf7dbc7f10592803f652ffc307aba2ed5df5afd5acb8fcb6aa557a552a885d",
+    "rustfmt-1.57.0-aarch64-unknown-linux-gnu.tar.gz": "f8f4c4c16a24aaf4e0b9752395bf8b20154832ef6d0b9e98687de44b699ff5ff",
+    "rustfmt-1.57.0-aarch64-unknown-linux-gnu.tar.xz": "bfe47d7651948438fec11bce0fb56bb4489d4c05b8652c2f3c5513a5aed47e02",
+    "rustfmt-1.57.0-aarch64-unknown-linux-musl.tar.gz": "093bda1fc0c087dffbdddafb9a2fe9f67e49cfc7794aaca22a92aab5d0f0c789",
+    "rustfmt-1.57.0-aarch64-unknown-linux-musl.tar.xz": "87eb4d53e8210308ad5e16033f374d76ec4242930b723ebcdbae86bbcc1825d0",
+    "rustfmt-1.57.0-x86_64-apple-darwin.tar.gz": "83a928a03d484121531852a591b76a13c631e275ef376d57b9b23cf6e855f6b1",
+    "rustfmt-1.57.0-x86_64-apple-darwin.tar.xz": "6cdd0023d068e5698ce18d02d9a60f4023c4d751480cda5e0e53f2a854e101e5",
+    "rustfmt-1.57.0-x86_64-pc-windows-msvc.tar.gz": "7c61a46df59d6c9386a5647df54a1a725d81dc924fb24fa7f7e1b51ad7ced047",
+    "rustfmt-1.57.0-x86_64-pc-windows-msvc.tar.xz": "ab7667e3c48e5fc8b55ac514acace55b1614dca6aa7d5fb06c7ee465624fdb7b",
+    "rustfmt-1.57.0-x86_64-unknown-freebsd.tar.gz": "0d0bd640445e1e45a93ca0d0f5b0f03c464f6a91c9b5353c3ac136ba366bbf36",
+    "rustfmt-1.57.0-x86_64-unknown-freebsd.tar.xz": "190f07a85428dbb00c2a4a8734ac3175e430e87103cb058c1196c09acda640a9",
+    "rustfmt-1.57.0-x86_64-unknown-linux-gnu.tar.gz": "48b09dbf1c7fc16e31123e8c83eede18c3577811762f574a5b24a2f759a172bb",
+    "rustfmt-1.57.0-x86_64-unknown-linux-gnu.tar.xz": "0e8192ad1fd00725991f243f43e08a451d74132c3a2fc6c4d0edca73a6aeefe6",
+    "rustfmt-1.57.0-x86_64-unknown-linux-musl.tar.gz": "6ed302cafc1363c8ba0bb789467a80be8558b3ed712331a0da2477f8d53f0794",
+    "rustfmt-1.57.0-x86_64-unknown-linux-musl.tar.xz": "164c6d41322df9c6c03ed37d65b920e9d643d74a05ead5e3e47462966f215122",
+    "rustfmt-1.58.0-aarch64-apple-darwin.tar.gz": "79f391f725e598163407df09570c3c2bfffc89250a08b3143c7f72db8ec0c632",
+    "rustfmt-1.58.0-aarch64-apple-darwin.tar.xz": "b48a43d57e2c403b7117b33b9e19222dc10df7034ec108925a92ce669a41f184",
+    "rustfmt-1.58.0-aarch64-unknown-linux-gnu.tar.gz": "ddb03ea92c4274b2eccb43d0f25bb6ccd8beab53123715c3c51de7220b60b21e",
+    "rustfmt-1.58.0-aarch64-unknown-linux-gnu.tar.xz": "2bd0d068e8bcaa79639e351b98aa5c28dc15631db78ac3fec14e2f18418a27a6",
+    "rustfmt-1.58.0-aarch64-unknown-linux-musl.tar.gz": "8749c82a655e2f99bfc7b8c3d1f12c384edb8cee7b26078a7ddf87da57a31429",
+    "rustfmt-1.58.0-aarch64-unknown-linux-musl.tar.xz": "e7e965ea5da8445d95ada6aa1f5c3324e45c788e93b6f50247575f13c1fd3047",
+    "rustfmt-1.58.0-x86_64-apple-darwin.tar.gz": "83fb3514eec03049daadb2623f27b92d029b292c0ed6102c06f1a4a39f81b1f8",
+    "rustfmt-1.58.0-x86_64-apple-darwin.tar.xz": "8c997a4484686efac3e639f4180372b116b24f242c60f9fe042de1976e4d6d99",
+    "rustfmt-1.58.0-x86_64-pc-windows-msvc.tar.gz": "661a53930cfd8b74f9a66df0871a0bd8534829d845d5253292f7f223d17f0aa8",
+    "rustfmt-1.58.0-x86_64-pc-windows-msvc.tar.xz": "cad374805d04deac0a3ce47d33af29ff59419528258698fbcf660d6e1ffb82f0",
+    "rustfmt-1.58.0-x86_64-unknown-freebsd.tar.gz": "a91b4561ca1cb756da40e17a2d270c464bb177289c2cc8352e2b5fcd26c0c63a",
+    "rustfmt-1.58.0-x86_64-unknown-freebsd.tar.xz": "39a93179b53bd8d128f8bb2f5174090924ce611b348b74564fe5c188a1ac8fd1",
+    "rustfmt-1.58.0-x86_64-unknown-linux-gnu.tar.gz": "4c4f0972406bf4a0a83be4cf2ee0a3556db1aa6aefedab4851ed19a3dd2e88bc",
+    "rustfmt-1.58.0-x86_64-unknown-linux-gnu.tar.xz": "2c33675a7ac25c8512fb8bfe8333c6fdfdee4c55662f16c80910390dc433f97d",
+    "rustfmt-1.58.0-x86_64-unknown-linux-musl.tar.gz": "7075b11ab68bbdebce0884e42432d7599680fe023ea2ab4e81c2629d25fd32e7",
+    "rustfmt-1.58.0-x86_64-unknown-linux-musl.tar.xz": "d51b55ff4544655ea110da8d510b5f554830d3fbeaf8ae9908b1a34d65f60a84",
+    "rustfmt-1.58.1-aarch64-apple-darwin.tar.gz": "ede8f0bb46047e3e106b20bdd4e181fc81f810eed26d5f1816b0b0b4a9a5458a",
+    "rustfmt-1.58.1-aarch64-apple-darwin.tar.xz": "1b71c31ce87c3aba90ec140027264641cb4e213aaec24aa89eb7a90de22f1c46",
+    "rustfmt-1.58.1-aarch64-unknown-linux-gnu.tar.gz": "71dec8f396d87ec57e353000331e62c7ab0e431e26c42644d43d78fd8d6df3f5",
+    "rustfmt-1.58.1-aarch64-unknown-linux-gnu.tar.xz": "91ce4fe97d80bd5247a4f49bf7aedc052fb19e9f4b0a1f9f912e09c2cb23058f",
+    "rustfmt-1.58.1-aarch64-unknown-linux-musl.tar.gz": "f605d5cf81369a51cacb6ce17d57dd553096b6843c249c37f996d0c768476429",
+    "rustfmt-1.58.1-aarch64-unknown-linux-musl.tar.xz": "a4d63477fc9ef3447816bf4482b4fbc8a917456a29f9ad533b77df157b2876c3",
+    "rustfmt-1.58.1-x86_64-apple-darwin.tar.gz": "6ec7ef5c492531714f42936f7e03ffa9b428953692c64575b45da1dfaa3905b4",
+    "rustfmt-1.58.1-x86_64-apple-darwin.tar.xz": "b6fec2a4298150ac5ae3428af0819b31ffdf75f05f0b0e52b4a80f3d5d8f4add",
+    "rustfmt-1.58.1-x86_64-pc-windows-msvc.tar.gz": "c2d30d3791e612f2f2a6e9eef52707ce79e7bf2ff5c6150bdf91039686988eda",
+    "rustfmt-1.58.1-x86_64-pc-windows-msvc.tar.xz": "7de88861cbe6563ed276d7725d698bbe78f3d887dc16034a45e987b734690a14",
+    "rustfmt-1.58.1-x86_64-unknown-freebsd.tar.gz": "d2a32f7479dcb5bb71ec8151912cfa315bfaeb7c3b45ad10afcb6bb7b9652d75",
+    "rustfmt-1.58.1-x86_64-unknown-freebsd.tar.xz": "a67b7d53a0a9d901f143fce8c1b040bdb26580001d2a55467c9f7052d86b7aaa",
+    "rustfmt-1.58.1-x86_64-unknown-linux-gnu.tar.gz": "09328241bd46a21793a5a76ba6a1a5b862c6bfa29afdabdc9c889b08c81ee8ba",
+    "rustfmt-1.58.1-x86_64-unknown-linux-gnu.tar.xz": "63bb44c5b8637069944db613dd5d008ecdc60546896e9d56119df005c2e85fb3",
+    "rustfmt-1.58.1-x86_64-unknown-linux-musl.tar.gz": "8189d38bdd1225241ecbd75b0869c1945450a5c28b675713892ae32cf0b77750",
+    "rustfmt-1.58.1-x86_64-unknown-linux-musl.tar.xz": "86198698fff6b0f1c4bdc249af0d77ca650301ae3cc07a18daab41519eb8ef0b",
+    "rustfmt-1.59.0-aarch64-apple-darwin.tar.gz": "70a677515845f9b22b464d022958a2d0ba7c927a4979f3631b1f851ea2e9b2a8",
+    "rustfmt-1.59.0-aarch64-apple-darwin.tar.xz": "450ecea7d3848b61cdead69262cba3c7bbe6f9644ea84453729a0463dea7bc47",
+    "rustfmt-1.59.0-aarch64-unknown-linux-gnu.tar.gz": "e79b98a6bb51ed225436375fd095610b88093f287404836949d394a5d315e834",
+    "rustfmt-1.59.0-aarch64-unknown-linux-gnu.tar.xz": "4d1ffb1fb0b6009b5fb39001a19115fda4e9142fe91af5ccf0d96235f071e528",
+    "rustfmt-1.59.0-aarch64-unknown-linux-musl.tar.gz": "dc977d6459b1d4d9e761dc20a60f1f734e6081b1b17670eb4bbe9d2fc292b9de",
+    "rustfmt-1.59.0-aarch64-unknown-linux-musl.tar.xz": "b569e2473046425f9f73fb6396e72e8e47caf36578fcb99594029765a0d6253e",
+    "rustfmt-1.59.0-x86_64-apple-darwin.tar.gz": "52d5579999e146e999426d57be78a8b26ace6ab7810aefb968f69e6b2c9ecf53",
+    "rustfmt-1.59.0-x86_64-apple-darwin.tar.xz": "8d0c1f9de1de65d56964577fe05a423e4a09f187484770d5852d4f7429b40b3d",
+    "rustfmt-1.59.0-x86_64-pc-windows-msvc.tar.gz": "cd923eae91c5652fa983abbc07ceb67d6f5b8f98664f86cfc1bff7ec1374e0c1",
+    "rustfmt-1.59.0-x86_64-pc-windows-msvc.tar.xz": "3dc42011e0420d9d79dab9a00e973a4b5cd59fbd2e300e55442901a0949b25e5",
+    "rustfmt-1.59.0-x86_64-unknown-freebsd.tar.gz": "026abe662bf0ca734796e93224bed7ad9015a3e2613ca7db59c9b89e3d6088bb",
+    "rustfmt-1.59.0-x86_64-unknown-freebsd.tar.xz": "ee6069af61c04b0da975bcb52f3f795a02f65b1bb43c191864ab971635421846",
+    "rustfmt-1.59.0-x86_64-unknown-linux-gnu.tar.gz": "2932efec54b152e094e557c351aa5844b87e61bbcb4d4b7bf0a2dd7ad457df39",
+    "rustfmt-1.59.0-x86_64-unknown-linux-gnu.tar.xz": "9933a856b8241b28740b936320107e1f3e6039fd77825db8c33d9de1110c88cc",
+    "rustfmt-1.59.0-x86_64-unknown-linux-musl.tar.gz": "868aebea8792baa964b5300e6c34b5006660abd4d7aeb93f2d7104de1cfad134",
+    "rustfmt-1.59.0-x86_64-unknown-linux-musl.tar.xz": "d4d0fe0a49fb515388b65a49b816833dec22ef2bd59e6dbe372f50c702f0913a",
+    "rustfmt-1.60.0-aarch64-apple-darwin.tar.gz": "65ed07cf59ffc4500c17adad97c0dfd7dfce2a0867edc4b47646fd148fd3a447",
+    "rustfmt-1.60.0-aarch64-apple-darwin.tar.xz": "8f205c068320b33678c622371b3ddf75ed88dd68fd6cb570eb688ee8912267cd",
+    "rustfmt-1.60.0-aarch64-unknown-linux-gnu.tar.gz": "d66a0e3edd2c38ed8074c1469bdf14c16bbc65d65ea935de1786d2cb10718f59",
+    "rustfmt-1.60.0-aarch64-unknown-linux-gnu.tar.xz": "2da687089157840f53b088d533c187ee4c8c8d760f43df296d9187ce8042d1d6",
+    "rustfmt-1.60.0-aarch64-unknown-linux-musl.tar.gz": "be78a7c815aec2cb7e94958e3c572212716c286a644f073732b3486892f8a836",
+    "rustfmt-1.60.0-aarch64-unknown-linux-musl.tar.xz": "ac082de0e3ccd45c0c38ccf18981423f88885b592731c423c3992bd7f446bed8",
+    "rustfmt-1.60.0-x86_64-apple-darwin.tar.gz": "b18c6d1d58fbe310c1d98174ecedb5c853cc553263fa1063a83d6d581fdbb62a",
+    "rustfmt-1.60.0-x86_64-apple-darwin.tar.xz": "2f9c590cbd3eb79c774539773a67e7e0a430ca54ced147dcb5c703fdc018b2c3",
+    "rustfmt-1.60.0-x86_64-pc-windows-msvc.tar.gz": "68d112cde3e81bbb0781cba074610a745713abd887c4307b5c2a32b3c19e2bab",
+    "rustfmt-1.60.0-x86_64-pc-windows-msvc.tar.xz": "c47d9cd5a37f775d88fccf44197fbab1712c5f4b588721aae788cb659f0ddc2b",
+    "rustfmt-1.60.0-x86_64-unknown-freebsd.tar.gz": "93f3c028222400150dc85bf0384610e25db28c0d37c83d06bd2b8054ecbef9ab",
+    "rustfmt-1.60.0-x86_64-unknown-freebsd.tar.xz": "895ae9b97e335c2641ab2ca4d88ec17100e233434c6c3bdfa037ebafc362a998",
+    "rustfmt-1.60.0-x86_64-unknown-linux-gnu.tar.gz": "b7274665681979076beec5ffc7ecc6e40bb93250b7f861c51a83098400cab71c",
+    "rustfmt-1.60.0-x86_64-unknown-linux-gnu.tar.xz": "d061216684482963521b1559c8043fab5d73096057f315a5beb0cda05992afea",
+    "rustfmt-1.60.0-x86_64-unknown-linux-musl.tar.gz": "95df41bb7a5d94b09e0a635dee56377cfb5b5e85129d066a81be8df7b1fba2da",
+    "rustfmt-1.60.0-x86_64-unknown-linux-musl.tar.xz": "6f0fb15475d5194b54d52443985c2a2fd04d91d3a90f7108ede0fb1d10b7e76e",
+    "rustfmt-1.61.0-aarch64-apple-darwin.tar.gz": "5ebd73eaeacba857ebf116f98efb54c81c8d96a3992e57c56aa4e5273bab3338",
+    "rustfmt-1.61.0-aarch64-apple-darwin.tar.xz": "d5820065554ddca2e7699a8ded224c14b522748d18efd1347767caeb48bc1714",
+    "rustfmt-1.61.0-aarch64-unknown-linux-gnu.tar.gz": "0f9ece2e261a5579c5fb601446520fea31d7502b9a0df589cb69173f0fab487a",
+    "rustfmt-1.61.0-aarch64-unknown-linux-gnu.tar.xz": "b8e77edf664ea129e305acc6269bb1cec96cc65eaead7f8de591086ff2205dc2",
+    "rustfmt-1.61.0-aarch64-unknown-linux-musl.tar.gz": "48a0cfa5b37deb62a118cc0a7daf95d245bb3bfb71588974c6d70ab53a9b510a",
+    "rustfmt-1.61.0-aarch64-unknown-linux-musl.tar.xz": "bbec49e8a64e226964057a6661037cb3e4e009e0f6454e3b73ca2ac2c79db33a",
+    "rustfmt-1.61.0-x86_64-apple-darwin.tar.gz": "52015dbd70ee8257b2036e98f6b9640f804f76661816c6cf4c46f4176c5f2c89",
+    "rustfmt-1.61.0-x86_64-apple-darwin.tar.xz": "2dd619b8a7487407092ddb23702931dbb0ed3bdd6c29d90461b3d3e69407f763",
+    "rustfmt-1.61.0-x86_64-pc-windows-msvc.tar.gz": "5285a47b2d303ca66ec6cc36bdadf7f0b0ffa1427be3b21fd9f8322f0105a235",
+    "rustfmt-1.61.0-x86_64-pc-windows-msvc.tar.xz": "f07e78af5bba00f8254952b04b1a366bc16c3e4ae4785b2f270c14002584c46f",
+    "rustfmt-1.61.0-x86_64-unknown-freebsd.tar.gz": "6bf532ffda0e4dc749229dd29648a061471a6284b003112f911f015d70898bd2",
+    "rustfmt-1.61.0-x86_64-unknown-freebsd.tar.xz": "9aa07794734e4d7e8e57798178d309bac30a421d2e6f2223eb0bde721e440dec",
+    "rustfmt-1.61.0-x86_64-unknown-linux-gnu.tar.gz": "36efcc9794e2aa5a8b0069b192fddc041d12cf8175519e3853ea724bdf5ce0af",
+    "rustfmt-1.61.0-x86_64-unknown-linux-gnu.tar.xz": "9b7efd72655f23261b4b784f31eb1174d288b7a71a5f28ed7ffe26608125f06b",
+    "rustfmt-1.61.0-x86_64-unknown-linux-musl.tar.gz": "9621d6b3999f5a8661ccac1ef7ece034022fc514f59785faf9552cc43545d1d5",
+    "rustfmt-1.61.0-x86_64-unknown-linux-musl.tar.xz": "7ffb1b8a561d32cdd19811cd807cfd379bea4a65f815b0e5b9ebbb049ad50185",
+    "rustfmt-1.62.0-aarch64-apple-darwin.tar.gz": "21b3ec04a0708fb76846a563b4e5070dd1e01941b4148250ff2840698abedd3e",
+    "rustfmt-1.62.0-aarch64-apple-darwin.tar.xz": "8fae81004f32f08c4fb3f502ef9b31bbd7b98bee8c9d07963f8dea24fde5c129",
+    "rustfmt-1.62.0-aarch64-unknown-linux-gnu.tar.gz": "ec8346c711e33cc3e41cdfed210acc441104ce1699bb8bdb307fe6581419dfda",
+    "rustfmt-1.62.0-aarch64-unknown-linux-gnu.tar.xz": "0eb9eb9c002bf394600dcef1fb7782685597a298f4d017f13a3c1524ef53ef78",
+    "rustfmt-1.62.0-aarch64-unknown-linux-musl.tar.gz": "f9dac60e0243c9c5fc4216463981cd089827c65695089026148d8332c5011668",
+    "rustfmt-1.62.0-aarch64-unknown-linux-musl.tar.xz": "6f7b3f4a913628feece60b3e19dc8ccd6c5e66a9ac4809609400fbc38c4c07ea",
+    "rustfmt-1.62.0-x86_64-apple-darwin.tar.gz": "1c2fc7d78bfa78f784c86d32645f1f2db14cc2e272b6ae49bf687b4c5266865e",
+    "rustfmt-1.62.0-x86_64-apple-darwin.tar.xz": "7d05c7f77807fc082b6bcfae8727aa92c84a90b6a91c16965e2f04612651342b",
+    "rustfmt-1.62.0-x86_64-pc-windows-msvc.tar.gz": "8d99bd0f349bd050ae505f2e4064eafbbbfd03a18f34bade60a2d4e1ad78d8ed",
+    "rustfmt-1.62.0-x86_64-pc-windows-msvc.tar.xz": "2c08b36be1bf744f926c214a0c4912454bc3de97950d21b3a312656a26a58bf1",
+    "rustfmt-1.62.0-x86_64-unknown-freebsd.tar.gz": "8bf773b74705c2fd6b0ddaaf28c865bfb2a513a45f5f1785ef0d1dcc050968d1",
+    "rustfmt-1.62.0-x86_64-unknown-freebsd.tar.xz": "5be4591a37658e5b5df17462c38620d4545470e3549b111207994cfd103a5812",
+    "rustfmt-1.62.0-x86_64-unknown-linux-gnu.tar.gz": "cd345cece3637a16c7a1b3655851c4a20e7a414796f71c5f32381a0632045e58",
+    "rustfmt-1.62.0-x86_64-unknown-linux-gnu.tar.xz": "9965c766b9fdfe9e1ccdf5e20a858431af3c44fba267f9e6c989c6a8f1e838dc",
+    "rustfmt-1.62.0-x86_64-unknown-linux-musl.tar.gz": "ca4c279976ee947a3291be4fe889fc8d152ce29386443a22e8ae6892dd75402c",
+    "rustfmt-1.62.0-x86_64-unknown-linux-musl.tar.xz": "3a8feb1d61d0fa3df2cae89e2a6fdefcb058b63729965372c1f729aed88e42de",
+    "rustfmt-1.62.1-aarch64-apple-darwin.tar.gz": "dd6918faec4bf0cd1ffc9de875f21f618ee27cf2dd3cc5091deaf1015cc43581",
+    "rustfmt-1.62.1-aarch64-apple-darwin.tar.xz": "98b5e97d87c06b3472346f8cf4ca7f9be2d0030a4e9ec008228f22b6cdd96a23",
+    "rustfmt-1.62.1-aarch64-unknown-linux-gnu.tar.gz": "6bcbd041ad22f175acb9e4c6742d388af70b49f95340dd904239f10ff334bb75",
+    "rustfmt-1.62.1-aarch64-unknown-linux-gnu.tar.xz": "7461f2409e7359ae053d0056fb7fd665e3141e4ba0692669dfdeb598286fc58c",
+    "rustfmt-1.62.1-aarch64-unknown-linux-musl.tar.gz": "0a9aed3505fbebeded519aee67bb146196f015c33ebb43457257195a0d6baa4b",
+    "rustfmt-1.62.1-aarch64-unknown-linux-musl.tar.xz": "28a9e92ed3838088ca2e65c0287174eb812d60eb80774cc8f0cb579dacf9858f",
+    "rustfmt-1.62.1-x86_64-apple-darwin.tar.gz": "f0aedaa8908e52d55ba6e2192b83d3ba9e97fdf7f2f019ac6d7cf1f99563cc44",
+    "rustfmt-1.62.1-x86_64-apple-darwin.tar.xz": "e863609d722e3abd72770e3adbfdf3ea4611b29a02dbd6d842bf9676dfb69f3b",
+    "rustfmt-1.62.1-x86_64-pc-windows-msvc.tar.gz": "c1a2c19f9d612a60fca67b698f2a34534cd228d6858a473b73b855037bcf8d94",
+    "rustfmt-1.62.1-x86_64-pc-windows-msvc.tar.xz": "0ee7dee204843bf6539c8333a60205222eaf92af52d7b9515c4333be17ecec3f",
+    "rustfmt-1.62.1-x86_64-unknown-freebsd.tar.gz": "c25671f7e3f6cac76fd2c33a7f42f1dcf03328c38be097005b00d0fc175fd8d8",
+    "rustfmt-1.62.1-x86_64-unknown-freebsd.tar.xz": "42c41f892970344be643817daff74ccca234021d2cfeb2d2c0142d8031cbe3a6",
+    "rustfmt-1.62.1-x86_64-unknown-linux-gnu.tar.gz": "8edcbd6e7af5fc6bb78a9e4446bc04914d777ecf94d171a26383058140f729ca",
+    "rustfmt-1.62.1-x86_64-unknown-linux-gnu.tar.xz": "572c0176b1333f06995f52ec85a3a4afd742fe2cff92d8aa7a4a168b64f4a773",
+    "rustfmt-1.62.1-x86_64-unknown-linux-musl.tar.gz": "b4d0187b841b8fdb68f05d36d1febf5150abf00dff887042012bafc3f05020b1",
+    "rustfmt-1.62.1-x86_64-unknown-linux-musl.tar.xz": "7e73643b6a376d3bb82671a6204df5c47bc191e317e7a697cbe09c113cf053a4",
 }
diff --git a/third_party/rules_rust/rust/platform/BUILD.bazel b/third_party/rules_rust/rust/platform/BUILD.bazel
index 459b9fb..56ed346 100644
--- a/third_party/rules_rust/rust/platform/BUILD.bazel
+++ b/third_party/rules_rust/rust/platform/BUILD.bazel
@@ -17,10 +17,3 @@
     srcs = glob(["**/*.bzl"]),
     visibility = ["//rust:__subpackages__"],
 )
-
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//platform:bzl_lib` target instead",
-    visibility = ["//rust:__subpackages__"],
-)
diff --git a/third_party/rules_rust/rust/platform/platform.bzl b/third_party/rules_rust/rust/platform/platform.bzl
index de02a89..98e295a 100644
--- a/third_party/rules_rust/rust/platform/platform.bzl
+++ b/third_party/rules_rust/rust/platform/platform.bzl
@@ -17,6 +17,7 @@
     "powerpc",
     "s390x",
     "x86_64",
+    "riscv32",
 ]
 
 _SUPPORTED_SYSTEMS = [
diff --git a/third_party/rules_rust/rust/platform/triple.bzl b/third_party/rules_rust/rust/platform/triple.bzl
index 13a59a4..2c42704 100644
--- a/third_party/rules_rust/rust/platform/triple.bzl
+++ b/third_party/rules_rust/rust/platform/triple.bzl
@@ -1,6 +1,7 @@
 """Triples are a way to define information about a platform/system. This module provides
 a way to convert a triple string into a well structured object to avoid constant string
-parsing in starlark code.
+parsing in starlark code, and a way for a repository_rule to extract the target triple
+of the host platform.
 
 Triples can be described at the following link: 
 https://clang.llvm.org/docs/CrossCompilation.html#target-triple
@@ -18,7 +19,7 @@
             - vendor (str): The vendor of the system
             - system (str): The name of the system
             - abi (str, optional): The abi to use or None if abi does not apply.
-            - triple (str): The original triple
+            - str (str): Original string representation of the triple
     """
     if triple == "wasm32-wasi":
         return struct(
@@ -26,7 +27,7 @@
             system = "wasi",
             vendor = "wasi",
             abi = None,
-            triple = triple,
+            str = triple,
         )
 
     component_parts = triple.split("-")
@@ -50,5 +51,125 @@
         vendor = vendor,
         system = system,
         abi = abi,
-        triple = triple,
+        str = triple,
     )
+
+_CPU_ARCH_ERROR_MSG = """\
+Command failed with exit code '{code}': {args}
+----------stdout:
+{stdout}
+----------stderr:
+{stderr}
+"""
+
+def _query_cpu_architecture(repository_ctx, expected_archs, is_windows = False):
+    """Detect the host CPU architecture
+
+    Args:
+        repository_ctx (repository_ctx): The repository_rule's context object
+        expected_archs (list): A list of expected architecture strings
+        is_windows (bool, optional): If true, the cpu lookup will use the windows method (`wmic` vs `uname`)
+
+    Returns:
+        str: The host's CPU architecture
+    """
+    if is_windows:
+        arguments = ["wmic", "os", "get", "osarchitecture"]
+    else:
+        arguments = ["uname", "-m"]
+
+    result = repository_ctx.execute(arguments)
+
+    if result.return_code:
+        fail(_CPU_ARCH_ERROR_MSG.format(
+            code = result.return_code,
+            args = arguments,
+            stdout = result.stdout,
+            stderr = result.stderr,
+        ))
+
+    if is_windows:
+        # Example output:
+        # OSArchitecture
+        # 64-bit
+        lines = result.stdout.split("\n")
+        arch = lines[1].strip()
+
+        # Translate 64-bit to a compatible rust platform
+        # https://doc.rust-lang.org/nightly/rustc/platform-support.html
+        if arch == "64-bit":
+            arch = "x86_64"
+    else:
+        arch = result.stdout.strip("\n")
+
+        # Correct the arm architecture for macos
+        if "mac" in repository_ctx.os.name and arch == "arm64":
+            arch = "aarch64"
+
+    if not arch in expected_archs:
+        fail("{} is not a expected cpu architecture {}\n{}".format(
+            arch,
+            expected_archs,
+            result.stdout,
+        ))
+
+    return arch
+
+def get_host_triple(repository_ctx, abi = None):
+    """Query host information for the appropriate triple to use with load_arbitrary_tool or the crate_universe resolver
+
+    Example:
+
+    ```python
+    load("@rules_rust//rust:repositories.bzl", "load_arbitrary_tool")
+    load("@rules_rust//rust/platform:triple.bzl", "get_host_triple")
+
+    def _impl(repository_ctx):
+        host_triple = get_host_triple(repository_ctx)
+
+        load_arbitrary_tool(
+            ctx = repository_ctx,
+            tool_name = "cargo",
+            tool_subdirectories = ["cargo"],
+            target_triple = host_triple.str,
+        )
+
+    example = repository_rule(implementation = _impl)
+    ```
+
+    Args:
+        repository_ctx (repository_ctx): The repository_rule's context object
+        abi (str): Since there's no consistent way to check for ABI, this info
+            may be explicitly provided
+
+    Returns:
+        struct: A triple struct; see the `triple` function in this module
+    """
+
+    # Detect the host's cpu architecture
+
+    supported_architectures = {
+        "linux": ["aarch64", "x86_64"],
+        "macos": ["aarch64", "x86_64"],
+        "windows": ["x86_64"],
+    }
+
+    if "linux" in repository_ctx.os.name:
+        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["linux"])
+        return triple("{}-unknown-linux-{}".format(
+            cpu,
+            abi or "gnu",
+        ))
+
+    if "mac" in repository_ctx.os.name:
+        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["macos"])
+        return triple("{}-apple-darwin".format(cpu))
+
+    if "win" in repository_ctx.os.name:
+        cpu = _query_cpu_architecture(repository_ctx, supported_architectures["windows"], True)
+        return triple("{}-pc-windows-{}".format(
+            cpu,
+            abi or "msvc",
+        ))
+
+    fail("Unhandled host os: {}", repository_ctx.os.name)
diff --git a/third_party/rules_rust/rust/platform/triple_mappings.bzl b/third_party/rules_rust/rust/platform/triple_mappings.bzl
index 644f973..4cd00b4 100644
--- a/third_party/rules_rust/rust/platform/triple_mappings.bzl
+++ b/third_party/rules_rust/rust/platform/triple_mappings.bzl
@@ -22,12 +22,14 @@
 SUPPORTED_T2_PLATFORM_TRIPLES = [
     "aarch64-apple-darwin",
     "aarch64-apple-ios",
+    "aarch64-apple-ios-sim",
     "aarch64-linux-android",
     "aarch64-unknown-linux-gnu",
     "arm-unknown-linux-gnueabi",
     "armv7-unknown-linux-gnueabi",
     "arm-unknown-linux-gnueabihf",
     "armv7-unknown-linux-gnueabihf",
+    "armv7-linux-androideabi",
     "i686-linux-android",
     "i686-unknown-freebsd",
     "powerpc-unknown-linux-gnu",
@@ -37,6 +39,7 @@
     "x86_64-apple-ios",
     "x86_64-linux-android",
     "x86_64-unknown-freebsd",
+    "riscv32imc-unknown-none-elf",
 ]
 
 SUPPORTED_PLATFORM_TRIPLES = SUPPORTED_T1_PLATFORM_TRIPLES + SUPPORTED_T2_PLATFORM_TRIPLES
@@ -57,6 +60,8 @@
     "powerpc": "ppc",
     "powerpc64": None,
     "powerpc64le": None,
+    "riscv32": "riscv32",
+    "riscv32imc": "riscv32",
     "s390": None,
     "s390x": "s390x",
     "thumbv7m": "armv7",
@@ -77,6 +82,7 @@
     "linux": "linux",
     "nacl": None,
     "netbsd": None,
+    "none": "none",
     "openbsd": "openbsd",
     "solaris": None,
     "unknown": None,
@@ -92,6 +98,7 @@
     "freebsd": "",
     "ios": "",
     "linux": "",
+    "none": "",
     # This is currently a hack allowing us to have the proper
     # generated extension for the wasm target, similarly to the
     # windows target
@@ -108,6 +115,7 @@
     "freebsd": ".a",
     "ios": ".a",
     "linux": ".a",
+    "none": ".a",
     "unknown": "",
     "wasi": "",
     "windows": ".lib",
@@ -121,6 +129,7 @@
     "freebsd": ".so",
     "ios": ".dylib",
     "linux": ".so",
+    "none": ".so",
     "unknown": ".wasm",
     "wasi": ".wasm",
     "windows": ".dll",
@@ -155,17 +164,18 @@
     "freebsd": ["-lexecinfo", "-lpthread"],
     "fuchsia": ["-lzircon", "-lfdio"],
     "illumos": ["-lsocket", "-lposix4", "-lpthread", "-lresolv", "-lnsl", "-lumem"],
-    "ios": ["-lSystem", "-lobjc", "-framework Security", "-framework Foundation", "-lresolv"],
+    "ios": ["-lSystem", "-lobjc", "-Wl,-framework,Security", "-Wl,-framework,Foundation", "-lresolv"],
     # TODO: This ignores musl. Longer term what does Bazel think about musl?
     "linux": ["-ldl", "-lpthread"],
     "nacl": [],
     "netbsd": ["-lpthread", "-lrt"],
+    "none": [],
     "openbsd": ["-lpthread"],
     "solaris": ["-lsocket", "-lposix4", "-lpthread", "-lresolv"],
     "unknown": [],
     "uwp": ["ws2_32.lib"],
     "wasi": [],
-    "windows": ["advapi32.lib", "ws2_32.lib", "userenv.lib"],
+    "windows": ["advapi32.lib", "ws2_32.lib", "userenv.lib", "Bcrypt.lib"],
 }
 
 def cpu_arch_to_constraints(cpu_arch):
@@ -191,13 +201,29 @@
 
     return ["@platforms//os:{}".format(sys_suffix)]
 
-def abi_to_constraints(abi):
-    # iOS simulator
-    if abi == "sim":
+def abi_to_constraints(_abi):
+    # TODO(acmcarther): Implement when C++ toolchain is more mature and we
+    # figure out how they're doing this
+    return []
+
+def extra_ios_constraints(triple):
+    """Add constraints specific to iOS targets.
+
+    Args:
+        triple: The full triple struct for the target
+
+    Returns:
+        A list of constraints to add to the target
+    """
+
+    # TODO: Simplify if https://github.com/bazelbuild/bazel/issues/11454 is fixed
+    if triple.system != "ios":
+        return []
+    if triple.abi == "sim":
         return ["@build_bazel_apple_support//constraints:simulator"]
+    elif triple.arch == "aarch64":  # Only add device for archs that have both
+        return ["@build_bazel_apple_support//constraints:device"]
     else:
-        # TODO(acmcarther): Implement when C++ toolchain is more mature and we
-        # figure out how they're doing this
         return []
 
 def triple_to_system(target_triple):
@@ -278,5 +304,6 @@
     constraint_set += vendor_to_constraints(triple_struct.vendor)
     constraint_set += system_to_constraints(triple_struct.system)
     constraint_set += abi_to_constraints(triple_struct.abi)
+    constraint_set += extra_ios_constraints(triple_struct)
 
     return constraint_set
diff --git a/third_party/rules_rust/rust/private/BUILD.bazel b/third_party/rules_rust/rust/private/BUILD.bazel
index 929a39e..d175b28 100644
--- a/third_party/rules_rust/rust/private/BUILD.bazel
+++ b/third_party/rules_rust/rust/private/BUILD.bazel
@@ -1,5 +1,6 @@
 load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
 load("//rust/private:rust_analyzer.bzl", "rust_analyzer_detect_sysroot")
+load("//rust/private:rustfmt.bzl", "rustfmt_workspace_name")
 load("//rust/private:stamp.bzl", "stamp_build_setting")
 
 bzl_library(
@@ -9,16 +10,14 @@
     deps = ["//rust/platform:bzl_lib"],
 )
 
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//private:bzl_lib` target instead",
-    visibility = ["//rust:__subpackages__"],
-)
-
 stamp_build_setting(name = "stamp")
 
 rust_analyzer_detect_sysroot(
     name = "rust_analyzer_detect_sysroot",
     visibility = ["//visibility:public"],
 )
+
+rustfmt_workspace_name(
+    name = "rustfmt_workspace_name",
+    visibility = ["//visibility:public"],
+)
diff --git a/third_party/rules_rust/rust/private/clippy.bzl b/third_party/rules_rust/rust/private/clippy.bzl
index d1464e9..21f3965 100644
--- a/third_party/rules_rust/rust/private/clippy.bzl
+++ b/third_party/rules_rust/rust/private/clippy.bzl
@@ -29,6 +29,22 @@
     "find_toolchain",
 )
 
+ClippyFlagsInfo = provider(
+    doc = "Pass each value as an additional flag to clippy invocations",
+    fields = {"clippy_flags": "List[string] Flags to pass to clippy"},
+)
+
+def _clippy_flags_impl(ctx):
+    return ClippyFlagsInfo(clippy_flags = ctx.build_setting_value)
+
+clippy_flags = rule(
+    doc = (
+        "Add custom clippy flags from the command line with `--@rules_rust//:clippy_flags`."
+    ),
+    implementation = _clippy_flags_impl,
+    build_setting = config.string_list(flag = True),
+)
+
 def _get_clippy_ready_crate_info(target, aspect_ctx):
     """Check that a target is suitable for clippy and extract the `CrateInfo` provider from it.
 
@@ -44,9 +60,16 @@
     if target.label.workspace_root.startswith("external"):
         return None
 
-    # Targets annotated with `noclippy` will not be formatted
-    if aspect_ctx and "noclippy" in aspect_ctx.rule.attr.tags:
-        return None
+    # Targets with specific tags will not be formatted
+    if aspect_ctx:
+        ignore_tags = [
+            "noclippy",
+            "no-clippy",
+        ]
+
+        for tag in ignore_tags:
+            if tag in aspect_ctx.rule.attr.tags:
+                return None
 
     # Obviously ignore any targets that don't contain `CrateInfo`
     if rust_common.crate_info not in target:
@@ -106,12 +129,18 @@
     if crate_info.is_test:
         args.rustc_flags.add("--test")
 
+    clippy_flags = ctx.attr._clippy_flags[ClippyFlagsInfo].clippy_flags
+
     # For remote execution purposes, the clippy_out file must be a sibling of crate_info.output
     # or rustc may fail to create intermediate output files because the directory does not exist.
     if ctx.attr._capture_output[CaptureClippyOutputInfo].capture_output:
         clippy_out = ctx.actions.declare_file(ctx.label.name + ".clippy.out", sibling = crate_info.output)
         args.process_wrapper_flags.add("--stderr-file", clippy_out.path)
 
+        if clippy_flags:
+            fail("""Combining @rules_rust//:clippy_flags with @rules_rust//:capture_clippy_output=true is currently not supported.
+See https://github.com/bazelbuild/rules_rust/pull/1264#discussion_r853241339 for more detail.""")
+
         # If we are capturing the output, we want the build system to be able to keep going
         # and consume the output. Some clippy lints are denials, so we treat them as warnings.
         args.rustc_flags.add("-Wclippy::all")
@@ -121,18 +150,14 @@
         clippy_out = ctx.actions.declare_file(ctx.label.name + ".clippy.ok", sibling = crate_info.output)
         args.process_wrapper_flags.add("--touch-file", clippy_out.path)
 
-        # Turn any warnings from clippy or rustc into an error, as otherwise
-        # Bazel will consider the execution result of the aspect to be "success",
-        # and Clippy won't be re-triggered unless the source file is modified.
-        if "__bindgen" in ctx.rule.attr.tags:
-            # bindgen-generated content is likely to trigger warnings, so
-            # only fail on clippy warnings
-            args.rustc_flags.add("-Dclippy::style")
-            args.rustc_flags.add("-Dclippy::correctness")
-            args.rustc_flags.add("-Dclippy::complexity")
-            args.rustc_flags.add("-Dclippy::perf")
+        if clippy_flags:
+            args.rustc_flags.add_all(clippy_flags)
         else:
-            # fail on any warning
+            # The user didn't provide any clippy flags explicitly so we apply conservative defaults.
+
+            # Turn any warnings from clippy or rustc into an error, as otherwise
+            # Bazel will consider the execution result of the aspect to be "success",
+            # and Clippy won't be re-triggered unless the source file is modified.
             args.rustc_flags.add("-Dwarnings")
 
     # Upstream clippy requires one of these two filenames or it silently uses
@@ -177,6 +202,10 @@
             ),
             default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
         ),
+        "_clippy_flags": attr.label(
+            doc = "Arguments to pass to clippy",
+            default = Label("//:clippy_flags"),
+        ),
         "_config": attr.label(
             doc = "The `clippy.toml` file used for configuration",
             allow_single_file = True,
@@ -186,6 +215,7 @@
             doc = "The desired `--error-format` flags for clippy",
             default = "//:error_format",
         ),
+        "_extra_rustc_flag": attr.label(default = "//:extra_rustc_flag"),
         "_extra_rustc_flags": attr.label(default = "//:extra_rustc_flags"),
         "_process_wrapper": attr.label(
             doc = "A process wrapper for running clippy on all platforms",
@@ -196,7 +226,7 @@
     },
     provides = [ClippyInfo],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
diff --git a/third_party/rules_rust/rust/private/common.bzl b/third_party/rules_rust/rust/private/common.bzl
index 66425d2..025c4d7 100644
--- a/third_party/rules_rust/rust/private/common.bzl
+++ b/third_party/rules_rust/rust/private/common.bzl
@@ -23,16 +23,15 @@
 In the Bazel lingo, `rust_common` gives the access to the Rust Sandwich API.
 """
 
-load(":providers.bzl", "CrateInfo", "DepInfo", "StdLibInfo")
+load(":providers.bzl", "CrateInfo", "DepInfo", "StdLibInfo", "TestCrateInfo")
 
-# These constants only represent the default value for attributes and macros
-# defiend in `rules_rust`. Like any attribute public attribute, they can be
-# overwritten by the user on the rules they're defiend on.
+# This constant only represents the default value for attributes and macros
+# defined in `rules_rust`. Like any attribute public attribute, it can be
+# overwritten by the user on the rules they're defined on.
 #
 # Note: Code in `.github/workflows/crate_universe.yaml` looks for this line, if
 # you remove it or change its format, you will also need to update that code.
-DEFAULT_RUST_VERSION = "1.59.0"
-DEFAULT_RUST_EDITION = "2018"
+DEFAULT_RUST_VERSION = "1.62.1"
 
 def _create_crate_info(**kwargs):
     """A constructor for a `CrateInfo` provider
@@ -48,6 +47,8 @@
     """
     if not "wrapped_crate_type" in kwargs:
         kwargs.update({"wrapped_crate_type": None})
+    if not "metadata" in kwargs:
+        kwargs.update({"metadata": None})
     if not "rustc_env_files" in kwargs:
         kwargs.update({"rustc_env_files": []})
     return CrateInfo(**kwargs)
@@ -57,6 +58,6 @@
     crate_info = CrateInfo,
     dep_info = DepInfo,
     stdlib_info = StdLibInfo,
-    default_edition = DEFAULT_RUST_EDITION,
+    test_crate_info = TestCrateInfo,
     default_version = DEFAULT_RUST_VERSION,
 )
diff --git a/third_party/rules_rust/rust/private/providers.bzl b/third_party/rules_rust/rust/private/providers.bzl
index 0846498..464444b 100644
--- a/third_party/rules_rust/rust/private/providers.bzl
+++ b/third_party/rules_rust/rust/private/providers.bzl
@@ -22,6 +22,7 @@
         "deps": "depset[DepVariantInfo]: This crate's (rust or cc) dependencies' providers.",
         "edition": "str: The edition of this crate.",
         "is_test": "bool: If the crate is being compiled in a test context",
+        "metadata": "File: The rmeta file produced for this crate. It is optional.",
         "name": "str: The name of this crate.",
         "output": "File: The output File that will be produced, depends on crate type.",
         "owner": "Label: The label of the target that produced this CrateInfo",
@@ -50,6 +51,7 @@
         "transitive_build_infos": "depset[BuildInfo]",
         "transitive_crate_outputs": "depset[File]: All transitive crate outputs.",
         "transitive_crates": "depset[CrateInfo]",
+        "transitive_metadata_outputs": "depset[File]: All transitive metadata dependencies (.rmeta, for crates that provide them) and all transitive object dependencies (.rlib) for crates that don't provide metadata.",
         "transitive_noncrates": "depset[LinkerInput]: All transitive dependencies that aren't crates.",
     },
 )
@@ -95,6 +97,7 @@
         "srcs": "List[Target]: All targets from the original `srcs` attribute.",
         "std_files": "Depset[File]: `.a` files associated with the `std` module.",
         "std_rlibs": "List[File]: All `.rlib` files",
+        "test_files": "Depset[File]: `.a` files associated with the `test` module.",
     },
 )
 
@@ -109,3 +112,15 @@
         "output": "File with the clippy output.",
     },
 )
+
+TestCrateInfo = provider(
+    doc = "A wrapper around a CrateInfo. " +
+          "Certain rule types, like rust_static_library and rust_shared_library " +
+          "are not intended for consumption by other Rust targets, and should not " +
+          "provide a CrateInfo. However, one should still be able to write a rust_test " +
+          "for them. Thus, we create a CrateInfo, but do not advertise it as such, " +
+          "but rather through this provider, that rust_test understands.",
+    fields = {
+        "crate": "CrateInfo: The underlying CrateInfo of the dependency",
+    },
+)
diff --git a/third_party/rules_rust/rust/private/repository_utils.bzl b/third_party/rules_rust/rust/private/repository_utils.bzl
index 1c33331..86d3f78 100644
--- a/third_party/rules_rust/rust/private/repository_utils.bzl
+++ b/third_party/rules_rust/rust/private/repository_utils.bzl
@@ -7,7 +7,6 @@
     "system_to_dylib_ext",
     "system_to_staticlib_ext",
     "system_to_stdlib_linkflags",
-    "triple_to_constraint_set",
     "triple_to_system",
 )
 
@@ -15,8 +14,6 @@
 DEFAULT_STATIC_RUST_URL_TEMPLATES = ["https://static.rust-lang.org/dist/{}.tar.gz"]
 
 _build_file_for_compiler_template = """\
-load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
-
 filegroup(
     name = "rustc",
     srcs = ["bin/rustc{binary_ext}"],
@@ -46,7 +43,7 @@
 """
 
 def BUILD_for_compiler(target_triple):
-    """Emits a BUILD file the compiler `.tar.gz`.
+    """Emits a BUILD file the compiler archive.
 
     Args:
         target_triple (str): The triple of the target platform
@@ -63,8 +60,6 @@
     )
 
 _build_file_for_cargo_template = """\
-load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
-
 filegroup(
     name = "cargo",
     srcs = ["bin/cargo{binary_ext}"],
@@ -72,7 +67,7 @@
 )"""
 
 def BUILD_for_cargo(target_triple):
-    """Emits a BUILD file the cargo `.tar.gz`.
+    """Emits a BUILD file the cargo archive.
 
     Args:
         target_triple (str): The triple of the target platform
@@ -86,8 +81,6 @@
     )
 
 _build_file_for_rustfmt_template = """\
-load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
-
 filegroup(
     name = "rustfmt_bin",
     srcs = ["bin/rustfmt{binary_ext}"],
@@ -102,7 +95,7 @@
 """
 
 def BUILD_for_rustfmt(target_triple):
-    """Emits a BUILD file the rustfmt `.tar.gz`.
+    """Emits a BUILD file the rustfmt archive.
 
     Args:
         target_triple (str): The triple of the target platform
@@ -116,8 +109,6 @@
     )
 
 _build_file_for_clippy_template = """\
-load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
-
 filegroup(
     name = "clippy_driver_bin",
     srcs = ["bin/clippy-driver{binary_ext}"],
@@ -126,7 +117,7 @@
 """
 
 def BUILD_for_clippy(target_triple):
-    """Emits a BUILD file the clippy `.tar.gz`.
+    """Emits a BUILD file the clippy archive.
 
     Args:
         target_triple (str): The triple of the target platform
@@ -137,6 +128,35 @@
     system = triple_to_system(target_triple)
     return _build_file_for_clippy_template.format(binary_ext = system_to_binary_ext(system))
 
+_build_file_for_llvm_tools = """\
+filegroup(
+    name = "llvm_cov_bin",
+    srcs = ["lib/rustlib/{target_triple}/bin/llvm-cov{binary_ext}"],
+    visibility = ["//visibility:public"],
+)
+
+filegroup(
+    name = "llvm_profdata_bin",
+    srcs = ["lib/rustlib/{target_triple}/bin/llvm-profdata{binary_ext}"],
+    visibility = ["//visibility:public"],
+)
+"""
+
+def BUILD_for_llvm_tools(target_triple):
+    """Emits a BUILD file the llvm-tools binaries.
+
+    Args:
+        target_triple (str): The triple of the target platform
+
+    Returns:
+        str: The contents of a BUILD file
+    """
+    system = triple_to_system(target_triple)
+    return _build_file_for_llvm_tools.format(
+        binary_ext = system_to_binary_ext(system),
+        target_triple = target_triple,
+    )
+
 _build_file_for_stdlib_template = """\
 load("@rules_rust//rust:toolchain.bzl", "rust_stdlib_filegroup")
 
@@ -164,7 +184,7 @@
 """
 
 def BUILD_for_stdlib(target_triple):
-    """Emits a BUILD file the stdlib `.tar.gz`.
+    """Emits a BUILD file the stdlib archive.
 
     Args:
         target_triple (str): The triple of the target platform
@@ -181,14 +201,18 @@
     )
 
 _build_file_for_rust_toolchain_template = """\
+load("@rules_rust//rust:toolchain.bzl", "rust_toolchain")
+
 rust_toolchain(
-    name = "{toolchain_name}_impl",
+    name = "{toolchain_name}",
     rust_doc = "@{workspace_name}//:rustdoc",
     rust_std = "@{workspace_name}//:rust_std-{target_triple}",
     rustc = "@{workspace_name}//:rustc",
     rustfmt = {rustfmt_label},
     cargo = "@{workspace_name}//:cargo",
     clippy_driver = "@{workspace_name}//:clippy_driver_bin",
+    llvm_cov = {llvm_cov_label},
+    llvm_profdata = {llvm_profdata_label},
     rustc_lib = "@{workspace_name}//:rustc_lib",
     rustc_srcs = {rustc_srcs},
     allocator_library = {allocator_library},
@@ -213,6 +237,7 @@
         allocator_library,
         default_edition,
         include_rustfmt,
+        include_llvm_tools,
         stdlib_linkflags = None):
     """Emits a toolchain declaration to match an existing compiler and stdlib.
 
@@ -225,6 +250,7 @@
         allocator_library (str, optional): Target that provides allocator functions when rust_library targets are embedded in a cc_binary.
         default_edition (str): Default Rust edition.
         include_rustfmt (bool): Whether rustfmt is present in the toolchain.
+        include_llvm_tools (bool): Whether llvm-tools are present in the toolchain.
         stdlib_linkflags (list, optional): Overriden flags needed for linking to rust
                                            stdlib, akin to BAZEL_LINKLIBS. Defaults to
                                            None.
@@ -243,6 +269,11 @@
     rustfmt_label = "None"
     if include_rustfmt:
         rustfmt_label = "\"@{workspace_name}//:rustfmt_bin\"".format(workspace_name = workspace_name)
+    llvm_cov_label = "None"
+    llvm_profdata_label = "None"
+    if include_llvm_tools:
+        llvm_cov_label = "\"@{workspace_name}//:llvm_cov_bin\"".format(workspace_name = workspace_name)
+        llvm_profdata_label = "\"@{workspace_name}//:llvm_profdata_bin\"".format(workspace_name = workspace_name)
     allocator_library_label = "None"
     if allocator_library:
         allocator_library_label = "\"{allocator_library}\"".format(allocator_library = allocator_library)
@@ -261,6 +292,8 @@
         exec_triple = exec_triple,
         target_triple = target_triple,
         rustfmt_label = rustfmt_label,
+        llvm_cov_label = llvm_cov_label,
+        llvm_profdata_label = llvm_profdata_label,
     )
 
 _build_file_for_toolchain_template = """\
@@ -268,17 +301,23 @@
     name = "{name}",
     exec_compatible_with = {exec_constraint_sets_serialized},
     target_compatible_with = {target_constraint_sets_serialized},
-    toolchain = "@{parent_workspace_name}//:{name}_impl",
-    toolchain_type = "@rules_rust//rust:toolchain",
+    toolchain = "{toolchain}",
+    toolchain_type = "{toolchain_type}",
 )
 """
 
-def BUILD_for_toolchain(name, parent_workspace_name, exec_triple, target_triple):
+def BUILD_for_toolchain(
+        name,
+        toolchain,
+        toolchain_type,
+        target_compatible_with,
+        exec_compatible_with):
     return _build_file_for_toolchain_template.format(
         name = name,
-        exec_constraint_sets_serialized = serialized_constraint_set_from_triple(exec_triple),
-        target_constraint_sets_serialized = serialized_constraint_set_from_triple(target_triple),
-        parent_workspace_name = parent_workspace_name,
+        exec_constraint_sets_serialized = exec_compatible_with,
+        target_constraint_sets_serialized = target_compatible_with,
+        toolchain = toolchain,
+        toolchain_type = toolchain_type,
     )
 
 def load_rustfmt(ctx):
@@ -318,14 +357,56 @@
         ctx,
         iso_date = ctx.attr.iso_date,
         target_triple = target_triple,
-        tool_name = "rust",
-        tool_subdirectories = ["rustc", "clippy-preview", "cargo"],
+        tool_name = "rustc",
+        tool_subdirectories = ["rustc"],
         version = ctx.attr.version,
     )
 
-    compiler_build_file = BUILD_for_compiler(target_triple) + BUILD_for_clippy(target_triple) + BUILD_for_cargo(target_triple)
+    return BUILD_for_compiler(target_triple)
 
-    return compiler_build_file
+def load_clippy(ctx):
+    """Loads Clippy and yields corresponding BUILD for it
+
+    Args:
+        ctx (repository_ctx): A repository_ctx.
+
+    Returns:
+        str: The BUILD file contents for Clippy
+    """
+
+    target_triple = ctx.attr.exec_triple
+    load_arbitrary_tool(
+        ctx,
+        iso_date = ctx.attr.iso_date,
+        target_triple = target_triple,
+        tool_name = "clippy",
+        tool_subdirectories = ["clippy-preview"],
+        version = ctx.attr.version,
+    )
+
+    return BUILD_for_clippy(target_triple)
+
+def load_cargo(ctx):
+    """Loads Cargo and yields corresponding BUILD for it
+
+    Args:
+        ctx (repository_ctx): A repository_ctx.
+
+    Returns:
+        str: The BUILD file contents for Cargo
+    """
+
+    target_triple = ctx.attr.exec_triple
+    load_arbitrary_tool(
+        ctx,
+        iso_date = ctx.attr.iso_date,
+        target_triple = target_triple,
+        tool_name = "cargo",
+        tool_subdirectories = ["cargo"],
+        version = ctx.attr.version,
+    )
+
+    return BUILD_for_cargo(target_triple)
 
 def should_include_rustc_srcs(repository_ctx):
     """Determing whether or not to include rustc sources in the toolchain.
@@ -344,27 +425,24 @@
 
     return getattr(repository_ctx.attr, "include_rustc_srcs", False)
 
-def load_rust_src(ctx):
+def load_rust_src(ctx, sha256 = ""):
     """Loads the rust source code. Used by the rust-analyzer rust-project.json generator.
 
     Args:
         ctx (ctx): A repository_ctx.
+        sha256 (str): The sha256 value for the `rust-src` artifact
     """
     tool_suburl = produce_tool_suburl("rust-src", None, ctx.attr.version, ctx.attr.iso_date)
-    static_rust = ctx.os.environ.get("STATIC_RUST_URL", "https://static.rust-lang.org")
-    url = "{}/dist/{}.tar.gz".format(static_rust, tool_suburl)
+    url = ctx.attr.urls[0].format(tool_suburl)
 
     tool_path = produce_tool_path("rust-src", None, ctx.attr.version)
-    archive_path = tool_path + ".tar.gz"
-    ctx.download(
+    archive_path = tool_path + _get_tool_extension(ctx)
+    sha256 = sha256 or getattr(ctx.attr, "sha256s", {}).get(archive_path) or FILE_KEY_TO_SHA.get(archive_path) or ""
+    ctx.download_and_extract(
         url,
-        output = archive_path,
-        sha256 = ctx.attr.sha256s.get(tool_suburl) or FILE_KEY_TO_SHA.get(tool_suburl) or "",
-        auth = _make_auth_dict(ctx, [url]),
-    )
-    ctx.extract(
-        archive_path,
         output = "lib/rustlib/src",
+        sha256 = sha256,
+        auth = _make_auth_dict(ctx, [url]),
         stripPrefix = "{}/rust-src/lib/rustlib/src/rust".format(tool_path),
     )
     ctx.file(
@@ -377,6 +455,21 @@
 )""",
     )
 
+_build_file_for_rust_analyzer_toolchain_template = """\
+load("@rules_rust//rust:toolchain.bzl", "rust_analyzer_toolchain")
+
+rust_analyzer_toolchain(
+    name = "{name}",
+    rustc_srcs = "//lib/rustlib/src:rustc_srcs",
+    visibility = ["//visibility:public"],
+)
+"""
+
+def BUILD_for_rust_analyzer_toolchain(name):
+    return _build_file_for_rust_analyzer_toolchain_template.format(
+        name = name,
+    )
+
 def load_rust_stdlib(ctx, target_triple):
     """Loads a rust standard library and yields corresponding BUILD for it
 
@@ -385,7 +478,7 @@
         target_triple (str): The rust-style target triple of the tool
 
     Returns:
-        str: The BUILD file contents for this stdlib, and a toolchain decl to match
+        str: The BUILD file contents for this stdlib
     """
 
     load_arbitrary_tool(
@@ -397,29 +490,7 @@
         version = ctx.attr.version,
     )
 
-    toolchain_prefix = ctx.attr.toolchain_name_prefix or DEFAULT_TOOLCHAIN_NAME_PREFIX
-    stdlib_build_file = BUILD_for_stdlib(target_triple)
-
-    stdlib_linkflags = None
-    if "BAZEL_RUST_STDLIB_LINKFLAGS" in ctx.os.environ:
-        stdlib_linkflags = ctx.os.environ["BAZEL_RUST_STDLIB_LINKFLAGS"].split(":")
-
-    toolchain_build_file = BUILD_for_rust_toolchain(
-        name = "{toolchain_prefix}_{target_triple}".format(
-            toolchain_prefix = toolchain_prefix,
-            target_triple = target_triple,
-        ),
-        exec_triple = ctx.attr.exec_triple,
-        include_rustc_srcs = should_include_rustc_srcs(ctx),
-        allocator_library = ctx.attr.allocator_library,
-        target_triple = target_triple,
-        stdlib_linkflags = stdlib_linkflags,
-        workspace_name = ctx.attr.name,
-        default_edition = ctx.attr.edition,
-        include_rustfmt = not (not ctx.attr.rustfmt_version),
-    )
-
-    return stdlib_build_file + toolchain_build_file
+    return BUILD_for_stdlib(target_triple)
 
 def load_rustc_dev_nightly(ctx, target_triple):
     """Loads the nightly rustc dev component
@@ -458,6 +529,8 @@
         version = ctx.attr.version,
     )
 
+    return BUILD_for_llvm_tools(target_triple)
+
 def check_version_valid(version, iso_date, param_prefix = ""):
     """Verifies that the provided rust version and iso_date make sense.
 
@@ -473,21 +546,6 @@
     if version in ("beta", "nightly") and not iso_date:
         fail("{param_prefix}iso_date must be specified if version is 'beta' or 'nightly'".format(param_prefix = param_prefix))
 
-def serialized_constraint_set_from_triple(target_triple):
-    """Returns a string representing a set of constraints
-
-    Args:
-        target_triple (str): The target triple of the constraint set
-
-    Returns:
-        str: Formatted string representing the serialized constraint
-    """
-    constraint_set = triple_to_constraint_set(target_triple)
-    constraint_set_strs = []
-    for constraint in constraint_set:
-        constraint_set_strs.append("\"{}\"".format(constraint))
-    return "[{}]".format(", ".join(constraint_set_strs))
-
 def produce_tool_suburl(tool_name, target_triple, version, iso_date = None):
     """Produces a fully qualified Rust tool name for URL
 
@@ -528,10 +586,6 @@
     - https://static.rust-lang.org/dist/channel-rust-beta.toml
     - https://static.rust-lang.org/dist/channel-rust-nightly.toml
 
-    The environment variable `STATIC_RUST_URL` can be used to replace the schema and hostname of
-    the URLs used for fetching assets. `https://static.rust-lang.org/dist/channel-rust-stable.toml`
-    becomes `${STATIC_RUST_URL}/dist/channel-rust-stable.toml`
-
     Args:
         ctx (repository_ctx): A repository_ctx (no attrs required).
         tool_name (str): The name of the given tool per the archive naming.
@@ -559,32 +613,30 @@
     tool_suburl = produce_tool_suburl(tool_name, target_triple, version, iso_date)
     urls = []
 
-    static_rust_url_from_env = ctx.os.environ.get("STATIC_RUST_URL")
-    if static_rust_url_from_env:
-        urls.append("{}/dist/{}.tar.gz".format(static_rust_url_from_env, tool_suburl))
-
     for url in getattr(ctx.attr, "urls", DEFAULT_STATIC_RUST_URL_TEMPLATES):
         new_url = url.format(tool_suburl)
         if new_url not in urls:
             urls.append(new_url)
 
     tool_path = produce_tool_path(tool_name, target_triple, version)
-    archive_path = "{}.tar.gz".format(tool_path)
-    ctx.download(
-        urls,
-        output = archive_path,
-        sha256 = getattr(ctx.attr, "sha256s", dict()).get(tool_suburl) or
-                 FILE_KEY_TO_SHA.get(tool_suburl) or
-                 sha256,
-        auth = _make_auth_dict(ctx, urls),
-    )
+    archive_path = tool_path + _get_tool_extension(ctx)
+    sha256 = getattr(ctx.attr, "sha256s", dict()).get(archive_path) or FILE_KEY_TO_SHA.get(archive_path) or sha256
+
     for subdirectory in tool_subdirectories:
-        ctx.extract(
-            archive_path,
-            output = "",
+        # As long as the sha256 value is consistent accross calls here the
+        # cost of downloading an artifact is negated as by Bazel's caching.
+        result = ctx.download_and_extract(
+            urls,
+            sha256 = sha256,
+            auth = _make_auth_dict(ctx, urls),
             stripPrefix = "{}/{}".format(tool_path, subdirectory),
         )
 
+        # In the event no sha256 was provided, set it to the value of the first
+        # downloaded item so subsequent downloads use a cached artifact.
+        if not sha256:
+            sha256 = result.sha256
+
 def _make_auth_dict(ctx, urls):
     auth = getattr(ctx.attr, "auth", {})
     if not auth:
@@ -593,3 +645,12 @@
     for url in urls:
         ret[url] = auth
     return ret
+
+def _get_tool_extension(ctx):
+    urls = getattr(ctx.attr, "urls", DEFAULT_STATIC_RUST_URL_TEMPLATES)
+    if urls[0][-7:] == ".tar.gz":
+        return ".tar.gz"
+    elif urls[0][-7:] == ".tar.xz":
+        return ".tar.xz"
+    else:
+        return ""
diff --git a/third_party/rules_rust/rust/private/rust.bzl b/third_party/rules_rust/rust/private/rust.bzl
index 688d9bf..571813b 100644
--- a/third_party/rules_rust/rust/private/rust.bzl
+++ b/third_party/rules_rust/rust/private/rust.bzl
@@ -13,10 +13,12 @@
 # limitations under the License.
 
 # buildifier: disable=module-docstring
+load("@bazel_skylib//lib:paths.bzl", "paths")
 load("//rust/private:common.bzl", "rust_common")
 load("//rust/private:rustc.bzl", "rustc_compile_action")
 load(
     "//rust/private:utils.bzl",
+    "can_build_metadata",
     "compute_crate_name",
     "dedent",
     "determine_output_hash",
@@ -25,7 +27,6 @@
     "get_import_macro_deps",
     "transform_deps",
 )
-
 # TODO(marco): Separate each rule into its own file.
 
 def _assert_no_deprecated_attributes(_ctx):
@@ -105,26 +106,84 @@
         extension = extension,
     )
 
-def get_edition(attr, toolchain):
+def get_edition(attr, toolchain, label):
     """Returns the Rust edition from either the current rule's attirbutes or the current `rust_toolchain`
 
     Args:
         attr (struct): The current rule's attributes
         toolchain (rust_toolchain): The `rust_toolchain` for the current target
+        label (Label): The label of the target being built
 
     Returns:
         str: The target Rust edition
     """
     if getattr(attr, "edition"):
         return attr.edition
+    elif not toolchain.default_edition:
+        fail("Attribute `edition` is required for {}.".format(label))
     else:
         return toolchain.default_edition
 
-def crate_root_src(attr, srcs, crate_type):
-    """Finds the source file for the crate root.
+def _transform_sources(ctx, srcs, crate_root):
+    """Creates symlinks of the source files if needed.
+
+    Rustc assumes that the source files are located next to the crate root.
+    In case of a mix between generated and non-generated source files, this
+    we violate this assumption, as part of the sources will be located under
+    bazel-out/... . In order to allow for targets that contain both generated
+    and non-generated source files, we generate symlinks for all non-generated
+    files.
 
     Args:
-        attr (struct): The attributes of the current target
+        ctx (struct): The current rule's context.
+        srcs (List[File]): The sources listed in the `srcs` attribute
+        crate_root (File): The file specified in the `crate_root` attribute,
+                           if it exists, otherwise None
+
+    Returns:
+        Tuple(List[File], File): The transformed srcs and crate_root
+    """
+    has_generated_sources = len([src for src in srcs if not src.is_source]) > 0
+
+    if not has_generated_sources:
+        return srcs, crate_root
+
+    generated_sources = []
+
+    generated_root = crate_root
+
+    if crate_root and (crate_root.is_source or crate_root.root.path != ctx.bin_dir.path):
+        generated_root = ctx.actions.declare_file(crate_root.basename)
+        ctx.actions.symlink(
+            output = generated_root,
+            target_file = crate_root,
+            progress_message = "Creating symlink to source file: {}".format(crate_root.path),
+        )
+    if generated_root:
+        generated_sources.append(generated_root)
+
+    for src in srcs:
+        # We took care of the crate root above.
+        if src == crate_root:
+            continue
+        if src.is_source or src.root.path != ctx.bin_dir.path:
+            src_symlink = ctx.actions.declare_file(src.basename)
+            ctx.actions.symlink(
+                output = src_symlink,
+                target_file = src,
+                progress_message = "Creating symlink to source file: {}".format(src.path),
+            )
+            generated_sources.append(src_symlink)
+        else:
+            generated_sources.append(src)
+
+    return generated_sources, generated_root
+
+def crate_root_src(name, srcs, crate_type):
+    """Determines the source file for the crate root, should it not be specified in `attr.crate_root`.
+
+    Args:
+        name (str): The name of the target.
         srcs (list): A list of all sources for the target Crate.
         crate_type (str): The type of this crate ("bin", "lib", "rlib", "cdylib", etc).
 
@@ -135,19 +194,13 @@
     """
     default_crate_root_filename = "main.rs" if crate_type == "bin" else "lib.rs"
 
-    crate_root = None
-    if hasattr(attr, "crate_root"):
-        if attr.crate_root:
-            crate_root = attr.crate_root.files.to_list()[0]
-
+    crate_root = (
+        (srcs[0] if len(srcs) == 1 else None) or
+        _shortest_src_with_basename(srcs, default_crate_root_filename) or
+        _shortest_src_with_basename(srcs, name + ".rs")
+    )
     if not crate_root:
-        crate_root = (
-            (srcs[0] if len(srcs) == 1 else None) or
-            _shortest_src_with_basename(srcs, default_crate_root_filename) or
-            _shortest_src_with_basename(srcs, attr.name + ".rs")
-        )
-    if not crate_root:
-        file_names = [default_crate_root_filename, attr.name + ".rs"]
+        file_names = [default_crate_root_filename, name + ".rs"]
         fail("No {} source file found.".format(" or ".join(file_names)), "srcs")
     return crate_root
 
@@ -237,22 +290,23 @@
         list: A list of providers. See `rustc_compile_action`
     """
 
-    # Find lib.rs
-    crate_root = crate_root_src(ctx.attr, ctx.files.srcs, "lib")
+    srcs, crate_root = _transform_sources(ctx, ctx.files.srcs, getattr(ctx.file, "crate_root", None))
+    if not crate_root:
+        crate_root = crate_root_src(ctx.attr.name, srcs, "lib")
     _assert_no_deprecated_attributes(ctx)
     _assert_correct_dep_mapping(ctx)
 
     toolchain = find_toolchain(ctx)
 
     # Determine unique hash for this rlib.
-    # Note that we don't include a hash for `cdylib` since they are meant to be consumed externally and having a
-    # deterministic name is important since it ends up embedded in the executable. This is problematic when one needs
-    # to include the library with a specific filename into a larger application.
+    # Note that we don't include a hash for `cdylib` and `staticlib` since they are meant to be consumed externally
+    # and having a deterministic name is important since it ends up embedded in the executable. This is problematic
+    # when one needs to include the library with a specific filename into a larger application.
     # (see https://github.com/bazelbuild/rules_rust/issues/405#issuecomment-993089889 for more details)
-    if crate_type != "cdylib":
-        output_hash = determine_output_hash(crate_root, ctx.label)
-    else:
+    if crate_type in ["cdylib", "staticlib"]:
         output_hash = None
+    else:
+        output_hash = determine_output_hash(crate_root, ctx.label)
 
     crate_name = compute_crate_name(ctx.workspace_name, ctx.label, toolchain, ctx.attr.crate_name)
     rust_lib_name = _determine_lib_name(
@@ -263,6 +317,13 @@
     )
     rust_lib = ctx.actions.declare_file(rust_lib_name)
 
+    rust_metadata = None
+    if can_build_metadata(toolchain, ctx, crate_type) and not ctx.attr.disable_pipelining:
+        rust_metadata = ctx.actions.declare_file(
+            paths.replace_extension(rust_lib_name, ".rmeta"),
+            sibling = rust_lib,
+        )
+
     deps = transform_deps(ctx.attr.deps)
     proc_macro_deps = transform_deps(ctx.attr.proc_macro_deps + get_import_macro_deps(ctx))
 
@@ -270,17 +331,17 @@
         ctx = ctx,
         attr = ctx.attr,
         toolchain = toolchain,
-        dep_env_files = ctx.files.dep_env_files,
         crate_info = rust_common.create_crate_info(
             name = crate_name,
             type = crate_type,
             root = crate_root,
-            srcs = depset(ctx.files.srcs),
+            srcs = depset(srcs),
             deps = depset(deps),
             proc_macro_deps = depset(proc_macro_deps),
             aliases = ctx.attr.aliases,
             output = rust_lib,
-            edition = get_edition(ctx.attr, toolchain),
+            metadata = rust_metadata,
+            edition = get_edition(ctx.attr, toolchain, ctx.label),
             rustc_env = ctx.attr.rustc_env,
             rustc_env_files = ctx.files.rustc_env_files,
             is_test = False,
@@ -308,6 +369,10 @@
     deps = transform_deps(ctx.attr.deps)
     proc_macro_deps = transform_deps(ctx.attr.proc_macro_deps + get_import_macro_deps(ctx))
 
+    srcs, crate_root = _transform_sources(ctx, ctx.files.srcs, getattr(ctx.file, "crate_root", None))
+    if not crate_root:
+        crate_root = crate_root_src(ctx.attr.name, srcs, ctx.attr.crate_type)
+
     return rustc_compile_action(
         ctx = ctx,
         attr = ctx.attr,
@@ -315,13 +380,13 @@
         crate_info = rust_common.create_crate_info(
             name = crate_name,
             type = ctx.attr.crate_type,
-            root = crate_root_src(ctx.attr, ctx.files.srcs, ctx.attr.crate_type),
-            srcs = depset(ctx.files.srcs),
+            root = crate_root,
+            srcs = depset(srcs),
             deps = depset(deps),
             proc_macro_deps = depset(proc_macro_deps),
             aliases = ctx.attr.aliases,
             output = output,
-            edition = get_edition(ctx.attr, toolchain),
+            edition = get_edition(ctx.attr, toolchain, ctx.label),
             rustc_env = ctx.attr.rustc_env,
             rustc_env_files = ctx.files.rustc_env_files,
             is_test = False,
@@ -330,13 +395,11 @@
         ),
     )
 
-def _rust_test_common(ctx, toolchain, output):
-    """Builds a Rust test binary.
+def _rust_test_impl(ctx):
+    """The implementation of the `rust_test` rule.
 
     Args:
         ctx (ctx): The ctx object for the current target.
-        toolchain (rust_toolchain): The current `rust_toolchain`
-        output (File): The output File that will be produced, depends on crate type.
 
     Returns:
         list: The list of providers. See `rustc_compile_action`
@@ -344,7 +407,9 @@
     _assert_no_deprecated_attributes(ctx)
     _assert_correct_dep_mapping(ctx)
 
-    crate_name = compute_crate_name(ctx.workspace_name, ctx.label, toolchain, ctx.attr.crate_name)
+    toolchain = find_toolchain(ctx)
+
+    srcs, crate_root = _transform_sources(ctx, ctx.files.srcs, getattr(ctx.file, "crate_root", None))
     crate_type = "bin"
 
     deps = transform_deps(ctx.attr.deps)
@@ -352,7 +417,16 @@
 
     if ctx.attr.crate:
         # Target is building the crate in `test` config
-        crate = ctx.attr.crate[rust_common.crate_info]
+        crate = ctx.attr.crate[rust_common.crate_info] if rust_common.crate_info in ctx.attr.crate else ctx.attr.crate[rust_common.test_crate_info].crate
+
+        output_hash = determine_output_hash(crate.root, ctx.label)
+        output = ctx.actions.declare_file(
+            "test-%s/%s%s" % (
+                output_hash,
+                ctx.label.name,
+                toolchain.binary_ext,
+            ),
+        )
 
         # Optionally join compile data
         if crate.compile_data:
@@ -365,10 +439,10 @@
 
         # Build the test binary using the dependency's srcs.
         crate_info = rust_common.create_crate_info(
-            name = crate_name,
+            name = crate.name,
             type = crate_type,
             root = crate.root,
-            srcs = depset(ctx.files.srcs, transitive = [crate.srcs]),
+            srcs = depset(srcs, transitive = [crate.srcs]),
             deps = depset(deps, transitive = [crate.deps]),
             proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]),
             aliases = ctx.attr.aliases,
@@ -382,17 +456,29 @@
             owner = ctx.label,
         )
     else:
+        if not crate_root:
+            crate_root = crate_root_src(ctx.attr.name, ctx.files.srcs, "lib")
+
+        output_hash = determine_output_hash(crate_root, ctx.label)
+        output = ctx.actions.declare_file(
+            "test-%s/%s%s" % (
+                output_hash,
+                ctx.label.name,
+                toolchain.binary_ext,
+            ),
+        )
+
         # Target is a standalone crate. Build the test binary as its own crate.
         crate_info = rust_common.create_crate_info(
-            name = crate_name,
+            name = compute_crate_name(ctx.workspace_name, ctx.label, toolchain, ctx.attr.crate_name),
             type = crate_type,
-            root = crate_root_src(ctx.attr, ctx.files.srcs, "lib"),
-            srcs = depset(ctx.files.srcs),
+            root = crate_root,
+            srcs = depset(srcs),
             deps = depset(deps),
             proc_macro_deps = depset(proc_macro_deps),
             aliases = ctx.attr.aliases,
             output = output,
-            edition = get_edition(ctx.attr, toolchain),
+            edition = get_edition(ctx.attr, toolchain, ctx.label),
             rustc_env = ctx.attr.rustc_env,
             rustc_env_files = ctx.files.rustc_env_files,
             is_test = True,
@@ -414,27 +500,42 @@
         getattr(ctx.attr, "env", {}),
         data,
     )
+    if toolchain.llvm_cov and ctx.configuration.coverage_enabled:
+        if not toolchain.llvm_profdata:
+            fail("toolchain.llvm_profdata is required if toolchain.llvm_cov is set.")
+
+        env["RUST_LLVM_COV"] = toolchain.llvm_cov.path
+        env["RUST_LLVM_PROFDATA"] = toolchain.llvm_profdata.path
     providers.append(testing.TestEnvironment(env))
 
     return providers
 
-def _rust_test_impl(ctx):
-    """The implementation of the `rust_test` rule
+def _stamp_attribute(default_value):
+    return attr.int(
+        doc = dedent("""\
+            Whether to encode build information into the `Rustc` action. Possible values:
 
-    Args:
-        ctx (ctx): The rule's context object
+            - `stamp = 1`: Always stamp the build information into the `Rustc` action, even in \
+            [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds. \
+            This setting should be avoided, since it potentially kills remote caching for the target and \
+            any downstream actions that depend on it.
 
-    Returns:
-        list: A list of providers. See `_rust_test_common`
-    """
-    toolchain = find_toolchain(ctx)
+            - `stamp = 0`: Always replace build information by constant values. This gives good build result caching.
 
-    output = ctx.actions.declare_file(
-        ctx.label.name + toolchain.binary_ext,
+            - `stamp = -1`: Embedding of build information is controlled by the \
+            [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.
+
+            Stamped targets are not rebuilt unless their dependencies change.
+
+            For example if a `rust_library` is stamped, and a `rust_binary` depends on that library, the stamped
+            library won't be rebuilt when we change sources of the `rust_binary`. This is different from how
+            [`cc_library.linkstamps`](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp)
+            behaves.
+        """),
+        default = default_value,
+        values = [1, 0, -1],
     )
 
-    return _rust_test_common(ctx, toolchain, output)
-
 _common_attrs = {
     "aliases": attr.label_keyed_string_dict(
         doc = dedent("""\
@@ -542,14 +643,6 @@
         """),
         allow_files = True,
     ),
-    "dep_env_files": attr.label_list(
-        doc = dedent("""\
-            Files containing additional environment variables to set for build scripts of direct dependencies.
-
-            See `rustc_env_files` for formatting details.
-        """),
-        allow_files = True,
-    ),
     "rustc_flags": attr.string_list(
         doc = dedent("""\
             List of compiler flags passed to `rustc`.
@@ -574,44 +667,51 @@
         """),
         allow_files = [".rs"],
     ),
-    "stamp": attr.int(
-        doc = dedent("""\
-            Whether to encode build information into the `Rustc` action. Possible values:
-
-            - `stamp = 1`: Always stamp the build information into the `Rustc` action, even in \
-            [--nostamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) builds. \
-            This setting should be avoided, since it potentially kills remote caching for the target and \
-            any downstream actions that depend on it.
-
-            - `stamp = 0`: Always replace build information by constant values. This gives good build result caching.
-
-            - `stamp = -1`: Embedding of build information is controlled by the \
-            [--[no]stamp](https://docs.bazel.build/versions/main/user-manual.html#flag--stamp) flag.
-
-            Stamped targets are not rebuilt unless their dependencies change.
-
-            For example if a `rust_library` is stamped, and a `rust_binary` depends on that library, the stamped
-            library won't be rebuilt when we change sources of the `rust_binary`. This is different from how
-            [`cc_library.linkstamps`](https://docs.bazel.build/versions/main/be/c-cpp.html#cc_library.linkstamp)
-            behaves.
-        """),
-        default = -1,
-        values = [1, 0, -1],
-    ),
+    "stamp": _stamp_attribute(default_value = 0),
     "version": attr.string(
         doc = "A version to inject in the cargo environment variable.",
         default = "0.0.0",
     ),
     "_cc_toolchain": attr.label(
-        default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+        doc = (
+            "In order to use find_cc_toolchain, your rule has to depend " +
+            "on C++ toolchain. See `@rules_cc//cc:find_cc_toolchain.bzl` " +
+            "docs for details."
+        ),
+        default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
     ),
-    "_error_format": attr.label(default = "//:error_format"),
-    "_extra_exec_rustc_flags": attr.label(default = "//:extra_exec_rustc_flags"),
-    "_extra_rustc_flags": attr.label(default = "//:extra_rustc_flags"),
+    "_collect_cc_coverage": attr.label(
+        default = Label("//util:collect_coverage"),
+        executable = True,
+        cfg = "exec",
+    ),
+    "_error_format": attr.label(
+        default = Label("//:error_format"),
+    ),
+    "_extra_exec_rustc_flag": attr.label(
+        default = Label("//:extra_exec_rustc_flag"),
+    ),
+    "_extra_exec_rustc_flags": attr.label(
+        default = Label("//:extra_exec_rustc_flags"),
+    ),
+    "_extra_rustc_flag": attr.label(
+        default = Label("//:extra_rustc_flag"),
+    ),
+    "_extra_rustc_flags": attr.label(
+        default = Label("//:extra_rustc_flags"),
+    ),
     "_import_macro_dep": attr.label(
-        default = "@rules_rust//util/import",
+        default = Label("//util/import"),
+        cfg = "exec",
+    ),
+    "_is_proc_macro_dep": attr.label(
+        default = Label("//:is_proc_macro_dep"),
+    ),
+    "_is_proc_macro_dep_enabled": attr.label(
+        default = Label("//:is_proc_macro_dep_enabled"),
     ),
     "_process_wrapper": attr.label(
+        doc = "A process wrapper for running rustc on all platforms.",
         default = Label("//util/process_wrapper"),
         executable = True,
         allow_single_file = True,
@@ -623,7 +723,22 @@
     ),
 }
 
-_rust_test_attrs = {
+_experimental_use_cc_common_link_attrs = {
+    "experimental_use_cc_common_link": attr.int(
+        doc = (
+            "Whether to use cc_common.link to link rust binaries. " +
+            "Possible values: [-1, 0, 1]. " +
+            "-1 means use the value of the toolchain.experimental_use_cc_common_link " +
+            "boolean build setting to determine. " +
+            "0 means do not use cc_common.link (use rustc instead). " +
+            "1 means use cc_common.link."
+        ),
+        values = [-1, 0, 1],
+        default = -1,
+    ),
+}
+
+_rust_test_attrs = dict({
     "crate": attr.label(
         mandatory = False,
         doc = dedent("""\
@@ -660,7 +775,7 @@
         default = Label("@bazel_tools//tools/cpp:grep-includes"),
         executable = True,
     ),
-}
+}.items() + _experimental_use_cc_common_link_attrs.items())
 
 _common_providers = [
     rust_common.crate_info,
@@ -671,11 +786,20 @@
 rust_library = rule(
     implementation = _rust_library_impl,
     provides = _common_providers,
-    attrs = dict(_common_attrs.items()),
+    attrs = dict(_common_attrs.items() + {
+        "disable_pipelining": attr.bool(
+            default = False,
+            doc = dedent("""\
+                Disables pipelining for this rule if it is globally enabled.
+                This will cause this rule to not produce a `.rmeta` file and all the dependent
+                crates will instead use the `.rlib` file.
+            """),
+        ),
+    }.items()),
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -747,12 +871,11 @@
 
 rust_static_library = rule(
     implementation = _rust_static_library_impl,
-    provides = _common_providers,
     attrs = dict(_common_attrs.items()),
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -771,12 +894,11 @@
 
 rust_shared_library = rule(
     implementation = _rust_shared_library_impl,
-    provides = _common_providers,
     attrs = dict(_common_attrs.items()),
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -793,14 +915,42 @@
         """),
 )
 
+def _proc_macro_dep_transition_impl(settings, _attr):
+    if settings["//:is_proc_macro_dep_enabled"]:
+        return {"//:is_proc_macro_dep": True}
+    else:
+        return []
+
+_proc_macro_dep_transition = transition(
+    inputs = ["//:is_proc_macro_dep_enabled"],
+    outputs = ["//:is_proc_macro_dep"],
+    implementation = _proc_macro_dep_transition_impl,
+)
+
 rust_proc_macro = rule(
     implementation = _rust_proc_macro_impl,
     provides = _common_providers,
-    attrs = dict(_common_attrs.items()),
+    # Start by copying the common attributes, then override the `deps` attribute
+    # to apply `_proc_macro_dep_transition`. To add this transition we additionally
+    # need to declare `_allowlist_function_transition`, see
+    # https://docs.bazel.build/versions/main/skylark/config.html#user-defined-transitions.
+    attrs = dict(
+        _common_attrs.items(),
+        _allowlist_function_transition = attr.label(default = Label("//tools/allowlists/function_transition_allowlist")),
+        deps = attr.label_list(
+            doc = dedent("""\
+            List of other libraries to be linked to this library target.
+
+            These can be either other `rust_library` targets or `cc_library` targets if
+            linking a native library.
+        """),
+            cfg = _proc_macro_dep_transition,
+        ),
+    ),
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -809,7 +959,7 @@
         """),
 )
 
-_rust_binary_attrs = {
+_rust_binary_attrs = dict({
     "crate_type": attr.string(
         doc = dedent("""\
             Crate type that will be passed to `rustc` to be used for building this crate.
@@ -834,13 +984,14 @@
         ),
         default = False,
     ),
+    "stamp": _stamp_attribute(default_value = -1),
     "_grep_includes": attr.label(
         allow_single_file = True,
         cfg = "exec",
         default = Label("@bazel_tools//tools/cpp:grep-includes"),
         executable = True,
     ),
-}
+}.items() + _experimental_use_cc_common_link_attrs.items())
 
 rust_binary = rule(
     implementation = _rust_binary_impl,
@@ -850,7 +1001,7 @@
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -944,6 +1095,59 @@
 """),
 )
 
+def _common_attrs_for_binary_without_process_wrapper(attrs):
+    new_attr = dict(attrs)
+
+    # use a fake process wrapper
+    new_attr["_process_wrapper"] = attr.label(
+        default = None,
+        executable = True,
+        allow_single_file = True,
+        cfg = "exec",
+    )
+
+    # fix stamp = 0
+    new_attr["stamp"] = attr.int(
+        doc = dedent("""\
+            Fix `stamp = 0` as stamping is not supported when building without process_wrapper:
+            https://github.com/bazelbuild/rules_rust/blob/8df4517d370b0c543a01ba38b63e1d5a4104b035/rust/private/rustc.bzl#L955
+        """),
+        default = 0,
+        values = [0],
+    )
+
+    return new_attr
+
+# Provides an internal rust_{binary,library} to use that we can use to build the process
+# wrapper, this breaks the dependency of rust_* on the process wrapper by
+# setting it to None, which the functions in rustc detect and build accordingly.
+rust_binary_without_process_wrapper = rule(
+    implementation = _rust_binary_impl,
+    provides = _common_providers,
+    attrs = _common_attrs_for_binary_without_process_wrapper(_common_attrs.items() + _rust_binary_attrs.items()),
+    executable = True,
+    fragments = ["cpp"],
+    host_fragments = ["cpp"],
+    toolchains = [
+        str(Label("//rust:toolchain_type")),
+        "@bazel_tools//tools/cpp:toolchain_type",
+    ],
+    incompatible_use_toolchain_transition = True,
+)
+
+rust_library_without_process_wrapper = rule(
+    implementation = _rust_library_impl,
+    provides = _common_providers,
+    attrs = dict(_common_attrs_for_binary_without_process_wrapper(_common_attrs).items()),
+    fragments = ["cpp"],
+    host_fragments = ["cpp"],
+    toolchains = [
+        str(Label("//rust:toolchain_type")),
+        "@bazel_tools//tools/cpp:toolchain_type",
+    ],
+    incompatible_use_toolchain_transition = True,
+)
+
 rust_test = rule(
     implementation = _rust_test_impl,
     provides = _common_providers,
@@ -954,7 +1158,7 @@
     host_fragments = ["cpp"],
     test = True,
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
@@ -1003,8 +1207,9 @@
         }
         ```
 
-        To build and run the tests, simply add a `rust_test` rule with no `srcs` and \
-        only depends on the `hello_lib` `rust_library` target:
+        To build and run the tests, simply add a `rust_test` rule with no `srcs`
+        and only depends on the `hello_lib` `rust_library` target via the
+        `crate` attribute:
 
         `hello_lib/BUILD`:
         ```python
@@ -1017,24 +1222,15 @@
 
         rust_test(
             name = "hello_lib_test",
-            deps = [":hello_lib"],
-        )
-        ```
-
-        Run the test with `bazel build //hello_lib:hello_lib_test`.
-
-        To run a crate or lib with the `#[cfg(test)]` configuration, handling inline \
-        tests, you should specify the crate directly like so.
-
-        ```python
-        rust_test(
-            name = "hello_lib_test",
             crate = ":hello_lib",
             # You may add other deps that are specific to the test configuration
             deps = ["//some/dev/dep"],
-        )
         ```
 
+        Run the test with `bazel test //hello_lib:hello_lib_test`. The crate
+        will be built using the same crate name as the underlying ":hello_lib"
+        crate.
+
         ### Example: `test` directory
 
         Integration tests that live in the [`tests` directory][int-tests], they are \
@@ -1087,7 +1283,7 @@
         )
         ```
 
-        Run the test with `bazel build //hello_lib:hello_lib_test`.
+        Run the test with `bazel test //hello_lib:greeting_test`.
 """),
 )
 
@@ -1154,7 +1350,6 @@
         test_name = name + "_" + src[:-3]
         rust_test(
             name = test_name,
-            crate_name = test_name.replace("/", "_"),
             srcs = [src],
             **kwargs
         )
diff --git a/third_party/rules_rust/rust/private/rust_analyzer.bzl b/third_party/rules_rust/rust/private/rust_analyzer.bzl
index e28ca30..7515fd7 100644
--- a/third_party/rules_rust/rust/private/rust_analyzer.bzl
+++ b/third_party/rules_rust/rust/private/rust_analyzer.bzl
@@ -39,7 +39,7 @@
 )
 
 def _rust_analyzer_aspect_impl(target, ctx):
-    if rust_common.crate_info not in target:
+    if rust_common.crate_info not in target and rust_common.test_crate_info not in target:
         return []
 
     toolchain = find_toolchain(ctx)
@@ -52,21 +52,30 @@
     if hasattr(ctx.rule.attr, "rustc_flags"):
         cfgs += [f[6:] for f in ctx.rule.attr.rustc_flags if f.startswith("--cfg ") or f.startswith("--cfg=")]
 
-    # Save BuildInfo if we find any (for build script output)
     build_info = None
-    for dep in ctx.rule.attr.deps:
-        if BuildInfo in dep:
-            build_info = dep[BuildInfo]
+    dep_infos = []
+    if hasattr(ctx.rule.attr, "deps"):
+        for dep in ctx.rule.attr.deps:
+            # Save BuildInfo if we find any (for build script output)
+            if BuildInfo in dep:
+                build_info = dep[BuildInfo]
+        dep_infos = [dep[RustAnalyzerInfo] for dep in ctx.rule.attr.deps if RustAnalyzerInfo in dep]
 
-    dep_infos = [dep[RustAnalyzerInfo] for dep in ctx.rule.attr.deps if RustAnalyzerInfo in dep]
     if hasattr(ctx.rule.attr, "proc_macro_deps"):
         dep_infos += [dep[RustAnalyzerInfo] for dep in ctx.rule.attr.proc_macro_deps if RustAnalyzerInfo in dep]
     if hasattr(ctx.rule.attr, "crate") and ctx.rule.attr.crate != None:
         dep_infos.append(ctx.rule.attr.crate[RustAnalyzerInfo])
+    if hasattr(ctx.rule.attr, "actual") and ctx.rule.attr.actual != None and RustAnalyzerInfo in ctx.rule.attr.actual:
+        dep_infos.append(ctx.rule.attr.actual[RustAnalyzerInfo])
 
     crate_spec = ctx.actions.declare_file(ctx.label.name + ".rust_analyzer_crate_spec")
 
-    crate_info = target[rust_common.crate_info]
+    if rust_common.crate_info in target:
+        crate_info = target[rust_common.crate_info]
+    elif rust_common.test_crate_info in target:
+        crate_info = target[rust_common.test_crate_info].crate
+    else:
+        fail("Unexpected target type: {}".format(target))
 
     rust_analyzer_info = RustAnalyzerInfo(
         crate = crate_info,
@@ -97,7 +106,14 @@
     Returns:
         (path): The path to the proc macro dylib, or None if this crate is not a proc-macro.
     """
-    if target[rust_common.crate_info].type != "proc-macro":
+    if rust_common.crate_info in target:
+        crate_info = target[rust_common.crate_info]
+    elif rust_common.test_crate_info in target:
+        crate_info = target[rust_common.test_crate_info].crate
+    else:
+        return None
+
+    if crate_info.type != "proc-macro":
         return None
 
     dylib_ext = system_to_dylib_ext(triple_to_system(toolchain.target_triple))
@@ -111,14 +127,15 @@
     return None
 
 rust_analyzer_aspect = aspect(
-    attr_aspects = ["deps", "proc_macro_deps", "crate"],
+    attr_aspects = ["deps", "proc_macro_deps", "crate", "actual"],
     implementation = _rust_analyzer_aspect_impl,
-    toolchains = [str(Label("//rust:toolchain"))],
+    toolchains = [str(Label("//rust:toolchain_type"))],
     incompatible_use_toolchain_transition = True,
     doc = "Annotates rust rules with RustAnalyzerInfo later used to build a rust-project.json",
 )
 
-_exec_root_tmpl = "__EXEC_ROOT__/"
+_EXEC_ROOT_TEMPLATE = "__EXEC_ROOT__/"
+_OUTPUT_BASE_TEMPLATE = "__OUTPUT_BASE__/"
 
 def _crate_id(crate_info):
     """Returns a unique stable identifier for a crate
@@ -149,24 +166,20 @@
 
     # Switch on external/ to determine if crates are in the workspace or remote.
     # TODO: Some folks may want to override this for vendored dependencies.
-    root_path = info.crate.root.path
-    root_dirname = info.crate.root.dirname
-    if root_path.startswith("external/"):
-        crate["is_workspace_member"] = False
-        crate["root_module"] = _exec_root_tmpl + root_path
-        crate_root = _exec_root_tmpl + root_dirname
-    else:
-        crate["is_workspace_member"] = True
-        crate["root_module"] = root_path
-        crate_root = root_dirname
+    is_external = info.crate.root.path.startswith("external/")
+    is_generated = not info.crate.root.is_source
+    path_prefix = _EXEC_ROOT_TEMPLATE if is_external or is_generated else ""
+    crate["is_workspace_member"] = not is_external
+    crate["root_module"] = path_prefix + info.crate.root.path
+    crate_root = path_prefix + info.crate.root.dirname
 
     if info.build_info != None:
         out_dir_path = info.build_info.out_dir.path
-        crate["env"].update({"OUT_DIR": _exec_root_tmpl + out_dir_path})
+        crate["env"].update({"OUT_DIR": _EXEC_ROOT_TEMPLATE + out_dir_path})
         crate["source"] = {
             # We have to tell rust-analyzer about our out_dir since it's not under the crate root.
             "exclude_dirs": [],
-            "include_dirs": [crate_root, _exec_root_tmpl + out_dir_path],
+            "include_dirs": [crate_root, _EXEC_ROOT_TEMPLATE + out_dir_path],
         }
 
     # TODO: The only imagined use case is an env var holding a filename in the workspace passed to a
@@ -188,21 +201,42 @@
     crate["cfg"] = info.cfgs
     crate["target"] = find_toolchain(ctx).target_triple
     if info.proc_macro_dylib_path != None:
-        crate["proc_macro_dylib_path"] = _exec_root_tmpl + info.proc_macro_dylib_path
+        crate["proc_macro_dylib_path"] = _EXEC_ROOT_TEMPLATE + info.proc_macro_dylib_path
     return crate
 
-def _rust_analyzer_detect_sysroot_impl(ctx):
-    rust_toolchain = find_toolchain(ctx)
+def _rust_analyzer_toolchain_impl(ctx):
+    toolchain = platform_common.ToolchainInfo(
+        rustc_srcs = ctx.attr.rustc_srcs,
+    )
 
-    if not rust_toolchain.rustc_srcs:
+    return [toolchain]
+
+rust_analyzer_toolchain = rule(
+    implementation = _rust_analyzer_toolchain_impl,
+    doc = "A toolchain for [rust-analyzer](https://rust-analyzer.github.io/).",
+    attrs = {
+        "rustc_srcs": attr.label(
+            doc = "The source code of rustc.",
+            mandatory = True,
+        ),
+    },
+    incompatible_use_toolchain_transition = True,
+)
+
+def _rust_analyzer_detect_sysroot_impl(ctx):
+    rust_analyzer_toolchain = ctx.toolchains[Label("@rules_rust//rust/rust_analyzer:toolchain_type")]
+
+    if not rust_analyzer_toolchain.rustc_srcs:
         fail(
-            "Current Rust toolchain doesn't contain rustc sources in `rustc_srcs` attribute.",
-            "These are needed by rust analyzer.",
-            "If you are using the default Rust toolchain, add `rust_repositories(include_rustc_srcs = True, ...).` to your WORKSPACE file.",
+            "Current Rust-Analyzer toolchain doesn't contain rustc sources in `rustc_srcs` attribute.",
+            "These are needed by rust-analyzer. If you are using the default Rust toolchain, add `rust_repositories(include_rustc_srcs = True, ...).` to your WORKSPACE file.",
         )
-    sysroot_src = rust_toolchain.rustc_srcs.label.package + "/library"
-    if rust_toolchain.rustc_srcs.label.workspace_root:
-        sysroot_src = _exec_root_tmpl + rust_toolchain.rustc_srcs.label.workspace_root + "/" + sysroot_src
+
+    rustc_srcs = rust_analyzer_toolchain.rustc_srcs
+
+    sysroot_src = rustc_srcs.label.package + "/library"
+    if rustc_srcs.label.workspace_root:
+        sysroot_src = _OUTPUT_BASE_TEMPLATE + rustc_srcs.label.workspace_root + "/" + sysroot_src
 
     sysroot_src_file = ctx.actions.declare_file(ctx.label.name + ".rust_analyzer_sysroot_src")
     ctx.actions.write(
@@ -214,27 +248,12 @@
 
 rust_analyzer_detect_sysroot = rule(
     implementation = _rust_analyzer_detect_sysroot_impl,
-    toolchains = ["@rules_rust//rust:toolchain"],
+    toolchains = [
+        "@rules_rust//rust:toolchain_type",
+        "@rules_rust//rust/rust_analyzer:toolchain_type",
+    ],
     incompatible_use_toolchain_transition = True,
     doc = dedent("""\
         Detect the sysroot and store in a file for use by the gen_rust_project tool.
     """),
 )
-
-def _rust_analyzer_impl(_ctx):
-    pass
-
-rust_analyzer = rule(
-    attrs = {
-        "targets": attr.label_list(
-            aspects = [rust_analyzer_aspect],
-            doc = "List of all targets to be included in the index",
-        ),
-    },
-    implementation = _rust_analyzer_impl,
-    toolchains = [str(Label("//rust:toolchain"))],
-    incompatible_use_toolchain_transition = True,
-    doc = dedent("""\
-        Deprecated: gen_rust_project can now create a rust-project.json without a rust_analyzer rule.
-    """),
-)
diff --git a/third_party/rules_rust/rust/private/rustc.bzl b/third_party/rules_rust/rust/private/rustc.bzl
index fc7c5f6..490bfa1 100644
--- a/third_party/rules_rust/rust/private/rustc.bzl
+++ b/third_party/rules_rust/rust/private/rustc.bzl
@@ -27,7 +27,8 @@
     "expand_dict_value_locations",
     "expand_list_element_locations",
     "find_cc_toolchain",
-    "get_lib_name",
+    "get_lib_name_default",
+    "get_lib_name_for_windows",
     "get_preferred_artifact",
     "is_exec_configuration",
     "make_static_lib_symlink",
@@ -61,6 +62,34 @@
     fields = {"extra_exec_rustc_flags": "List[string] Extra flags to pass to rustc in exec configuration"},
 )
 
+IsProcMacroDepInfo = provider(
+    doc = "Records if this is a transitive dependency of a proc-macro.",
+    fields = {"is_proc_macro_dep": "Boolean"},
+)
+
+def _is_proc_macro_dep_impl(ctx):
+    return IsProcMacroDepInfo(is_proc_macro_dep = ctx.build_setting_value)
+
+is_proc_macro_dep = rule(
+    doc = "Records if this is a transitive dependency of a proc-macro.",
+    implementation = _is_proc_macro_dep_impl,
+    build_setting = config.bool(flag = True),
+)
+
+IsProcMacroDepEnabledInfo = provider(
+    doc = "Enables the feature to record if a library is a transitive dependency of a proc-macro.",
+    fields = {"enabled": "Boolean"},
+)
+
+def _is_proc_macro_dep_enabled_impl(ctx):
+    return IsProcMacroDepEnabledInfo(enabled = ctx.build_setting_value)
+
+is_proc_macro_dep_enabled = rule(
+    doc = "Enables the feature to record if a library is a transitive dependency of a proc-macro.",
+    implementation = _is_proc_macro_dep_enabled_impl,
+    build_setting = config.bool(flag = True),
+)
+
 def _get_rustc_env(attr, toolchain, crate_name):
     """Gathers rustc environment variables
 
@@ -78,7 +107,7 @@
         patch, pre = patch.split("-", 1)
     else:
         pre = ""
-    return {
+    result = {
         "CARGO_CFG_TARGET_ARCH": toolchain.target_arch,
         "CARGO_CFG_TARGET_OS": toolchain.os,
         "CARGO_CRATE_NAME": crate_name,
@@ -92,6 +121,12 @@
         "CARGO_PKG_VERSION_PATCH": patch,
         "CARGO_PKG_VERSION_PRE": pre,
     }
+    if hasattr(attr, "_is_proc_macro_dep_enabled") and attr._is_proc_macro_dep_enabled[IsProcMacroDepEnabledInfo].enabled:
+        is_proc_macro_dep = "0"
+        if hasattr(attr, "_is_proc_macro_dep") and attr._is_proc_macro_dep[IsProcMacroDepInfo].is_proc_macro_dep:
+            is_proc_macro_dep = "1"
+        result["BAZEL_RULES_RUST_IS_PROC_MACRO_DEP"] = is_proc_macro_dep
+    return result
 
 def get_compilation_mode_opts(ctx, toolchain):
     """Gathers rustc flags for the current compilation mode (opt/debug)
@@ -119,12 +154,26 @@
             has_grep_includes)
 
 def _should_use_pic(cc_toolchain, feature_configuration, crate_type):
-    if crate_type in ("cdylib" or "dylib"):
+    """Whether or not [PIC][pic] should be enabled
+
+    [pic]: https://en.wikipedia.org/wiki/Position-independent_code
+
+    Args:
+        cc_toolchain (CcToolchainInfo): The current `cc_toolchain`.
+        feature_configuration (FeatureConfiguration): Feature configuration to be queried.
+        crate_type (str): A Rust target's crate type.
+
+    Returns:
+        bool: Whether or not [PIC][pic] should be enabled.
+    """
+    if crate_type in ("cdylib", "dylib"):
         return cc_toolchain.needs_pic_for_dynamic_libraries(feature_configuration = feature_configuration)
     return False
 
+def _is_proc_macro(crate_info):
+    return "proc-macro" in (crate_info.type, crate_info.wrapped_crate_type)
+
 def collect_deps(
-        ctx,
         deps,
         proc_macro_deps,
         aliases,
@@ -152,6 +201,7 @@
     build_info = None
     linkstamps = []
     transitive_crate_outputs = []
+    transitive_metadata_outputs = []
 
     aliases = {k.label: v for k, v in aliases.items()}
     for dep in depset(transitive = [deps, proc_macro_deps]).to_list():
@@ -174,16 +224,42 @@
                 dep = crate_info,
             ))
 
-            transitive_crates.append(depset([crate_info], transitive = [dep_info.transitive_crates]))
+            transitive_crates.append(
+                depset(
+                    [crate_info],
+                    transitive = [] if _is_proc_macro(crate_info) else [dep_info.transitive_crates],
+                ),
+            )
+
+            # If this dependency produces metadata, add it to the metadata outputs.
+            # If it doesn't (for example a custom library that exports crate_info),
+            # we depend on crate_info.output.
+            depend_on = crate_info.metadata
+            if not crate_info.metadata:
+                depend_on = crate_info.output
+
+            # If this dependency is a proc_macro, it still can be used for lib crates
+            # that produce metadata.
+            # In that case, we don't depend on its metadata dependencies.
+            transitive_metadata_outputs.append(
+                depset(
+                    [depend_on],
+                    transitive = [] if _is_proc_macro(crate_info) else [dep_info.transitive_metadata_outputs],
+                ),
+            )
+
             transitive_crate_outputs.append(
                 depset(
                     [crate_info.output],
-                    transitive = [dep_info.transitive_crate_outputs],
+                    transitive = [] if _is_proc_macro(crate_info) else [dep_info.transitive_crate_outputs],
                 ),
             )
-            transitive_noncrates.append(dep_info.transitive_noncrates)
+
+            if "proc-macro" not in [crate_info.type, crate_info.wrapped_crate_type]:
+                transitive_noncrates.append(dep_info.transitive_noncrates)
+                transitive_link_search_paths.append(dep_info.link_search_path_files)
+
             transitive_build_infos.append(dep_info.transitive_build_infos)
-            transitive_link_search_paths.append(dep_info.link_search_path_files)
 
         elif cc_info:
             # This dependency is a cc_library
@@ -201,21 +277,6 @@
 
     transitive_crates_depset = depset(transitive = transitive_crates)
 
-    dep_env = None
-    dep_env_files = list(ctx.files.dep_env_files)
-    if build_info:
-        if build_info.dep_env:
-            dep_env_files.append(build_info.dep_env)
-    if len(dep_env_files) > 1:
-        dep_env = ctx.actions.declare_file("_depenv/" + crate_info.output.basename)
-        ctx.actions.run_shell(
-            outputs = [dep_env],
-            inputs = dep_env_files,
-            cmd = ["cat"] + [f.path for f in dep_env_files] + [">", dep_env.path],
-        )
-    elif dep_env_files:
-        dep_env = dep_env_files[0]
-
     return (
         rust_common.dep_info(
             direct_crates = depset(direct_crates),
@@ -225,9 +286,10 @@
                 order = "topological",  # dylib link flag ordering matters.
             ),
             transitive_crate_outputs = depset(transitive = transitive_crate_outputs),
+            transitive_metadata_outputs = depset(transitive = transitive_metadata_outputs),
             transitive_build_infos = depset(transitive = transitive_build_infos),
             link_search_path_files = depset(transitive = transitive_link_search_paths),
-            dep_env = dep_env,
+            dep_env = build_info.dep_env if build_info else None,
         ),
         build_info,
         depset(transitive = linkstamps),
@@ -364,7 +426,7 @@
 
     # Take the absolute value of hash() since it could be negative.
     path_hash = abs(hash(lib.path))
-    lib_name = get_lib_name(lib)
+    lib_name = get_lib_name_for_windows(lib) if toolchain.os.startswith("windows") else get_lib_name_default(lib)
 
     prefix = "lib"
     extension = ".a"
@@ -427,7 +489,7 @@
             if _is_dylib(lib):
                 continue
             artifact = get_preferred_artifact(lib, use_pic)
-            name = get_lib_name(artifact)
+            name = get_lib_name_for_windows(artifact) if toolchain.os.startswith("windows") else get_lib_name_default(artifact)
 
             # On Linux-like platforms, normally library base names start with
             # `lib`, following the pattern `lib[name].(a|lo)` and we pass
@@ -461,6 +523,28 @@
             visited_libs[name] = artifact
     return ambiguous_libs
 
+def _depend_on_metadata(crate_info, force_depend_on_objects):
+    """Determines if we can depend on metadata for this crate.
+
+    By default (when pipelining is disabled or when the crate type needs to link against
+    objects) we depend on the set of object files (.rlib).
+    When pipelining is enabled and the crate type supports depending on metadata,
+    we depend on metadata files only (.rmeta).
+    In some rare cases, even if both of those conditions are true, we still want to
+    depend on objects. This is what force_depend_on_objects is.
+
+    Args:
+        crate_info (CrateInfo): The Crate to determine this for.
+        force_depend_on_objects (bool): if set we will not depend on metadata.
+
+    Returns:
+        Whether we can depend on metadata for this crate.
+    """
+    if force_depend_on_objects:
+        return False
+
+    return crate_info.type in ("rlib", "lib")
+
 def collect_inputs(
         ctx,
         file,
@@ -472,7 +556,9 @@
         crate_info,
         dep_info,
         build_info,
-        stamp = False):
+        stamp = False,
+        force_depend_on_objects = False,
+        experimental_use_cc_common_link = False):
     """Gather's the inputs and required input information for a rustc action
 
     Args:
@@ -488,6 +574,10 @@
         build_info (BuildInfo): The target Crate's build settings.
         stamp (bool, optional): Whether or not workspace status stamping is enabled. For more details see
             https://docs.bazel.build/versions/main/user-manual.html#flag--stamp
+        force_depend_on_objects (bool, optional): Forces dependencies of this rule to be objects rather than
+            metadata, even for libraries. This is used in rustdoc tests.
+        experimental_use_cc_common_link (bool, optional): Whether rules_rust uses cc_common.link to link
+	    rust binaries.
 
     Returns:
         tuple: A tuple: A tuple of the following items:
@@ -528,6 +618,10 @@
     # change.
     linkstamp_outs = []
 
+    transitive_crate_outputs = dep_info.transitive_crate_outputs
+    if _depend_on_metadata(crate_info, force_depend_on_objects):
+        transitive_crate_outputs = dep_info.transitive_metadata_outputs
+
     nolinkstamp_compile_inputs = depset(
         getattr(files, "data", []) +
         ([build_info.rustc_env, build_info.flags] if build_info else []) +
@@ -536,14 +630,16 @@
         transitive = [
             linker_depset,
             crate_info.srcs,
-            dep_info.transitive_crate_outputs,
+            transitive_crate_outputs,
             depset(additional_transitive_inputs),
             crate_info.compile_data,
             toolchain.all_files,
         ],
     )
 
-    if crate_info.type in ("bin", "cdylib"):
+    # Register linkstamps when linking with rustc (when linking with
+    # cc_common.link linkstamps are handled by cc_common.link itself).
+    if not experimental_use_cc_common_link and crate_info.type in ("bin", "cdylib"):
         # There is no other way to register an action for each member of a depset than
         # flattening the depset as of 2021-10-12. Luckily, usually there is only one linkstamp
         # in a build, and we only flatten the list on binary targets that perform transitive linking,
@@ -571,8 +667,8 @@
                 output_replacement = crate_info.output.path,
             )
 
-    # If stamping is enabled include the volatile status info file
-    stamp_info = [ctx.version_file] if stamp else []
+    # If stamping is enabled include the volatile and stable status info file
+    stamp_info = [ctx.version_file, ctx.info_file] if stamp else []
 
     compile_inputs = depset(
         linkstamp_outs + stamp_info,
@@ -581,7 +677,9 @@
         ],
     )
 
-    build_env_files = getattr(files, "rustc_env_files", []) + crate_info.rustc_env_files
+    # For backwards compatibility, we also check the value of the `rustc_env_files` attribute when
+    # `crate_info.rustc_env_files` is not populated.
+    build_env_files = crate_info.rustc_env_files if crate_info.rustc_env_files else getattr(files, "rustc_env_files", [])
     compile_inputs, out_dir, build_env_file, build_flags_files = _process_build_scripts(build_info, dep_info, compile_inputs)
     if build_env_file:
         build_env_files = [f for f in build_env_files] + [build_env_file]
@@ -610,7 +708,10 @@
         force_all_deps_direct = False,
         force_link = False,
         stamp = False,
-        remap_path_prefix = "."):
+        remap_path_prefix = ".",
+        use_json_output = False,
+        build_metadata = False,
+        force_depend_on_objects = False):
     """Builds an Args object containing common rustc flags
 
     Args:
@@ -637,6 +738,9 @@
         stamp (bool, optional): Whether or not workspace status stamping is enabled. For more details see
             https://docs.bazel.build/versions/main/user-manual.html#flag--stamp
         remap_path_prefix (str, optional): A value used to remap `${pwd}` to. If set to a falsey value, no prefix will be set.
+        use_json_output (bool): Have rustc emit json and process_wrapper parse json messages to output rendered output.
+        build_metadata (bool): Generate CLI arguments for building *only* .rmeta files. This requires use_json_output.
+        force_depend_on_objects (bool): Force using `.rlib` object files instead of metadata (`.rmeta`) files even if they are available.
 
     Returns:
         tuple: A tuple of the following items
@@ -648,6 +752,9 @@
                     This is to be passed to the `arguments` parameter of actions
             - (dict): Common rustc environment variables
     """
+    if build_metadata and not use_json_output:
+        fail("build_metadata requires parse_json_output")
+
     output_dir = getattr(crate_info.output, "dirname", None)
     linker_script = getattr(file, "linker_script", None)
 
@@ -678,6 +785,7 @@
     # If stamping is enabled, enable the functionality in the process wrapper
     if stamp:
         process_wrapper_flags.add("--volatile-status-file", ctx.version_file)
+        process_wrapper_flags.add("--stable-status-file", ctx.info_file)
 
     # Both ctx.label.workspace_root and ctx.label.package are relative paths
     # and either can be empty strings. Avoid trailing/double slashes in the path.
@@ -716,15 +824,50 @@
     rustc_flags.add(crate_info.root)
     rustc_flags.add("--crate-name=" + crate_info.name)
     rustc_flags.add("--crate-type=" + crate_info.type)
-    if hasattr(attr, "_error_format"):
-        rustc_flags.add("--error-format=" + attr._error_format[ErrorFormatInfo].error_format)
 
-    # Mangle symbols to disambiguate crates with the same name
-    extra_filename = "-" + output_hash if output_hash else ""
-    rustc_flags.add("--codegen=metadata=" + extra_filename)
+    error_format = "human"
+    if hasattr(attr, "_error_format"):
+        error_format = attr._error_format[ErrorFormatInfo].error_format
+
+    if use_json_output:
+        # If --error-format was set to json, we just pass the output through
+        # Otherwise process_wrapper uses the "rendered" field.
+        process_wrapper_flags.add("--rustc-output-format", "json" if error_format == "json" else "rendered")
+
+        # Configure rustc json output by adding artifact notifications.
+        # These will always be filtered out by process_wrapper and will be use to terminate
+        # rustc when appropriate.
+        json = ["artifacts"]
+        if error_format == "short":
+            json.append("diagnostic-short")
+        elif error_format == "human" and toolchain.os != "windows":
+            # If the os is not windows, we can get colorized output.
+            json.append("diagnostic-rendered-ansi")
+
+        rustc_flags.add("--json=" + ",".join(json))
+
+        error_format = "json"
+
+    if build_metadata:
+        # Configure process_wrapper to terminate rustc when metadata are emitted
+        process_wrapper_flags.add("--rustc-quit-on-rmeta", "true")
+
+    rustc_flags.add("--error-format=" + error_format)
+
+    # Mangle symbols to disambiguate crates with the same name. This could
+    # happen only for non-final artifacts where we compute an output_hash,
+    # e.g., rust_library.
+    #
+    # For "final" artifacts and ones intended for distribution outside of
+    # Bazel, such as rust_binary, rust_static_library and rust_shared_library,
+    # where output_hash is None we don't need to add these flags.
+    if output_hash:
+        extra_filename = "-" + output_hash
+        rustc_flags.add("--codegen=metadata=" + extra_filename)
+        rustc_flags.add("--codegen=extra-filename=" + extra_filename)
+
     if output_dir:
         rustc_flags.add("--out-dir=" + output_dir)
-    rustc_flags.add("--codegen=extra-filename=" + extra_filename)
 
     compilation_mode = get_compilation_mode_opts(ctx, toolchain)
     rustc_flags.add("--codegen=opt-level=" + compilation_mode.opt_level)
@@ -736,7 +879,9 @@
 
     if emit:
         rustc_flags.add("--emit=" + ",".join(emit_with_paths))
-    rustc_flags.add("--color=always")
+    if error_format != "json":
+        # Color is not compatible with json output.
+        rustc_flags.add("--color=always")
     rustc_flags.add("--target=" + toolchain.target_flag_value)
     if hasattr(attr, "crate_features"):
         rustc_flags.add_all(getattr(attr, "crate_features"), before_each = "--cfg", format_each = 'feature="%s"')
@@ -779,15 +924,19 @@
 
         _add_native_link_flags(rustc_flags, dep_info, linkstamp_outs, ambiguous_libs, crate_info.type, toolchain, cc_toolchain, feature_configuration)
 
-    # These always need to be added, even if not linking this crate.
-    add_crate_link_flags(rustc_flags, dep_info, force_all_deps_direct)
+    use_metadata = _depend_on_metadata(crate_info, force_depend_on_objects)
 
-    needs_extern_proc_macro_flag = "proc-macro" in [crate_info.type, crate_info.wrapped_crate_type] and \
-                                   crate_info.edition != "2015"
+    # These always need to be added, even if not linking this crate.
+    add_crate_link_flags(rustc_flags, dep_info, force_all_deps_direct, use_metadata)
+
+    needs_extern_proc_macro_flag = _is_proc_macro(crate_info) and crate_info.edition != "2015"
     if needs_extern_proc_macro_flag:
         rustc_flags.add("--extern")
         rustc_flags.add("proc_macro")
 
+    if toolchain.llvm_cov and ctx.configuration.coverage_enabled:
+        rustc_flags.add("--codegen=instrument-coverage")
+
     # Make bin crate data deps available to tests.
     for data in getattr(attr, "data", []):
         if rust_common.crate_info in data:
@@ -797,6 +946,9 @@
                 env_basename = dep_crate_info.output.basename[:-(1 + len(dep_crate_info.output.extension))] if len(dep_crate_info.output.extension) > 0 else dep_crate_info.output.basename
                 env["CARGO_BIN_EXE_" + env_basename] = dep_crate_info.output.short_path
 
+    # Add environment variables from the Rust toolchain.
+    env.update(toolchain.env)
+
     # Update environment with user provided variables.
     env.update(expand_dict_value_locations(
         ctx,
@@ -814,9 +966,15 @@
     if hasattr(ctx.attr, "_extra_rustc_flags") and not is_exec_configuration(ctx):
         rustc_flags.add_all(ctx.attr._extra_rustc_flags[ExtraRustcFlagsInfo].extra_rustc_flags)
 
+    if hasattr(ctx.attr, "_extra_rustc_flag") and not is_exec_configuration(ctx):
+        rustc_flags.add_all(ctx.attr._extra_rustc_flag[ExtraRustcFlagsInfo].extra_rustc_flags)
+
     if hasattr(ctx.attr, "_extra_exec_rustc_flags") and is_exec_configuration(ctx):
         rustc_flags.add_all(ctx.attr._extra_exec_rustc_flags[ExtraExecRustcFlagsInfo].extra_exec_rustc_flags)
 
+    if hasattr(ctx.attr, "_extra_exec_rustc_flag") and is_exec_configuration(ctx):
+        rustc_flags.add_all(ctx.attr._extra_exec_rustc_flag[ExtraExecRustcFlagsInfo].extra_exec_rustc_flags)
+
     # Create a struct which keeps the arguments separate so each may be tuned or
     # replaced where necessary
     args = struct(
@@ -835,7 +993,6 @@
         crate_info,
         output_hash = None,
         rust_flags = [],
-        dep_env_files = [],
         force_all_deps_direct = False):
     """Create and run a rustc compile action based on the current rule's attributes
 
@@ -855,10 +1012,24 @@
             - (DepInfo): The transitive dependencies of this crate.
             - (DefaultInfo): The output file for this crate, and its runfiles.
     """
+    build_metadata = getattr(crate_info, "metadata", None)
+
     cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
 
+    # Determine whether to use cc_common.link:
+    #  * either if experimental_use_cc_common_link is 1,
+    #  * or if experimental_use_cc_common_link is -1 and
+    #    the toolchain experimental_use_cc_common_link is true.
+    experimental_use_cc_common_link = False
+    if hasattr(ctx.attr, "experimental_use_cc_common_link"):
+        if ctx.attr.experimental_use_cc_common_link == 0:
+            experimental_use_cc_common_link = False
+        elif ctx.attr.experimental_use_cc_common_link == 1:
+            experimental_use_cc_common_link = True
+        elif ctx.attr.experimental_use_cc_common_link == -1:
+            experimental_use_cc_common_link = toolchain._experimental_use_cc_common_link
+
     dep_info, build_info, linkstamps = collect_deps(
-        ctx = ctx,
         deps = crate_info.deps,
         proc_macro_deps = crate_info.proc_macro_deps,
         aliases = crate_info.aliases,
@@ -883,8 +1054,23 @@
         dep_info = dep_info,
         build_info = build_info,
         stamp = stamp,
+        experimental_use_cc_common_link = experimental_use_cc_common_link,
     )
 
+    # The types of rustc outputs to emit.
+    # If we build metadata, we need to keep the command line of the two invocations
+    # (rlib and rmeta) as similar as possible, otherwise rustc rejects the rmeta as
+    # a candidate.
+    # Because of that we need to add emit=metadata to both the rlib and rmeta invocation.
+    #
+    # When cc_common linking is enabled, emit a `.o` file, which is later
+    # passed to the cc_common.link action.
+    emit = ["dep-info", "link"]
+    if build_metadata:
+        emit.append("metadata")
+    if experimental_use_cc_common_link:
+        emit = ["obj"]
+
     args, env_from_args = construct_arguments(
         ctx = ctx,
         attr = attr,
@@ -892,6 +1078,7 @@
         toolchain = toolchain,
         tool_path = toolchain.rustc.path,
         cc_toolchain = cc_toolchain,
+        emit = emit,
         feature_configuration = feature_configuration,
         crate_info = crate_info,
         dep_info = dep_info,
@@ -904,8 +1091,35 @@
         build_flags_files = build_flags_files,
         force_all_deps_direct = force_all_deps_direct,
         stamp = stamp,
+        use_json_output = bool(build_metadata),
     )
 
+    args_metadata = None
+    if build_metadata:
+        args_metadata, _ = construct_arguments(
+            ctx = ctx,
+            attr = attr,
+            file = ctx.file,
+            toolchain = toolchain,
+            tool_path = toolchain.rustc.path,
+            cc_toolchain = cc_toolchain,
+            emit = emit,
+            feature_configuration = feature_configuration,
+            crate_info = crate_info,
+            dep_info = dep_info,
+            linkstamp_outs = linkstamp_outs,
+            ambiguous_libs = ambiguous_libs,
+            output_hash = output_hash,
+            rust_flags = rust_flags,
+            out_dir = out_dir,
+            build_env_files = build_env_files,
+            build_flags_files = build_flags_files,
+            force_all_deps_direct = force_all_deps_direct,
+            stamp = stamp,
+            use_json_output = True,
+            build_metadata = True,
+        )
+
     env = dict(ctx.configuration.default_shell_env)
     env.update(env_from_args)
 
@@ -914,15 +1128,25 @@
     else:
         formatted_version = ""
 
+    # Declares the outputs of the rustc compile action.
+    # By default this is the binary output; if cc_common.link is used, this is
+    # the main `.o` file (`output_o` below).
     outputs = [crate_info.output]
 
+    # The `.o` output file, only used for linking via cc_common.link.
+    output_o = None
+    if experimental_use_cc_common_link:
+        obj_ext = ".o"
+        output_o = ctx.actions.declare_file(crate_info.name + obj_ext, sibling = crate_info.output)
+        outputs = [output_o]
+
     # For a cdylib that might be added as a dependency to a cc_* target on Windows, it is important to include the
     # interface library that rustc generates in the output files.
     interface_library = None
     if toolchain.os == "windows" and crate_info.type == "cdylib":
         # Rustc generates the import library with a `.dll.lib` extension rather than the usual `.lib` one that msvc
         # expects (see https://github.com/rust-lang/rust/pull/29520 for more context).
-        interface_library = ctx.actions.declare_file(crate_info.output.basename + ".lib")
+        interface_library = ctx.actions.declare_file(crate_info.output.basename + ".lib", sibling = crate_info.output)
         outputs.append(interface_library)
 
     # The action might generate extra output that we don't want to include in the `DefaultInfo` files.
@@ -934,14 +1158,13 @@
     dsym_folder = None
     if crate_info.type in ("cdylib", "bin") and not crate_info.is_test:
         if toolchain.os == "windows":
-            pdb_file = ctx.actions.declare_file(crate_info.output.basename[:-len(crate_info.output.extension)] + "pdb")
+            pdb_file = ctx.actions.declare_file(crate_info.output.basename[:-len(crate_info.output.extension)] + "pdb", sibling = crate_info.output)
             action_outputs.append(pdb_file)
         elif toolchain.os == "darwin":
-            dsym_folder = ctx.actions.declare_directory(crate_info.output.basename + ".dSYM")
+            dsym_folder = ctx.actions.declare_directory(crate_info.output.basename + ".dSYM", sibling = crate_info.output)
             action_outputs.append(dsym_folder)
 
-    # This uses startswith as on windows the basename will be process_wrapper_fake.exe.
-    if not ctx.executable._process_wrapper.basename.startswith("process_wrapper_fake"):
+    if ctx.executable._process_wrapper:
         # Run as normal
         ctx.actions.run(
             executable = ctx.executable._process_wrapper,
@@ -957,10 +1180,25 @@
                 len(crate_info.srcs.to_list()),
             ),
         )
+        if args_metadata:
+            ctx.actions.run(
+                executable = ctx.executable._process_wrapper,
+                inputs = compile_inputs,
+                outputs = [build_metadata],
+                env = env,
+                arguments = args_metadata.all,
+                mnemonic = "RustcMetadata",
+                progress_message = "Compiling Rust metadata {} {}{} ({} files)".format(
+                    crate_info.type,
+                    ctx.label.name,
+                    formatted_version,
+                    len(crate_info.srcs.to_list()),
+                ),
+            )
     else:
         # Run without process_wrapper
-        if build_env_files or build_flags_files or stamp:
-            fail("build_env_files, build_flags_files, stamp are not supported if use_process_wrapper is False")
+        if build_env_files or build_flags_files or stamp or build_metadata:
+            fail("build_env_files, build_flags_files, stamp, build_metadata are not supported when building without process_wrapper")
         ctx.actions.run(
             executable = toolchain.rustc,
             inputs = compile_inputs,
@@ -976,8 +1214,58 @@
             ),
         )
 
+    if experimental_use_cc_common_link:
+        # Wrap the main `.o` file into a compilation output suitable for
+        # cc_common.link. The main `.o` file is useful in both PIC and non-PIC
+        # modes.
+        compilation_outputs = cc_common.create_compilation_outputs(
+            objects = depset([output_o]),
+            pic_objects = depset([output_o]),
+        )
+
+        # Collect the linking contexts of the standard library and dependencies.
+        linking_contexts = [toolchain.libstd_and_allocator_ccinfo.linking_context, toolchain.stdlib_linkflags.linking_context]
+
+        for dep in crate_info.deps.to_list():
+            if dep.cc_info:
+                linking_contexts.append(dep.cc_info.linking_context)
+
+        # In the cc_common.link action we need to pass the name of the final
+        # binary (output) relative to the package of this target.
+        # We compute it by stripping the path to the package directory,
+        # which is a prefix of the path of `crate_info.output`.
+
+        # The path to the package dir, including a trailing "/".
+        package_dir = ctx.bin_dir.path + "/"
+        if ctx.label.workspace_root:
+            package_dir = package_dir + ctx.label.workspace_root + "/"
+        if ctx.label.package:
+            package_dir = package_dir + ctx.label.package + "/"
+
+        if not crate_info.output.path.startswith(package_dir):
+            fail("The package dir path {} should be a prefix of the crate_info.output.path {}", package_dir, crate_info.output.path)
+
+        output_relative_to_package = crate_info.output.path[len(package_dir):]
+
+        cc_common.link(
+            actions = ctx.actions,
+            feature_configuration = feature_configuration,
+            cc_toolchain = cc_toolchain,
+            linking_contexts = linking_contexts,
+            compilation_outputs = compilation_outputs,
+            name = output_relative_to_package,
+            grep_includes = ctx.file._grep_includes,
+            stamp = ctx.attr.stamp,
+        )
+
+        outputs = [crate_info.output]
+
+    coverage_runfiles = []
+    if toolchain.llvm_cov and ctx.configuration.coverage_enabled and crate_info.is_test:
+        coverage_runfiles = [toolchain.llvm_cov, toolchain.llvm_profdata]
+
     runfiles = ctx.runfiles(
-        files = getattr(ctx.files, "data", []),
+        files = getattr(ctx.files, "data", []) + coverage_runfiles,
         collect_data = True,
     )
 
@@ -986,15 +1274,29 @@
     out_binary = getattr(attr, "out_binary", False)
 
     providers = [
-        crate_info,
-        dep_info,
         DefaultInfo(
             # nb. This field is required for cc_library to depend on our output.
             files = depset(outputs),
             runfiles = runfiles,
             executable = crate_info.output if crate_info.type == "bin" or crate_info.is_test or out_binary else None,
         ),
+        coverage_common.instrumented_files_info(
+            ctx,
+            dependency_attributes = ["deps", "crate"],
+            extensions = ["rs"],
+            source_attributes = ["srcs"],
+        ),
     ]
+
+    if crate_info.type in ["staticlib", "cdylib"]:
+        # These rules are not supposed to be depended on by other rust targets, and
+        # as such they shouldn't provide a CrateInfo. However, one may still want to
+        # write a rust_test for them, so we provide the CrateInfo wrapped in a provider
+        # that rust_test understands.
+        providers.extend([rust_common.test_crate_info(crate = crate_info), dep_info])
+    else:
+        providers.extend([crate_info, dep_info])
+
     if toolchain.target_arch != "wasm32":
         providers += establish_cc_info(ctx, attr, crate_info, toolchain, cc_toolchain, feature_configuration, interface_library)
     if pdb_file:
@@ -1007,6 +1309,21 @@
 def _is_dylib(dep):
     return not bool(dep.static_library or dep.pic_static_library)
 
+def _collect_nonstatic_linker_inputs(cc_info):
+    shared_linker_inputs = []
+    for linker_input in cc_info.linking_context.linker_inputs.to_list():
+        dylibs = [
+            lib
+            for lib in linker_input.libraries
+            if _is_dylib(lib)
+        ]
+        if dylibs:
+            shared_linker_inputs.append(cc_common.create_linker_input(
+                owner = linker_input.owner,
+                libraries = depset(dylibs),
+            ))
+    return shared_linker_inputs
+
 def establish_cc_info(ctx, attr, crate_info, toolchain, cc_toolchain, feature_configuration, interface_library):
     """If the produced crate is suitable yield a CcInfo to allow for interop with cc rules
 
@@ -1085,9 +1402,20 @@
         CcInfo(linking_context = linking_context),
         toolchain.stdlib_linkflags,
     ]
+
     for dep in getattr(attr, "deps", []):
         if CcInfo in dep:
-            cc_infos.append(dep[CcInfo])
+            # A Rust staticlib or shared library doesn't need to propagate linker inputs
+            # of its dependencies, except for shared libraries.
+            if crate_info.type in ["cdylib", "staticlib"]:
+                shared_linker_inputs = _collect_nonstatic_linker_inputs(dep[CcInfo])
+                if shared_linker_inputs:
+                    linking_context = cc_common.create_linking_context(
+                        linker_inputs = depset(shared_linker_inputs),
+                    )
+                    cc_infos.append(CcInfo(linking_context = linking_context))
+            else:
+                cc_infos.append(dep[CcInfo])
 
     if crate_info.type in ("rlib", "lib") and toolchain.libstd_and_allocator_ccinfo:
         # TODO: if we already have an rlib in our deps, we could skip this
@@ -1156,7 +1484,8 @@
     """
 
     # Windows has no rpath equivalent, so always return an empty depset.
-    if toolchain.os == "windows":
+    # Fuchsia assembles shared libraries during packaging.
+    if toolchain.os == "windows" or toolchain.os == "fuchsia":
         return depset([])
 
     dylibs = [
@@ -1198,7 +1527,7 @@
         dirs[f.dirname] = None
     return dirs.keys()
 
-def add_crate_link_flags(args, dep_info, force_all_deps_direct = False):
+def add_crate_link_flags(args, dep_info, force_all_deps_direct = False, use_metadata = False):
     """Adds link flags to an Args object reference
 
     Args:
@@ -1206,22 +1535,19 @@
         dep_info (DepInfo): The current target's dependency info
         force_all_deps_direct (bool, optional): Whether to pass the transitive rlibs with --extern
             to the commandline as opposed to -L.
+        use_metadata (bool, optional): Build command line arugments using metadata for crates that provide it.
     """
 
-    if force_all_deps_direct:
-        args.add_all(
-            depset(
-                transitive = [
-                    dep_info.direct_crates,
-                    dep_info.transitive_crates,
-                ],
-            ),
-            uniquify = True,
-            map_each = _crate_to_link_flag,
-        )
-    else:
-        # nb. Direct crates are linked via --extern regardless of their crate_type
-        args.add_all(dep_info.direct_crates, map_each = _crate_to_link_flag)
+    direct_crates = depset(
+        transitive = [
+            dep_info.direct_crates,
+            dep_info.transitive_crates,
+        ],
+    ) if force_all_deps_direct else dep_info.direct_crates
+
+    crate_to_link_flags = _crate_to_link_flag_metadata if use_metadata else _crate_to_link_flag
+    args.add_all(direct_crates, uniquify = True, map_each = crate_to_link_flags)
+
     args.add_all(
         dep_info.transitive_crates,
         map_each = _get_crate_dirname,
@@ -1229,6 +1555,29 @@
         format_each = "-Ldependency=%s",
     )
 
+def _crate_to_link_flag_metadata(crate):
+    """A helper macro used by `add_crate_link_flags` for adding crate link flags to a Arg object
+
+    Args:
+        crate (CrateInfo|AliasableDepInfo): A CrateInfo or an AliasableDepInfo provider
+
+    Returns:
+        list: Link flags for the given provider
+    """
+
+    # This is AliasableDepInfo, we should use the alias as a crate name
+    if hasattr(crate, "dep"):
+        name = crate.name
+        crate_info = crate.dep
+    else:
+        name = crate.name
+        crate_info = crate
+
+    lib_or_meta = crate_info.metadata
+    if not crate_info.metadata:
+        lib_or_meta = crate_info.output
+    return ["--extern={}={}".format(name, lib_or_meta.path)]
+
 def _crate_to_link_flag(crate):
     """A helper macro used by `add_crate_link_flags` for adding crate link flags to a Arg object
 
@@ -1259,13 +1608,48 @@
     """
     return crate.output.dirname
 
-def _portable_link_flags(lib, use_pic, ambiguous_libs):
+def _portable_link_flags(lib, use_pic, ambiguous_libs, get_lib_name, for_windows):
     artifact = get_preferred_artifact(lib, use_pic)
     if ambiguous_libs and artifact.path in ambiguous_libs:
         artifact = ambiguous_libs[artifact.path]
     if lib.static_library or lib.pic_static_library:
+        # To ensure appropriate linker library argument order, in the presence
+        # of both native libraries that depend on rlibs and rlibs that depend
+        # on native libraries, we use an approach where we "sandwich" the
+        # rust libraries between two similar sections of all of native
+        # libraries:
+        # n1 n2 ... r1 r2 ... n1 n2 ...
+        # A         B         C
+        # This way any dependency from a native library to a rust library
+        # is resolved from A to B, and any dependency from a rust library to
+        # a native one is resolved from B to C.
+        # The question of resolving dependencies from a native library from A
+        # to any rust library is addressed in a different place, where we
+        # create symlinks to the rlibs, pretending they are native libraries,
+        # and adding references to these symlinks in the native section A.
+        # We rely in the behavior of -Clink-arg to put the linker args
+        # at the end of the linker invocation constructed by rustc.
+
+        # We skip adding `-Clink-arg=-l` for libstd and libtest from the standard library, as
+        # these two libraries are present both as an `.rlib` and a `.so` format.
+        # On linux, Rustc adds a -Bdynamic to the linker command line before the libraries specified
+        # with `-Clink-arg`, which leads to us linking against the `.so`s but not putting the
+        # corresponding value to the runtime library search paths, which results in a
+        # "cannot open shared object file: No such file or directory" error at exectuion time.
+        # We can fix this by adding a `-Clink-arg=-Bstatic` on linux, but we don't have that option for
+        # macos. The proper solution for this issue would be to remove `libtest-{hash}.so` and `libstd-{hash}.so`
+        # from the toolchain. However, it is not enough to change the toolchain's `rust_std_{...}` filegroups
+        # here: https://github.com/bazelbuild/rules_rust/blob/a9d5d894ad801002d007b858efd154e503796b9f/rust/private/repository_utils.bzl#L144
+        # because rustc manages to escape the sandbox and still finds them at linking time.
+        # We need to modify the repository rules to erase those files completely.
+        if "lib/rustlib" in artifact.path and (
+            artifact.basename.startswith("libtest-") or artifact.basename.startswith("libstd-") or
+            artifact.basename.startswith("test-") or artifact.basename.startswith("std-")
+        ):
+            return ["-lstatic=%s" % get_lib_name(artifact)]
         return [
             "-lstatic=%s" % get_lib_name(artifact),
+            "-Clink-arg=-l%s" % (get_lib_name(artifact) if not for_windows else artifact.basename),
         ]
     elif _is_dylib(lib):
         return [
@@ -1281,7 +1665,7 @@
         if lib.alwayslink:
             ret.extend(["-C", "link-arg=/WHOLEARCHIVE:%s" % get_preferred_artifact(lib, use_pic).path])
         else:
-            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs))
+            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs, get_lib_name_for_windows, for_windows = True))
     return ret
 
 def _make_link_flags_darwin(linker_input_and_use_pic_and_ambiguous_libs):
@@ -1294,7 +1678,7 @@
                 ("link-arg=-Wl,-force_load,%s" % get_preferred_artifact(lib, use_pic).path),
             ])
         else:
-            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs))
+            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs, get_lib_name_default, for_windows = False))
     return ret
 
 def _make_link_flags_default(linker_input_and_use_pic_and_ambiguous_libs):
@@ -1311,7 +1695,7 @@
                 "link-arg=-Wl,--no-whole-archive",
             ])
         else:
-            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs))
+            ret.extend(_portable_link_flags(lib, use_pic, ambiguous_libs, get_lib_name_default, for_windows = False))
     return ret
 
 def _libraries_dirnames(linker_input_and_use_pic_and_ambiguous_libs):
@@ -1332,7 +1716,6 @@
         toolchain (rust_toolchain): The current `rust_toolchain`
         cc_toolchain (CcToolchainInfo): The current `cc_toolchain`
         feature_configuration (FeatureConfiguration): feature configuration to use with cc_toolchain
-
     """
     if crate_type in ["lib", "rlib"]:
         return
@@ -1341,10 +1724,13 @@
 
     if toolchain.os == "windows":
         make_link_flags = _make_link_flags_windows
+        get_lib_name = get_lib_name_for_windows
     elif toolchain.os.startswith("mac") or toolchain.os.startswith("darwin"):
         make_link_flags = _make_link_flags_darwin
+        get_lib_name = get_lib_name_default
     else:
         make_link_flags = _make_link_flags_default
+        get_lib_name = get_lib_name_default
 
     # TODO(hlopko): Remove depset flattening by using lambdas once we are on >=Bazel 5.0
     args_and_pic_and_ambiguous_libs = [(arg, use_pic, ambiguous_libs) for arg in dep_info.transitive_noncrates.to_list()]
@@ -1440,6 +1826,18 @@
     build_setting = config.string_list(flag = True),
 )
 
+def _extra_rustc_flag_impl(ctx):
+    return ExtraRustcFlagsInfo(extra_rustc_flags = [f for f in ctx.build_setting_value if f != ""])
+
+extra_rustc_flag = rule(
+    doc = (
+        "Add additional rustc_flag from the command line with `--@rules_rust//:extra_rustc_flag`. " +
+        "Multiple uses are accumulated and appended after the extra_rustc_flags."
+    ),
+    implementation = _extra_rustc_flag_impl,
+    build_setting = config.string(flag = True, allow_multiple = True),
+)
+
 def _extra_exec_rustc_flags_impl(ctx):
     return ExtraExecRustcFlagsInfo(extra_exec_rustc_flags = ctx.build_setting_value)
 
@@ -1452,3 +1850,15 @@
     implementation = _extra_exec_rustc_flags_impl,
     build_setting = config.string_list(flag = True),
 )
+
+def _extra_exec_rustc_flag_impl(ctx):
+    return ExtraExecRustcFlagsInfo(extra_exec_rustc_flags = [f for f in ctx.build_setting_value if f != ""])
+
+extra_exec_rustc_flag = rule(
+    doc = (
+        "Add additional rustc_flags in the exec configuration from the command line with `--@rules_rust//:extra_exec_rustc_flag`. " +
+        "Multiple uses are accumulated and appended after the extra_exec_rustc_flags."
+    ),
+    implementation = _extra_exec_rustc_flag_impl,
+    build_setting = config.string(flag = True, allow_multiple = True),
+)
diff --git a/third_party/rules_rust/rust/private/rustdoc.bzl b/third_party/rules_rust/rust/private/rustdoc.bzl
index ca91ff0..ba3a12c 100644
--- a/third_party/rules_rust/rust/private/rustdoc.bzl
+++ b/third_party/rules_rust/rust/private/rustdoc.bzl
@@ -37,6 +37,7 @@
         aliases = crate_info.aliases,
         # This crate info should have no output
         output = None,
+        metadata = None,
         edition = crate_info.edition,
         rustc_env = crate_info.rustc_env,
         rustc_env_files = crate_info.rustc_env_files,
@@ -91,6 +92,8 @@
         crate_info = crate_info,
         dep_info = dep_info,
         build_info = build_info,
+        # If this is a rustdoc test, we need to depend on rlibs rather than .rmeta.
+        force_depend_on_objects = is_test,
     )
 
     # Since this crate is not actually producing the output described by the
@@ -119,6 +122,7 @@
         emit = [],
         remap_path_prefix = None,
         force_link = True,
+        force_depend_on_objects = is_test,
     )
 
     # Because rustdoc tests compile tests outside of the sandbox, the sysroot
@@ -282,9 +286,19 @@
             doc = "CSS files to include via `<link>` in a rendered Markdown file.",
             allow_files = [".css"],
         ),
+        "rustc_flags": attr.string_list(
+            doc = dedent("""\
+                List of compiler flags passed to `rustc`.
+
+                These strings are subject to Make variable expansion for predefined
+                source/output path variables like `$location`, `$execpath`, and
+                `$rootpath`. This expansion is useful if you wish to pass a generated
+                file of arguments to rustc: `@$(location //package:target)`.
+            """),
+        ),
         "_cc_toolchain": attr.label(
             doc = "In order to use find_cpp_toolchain, you must define the '_cc_toolchain' attribute on your rule or aspect.",
-            default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
         ),
         "_dir_zipper": attr.label(
             doc = "A tool that orchestrates the creation of zip archives for rustdoc outputs.",
@@ -312,7 +326,7 @@
         "rust_doc_zip": "%{name}.zip",
     },
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
diff --git a/third_party/rules_rust/rust/private/rustdoc_test.bzl b/third_party/rules_rust/rust/private/rustdoc_test.bzl
index 663c65f..525838e 100644
--- a/third_party/rules_rust/rust/private/rustdoc_test.bzl
+++ b/third_party/rules_rust/rust/private/rustdoc_test.bzl
@@ -15,10 +15,11 @@
 """Rules for performing `rustdoc --test` on Bazel built crates"""
 
 load("//rust/private:common.bzl", "rust_common")
+load("//rust/private:providers.bzl", "CrateInfo")
 load("//rust/private:rustdoc.bzl", "rustdoc_compile_action")
-load("//rust/private:utils.bzl", "dedent", "find_toolchain")
+load("//rust/private:utils.bzl", "dedent", "find_toolchain", "transform_deps")
 
-def _construct_writer_arguments(ctx, test_runner, action, crate_info):
+def _construct_writer_arguments(ctx, test_runner, opt_test_params, action, crate_info):
     """Construct arguments and environment variables specific to `rustdoc_test_writer`.
 
     This is largely solving for the fact that tests run from a runfiles directory
@@ -28,6 +29,7 @@
     Args:
         ctx (ctx): The rule's context object.
         test_runner (File): The test_runner output file declared by `rustdoc_test`.
+        opt_test_params (File): An output file we can optionally use to store params for `rustdoc`.
         action (struct): Action arguments generated by `rustdoc_compile_action`.
         crate_info (CrateInfo): The provider of the crate who's docs are being tested.
 
@@ -42,6 +44,9 @@
     # Track the output path where the test writer should write the test
     writer_args.add("--output={}".format(test_runner.path))
 
+    # Track where the test writer should move "spilled" Args to
+    writer_args.add("--optional_test_params={}".format(opt_test_params.path))
+
     # Track what environment variables should be written to the test runner
     writer_args.add("--action_env=DEVELOPER_DIR")
     writer_args.add("--action_env=PATHEXT")
@@ -55,19 +60,29 @@
     # files. To ensure rustdoc can find the appropriate dependencies, the
     # file roots are identified and tracked for each dependency so it can be
     # stripped from the test runner.
+
+    # Collect and dedupe all of the file roots in a list before appending
+    # them to args to prevent generating a large amount of identical args
+    roots = []
     for dep in crate_info.deps.to_list():
         dep_crate_info = getattr(dep, "crate_info", None)
         dep_dep_info = getattr(dep, "dep_info", None)
         if dep_crate_info:
             root = dep_crate_info.output.root.path
-            writer_args.add("--strip_substring={}/".format(root))
+            if not root in roots:
+                roots.append(root)
         if dep_dep_info:
             for direct_dep in dep_dep_info.direct_crates.to_list():
                 root = direct_dep.dep.output.root.path
-                writer_args.add("--strip_substring={}/".format(root))
+                if not root in roots:
+                    roots.append(root)
             for transitive_dep in dep_dep_info.transitive_crates.to_list():
                 root = transitive_dep.output.root.path
-                writer_args.add("--strip_substring={}/".format(root))
+                if not root in roots:
+                    roots.append(root)
+
+    for root in roots:
+        writer_args.add("--strip_substring={}/".format(root))
 
     # Indicate that the rustdoc_test args are over.
     writer_args.add("--")
@@ -90,14 +105,38 @@
 
     toolchain = find_toolchain(ctx)
 
-    crate = ctx.attr.crate
-    crate_info = crate[rust_common.crate_info]
+    crate = ctx.attr.crate[rust_common.crate_info]
+    deps = transform_deps(ctx.attr.deps)
+
+    crate_info = rust_common.create_crate_info(
+        name = crate.name,
+        type = crate.type,
+        root = crate.root,
+        srcs = crate.srcs,
+        deps = depset(deps, transitive = [crate.deps]),
+        proc_macro_deps = crate.proc_macro_deps,
+        aliases = {},
+        output = crate.output,
+        edition = crate.edition,
+        rustc_env = crate.rustc_env,
+        rustc_env_files = crate.rustc_env_files,
+        is_test = True,
+        compile_data = crate.compile_data,
+        wrapped_crate_type = crate.type,
+        owner = ctx.label,
+    )
 
     if toolchain.os == "windows":
         test_runner = ctx.actions.declare_file(ctx.label.name + ".rustdoc_test.bat")
     else:
         test_runner = ctx.actions.declare_file(ctx.label.name + ".rustdoc_test.sh")
 
+    # Bazel will auto-magically spill params to a file, if they are too many for a given OSes shell
+    # (e.g. Windows ~32k, Linux ~2M). The executable script (aka test_runner) that gets generated,
+    # is run from the runfiles, which is separate from the params_file Bazel generates. To handle
+    # this case, we declare our own params file, that the test_writer will populate, if necessary
+    opt_test_params = ctx.actions.declare_file(ctx.label.name + ".rustdoc_opt_params", sibling = test_runner)
+
     # Add the current crate as an extern for the compile action
     rustdoc_flags = [
         "--extern",
@@ -118,6 +157,7 @@
     writer_args, env = _construct_writer_arguments(
         ctx = ctx,
         test_runner = test_runner,
+        opt_test_params = opt_test_params,
         action = action,
         crate_info = crate_info,
     )
@@ -127,18 +167,18 @@
 
     ctx.actions.run(
         mnemonic = "RustdocTestWriter",
-        progress_message = "Generating Rustdoc test runner for {}".format(crate.label),
+        progress_message = "Generating Rustdoc test runner for {}".format(ctx.attr.crate.label),
         executable = ctx.executable._test_writer,
         inputs = action.inputs,
         tools = tools,
         arguments = [writer_args] + action.arguments,
         env = action.env,
-        outputs = [test_runner],
+        outputs = [test_runner, opt_test_params],
     )
 
     return [DefaultInfo(
         files = depset([test_runner]),
-        runfiles = ctx.runfiles(files = tools, transitive_files = action.inputs),
+        runfiles = ctx.runfiles(files = tools + [opt_test_params], transitive_files = action.inputs),
         executable = test_runner,
     )]
 
@@ -154,13 +194,22 @@
             providers = [rust_common.crate_info],
             mandatory = True,
         ),
+        "deps": attr.label_list(
+            doc = dedent("""\
+                List of other libraries to be linked to this library target.
+
+                These can be either other `rust_library` targets or `cc_library` targets if
+                linking a native library.
+            """),
+            providers = [CrateInfo, CcInfo],
+        ),
         "_cc_toolchain": attr.label(
             doc = (
                 "In order to use find_cc_toolchain, your rule has to depend " +
                 "on C++ toolchain. See @rules_cc//cc:find_cc_toolchain.bzl " +
                 "docs for details."
             ),
-            default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
         ),
         "_process_wrapper": attr.label(
             doc = "A process wrapper for running rustdoc on all platforms",
@@ -179,7 +228,7 @@
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
         "@bazel_tools//tools/cpp:toolchain_type",
     ],
     incompatible_use_toolchain_transition = True,
diff --git a/third_party/rules_rust/rust/private/rustfmt.bzl b/third_party/rules_rust/rust/private/rustfmt.bzl
index 9c59f48..db5ef43 100644
--- a/third_party/rules_rust/rust/private/rustfmt.bzl
+++ b/third_party/rules_rust/rust/private/rustfmt.bzl
@@ -20,9 +20,17 @@
     if target.label.workspace_root.startswith("external"):
         return []
 
-    # Targets annotated with `norustfmt` will not be formatted
-    if aspect_ctx and "norustfmt" in aspect_ctx.rule.attr.tags:
-        return []
+    if aspect_ctx:
+        # Targets with specifc tags will not be formatted
+        ignore_tags = [
+            "no-format",
+            "no-rustfmt",
+            "norustfmt",
+        ]
+
+        for tag in ignore_tags:
+            if tag in aspect_ctx.rule.attr.tags:
+                return []
 
     crate_info = target[rust_common.crate_info]
 
@@ -110,8 +118,8 @@
 [cs]: https://rust-lang.github.io/rustfmt/
 
 This aspect is executed on any target which provides the `CrateInfo` provider. However
-users may tag a target with `norustfmt` to have it skipped. Additionally, generated
-source files are also ignored by this aspect.
+users may tag a target with `no-rustfmt` or `no-format` to have it skipped. Additionally,
+generated source files are also ignored by this aspect.
 """,
     attrs = {
         "_config": attr.label(
@@ -130,7 +138,7 @@
     fragments = ["cpp"],
     host_fragments = ["cpp"],
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
     ],
 )
 
@@ -138,9 +146,10 @@
     # The executable of a test target must be the output of an action in
     # the rule implementation. This file is simply a symlink to the real
     # rustfmt test runner.
+    is_windows = ctx.executable._runner.extension == ".exe"
     runner = ctx.actions.declare_file("{}{}".format(
         ctx.label.name,
-        ctx.executable._runner.extension,
+        ".exe" if is_windows else "",
     ))
 
     ctx.actions.symlink(
@@ -149,22 +158,33 @@
         is_executable = True,
     )
 
-    manifests = [target[OutputGroupInfo].rustfmt_manifest for target in ctx.attr.targets]
+    manifests = depset(transitive = [target[OutputGroupInfo].rustfmt_manifest for target in ctx.attr.targets])
     srcs = [depset(_find_rustfmtable_srcs(target)) for target in ctx.attr.targets]
 
     runfiles = ctx.runfiles(
-        transitive_files = depset(transitive = manifests + srcs),
+        transitive_files = depset(transitive = srcs + [manifests]),
     )
 
     runfiles = runfiles.merge(
         ctx.attr._runner[DefaultInfo].default_runfiles,
     )
 
-    return [DefaultInfo(
-        files = depset([runner]),
-        runfiles = runfiles,
-        executable = runner,
-    )]
+    path_env_sep = ";" if is_windows else ":"
+
+    return [
+        DefaultInfo(
+            files = depset([runner]),
+            runfiles = runfiles,
+            executable = runner,
+        ),
+        testing.TestEnvironment({
+            "RUSTFMT_MANIFESTS": path_env_sep.join([
+                manifest.short_path
+                for manifest in sorted(manifests.to_list())
+            ]),
+            "RUST_BACKTRACE": "1",
+        }),
+    ]
 
 rustfmt_test = rule(
     implementation = _rustfmt_test_impl,
@@ -184,3 +204,22 @@
     },
     test = True,
 )
+
+def _rustfmt_workspace_name_impl(ctx):
+    output = ctx.actions.declare_file(ctx.label.name)
+
+    ctx.actions.write(
+        output = output,
+        content = "RUSTFMT_WORKSPACE={}".format(
+            ctx.workspace_name,
+        ),
+    )
+
+    return [DefaultInfo(
+        files = depset([output]),
+    )]
+
+rustfmt_workspace_name = rule(
+    implementation = _rustfmt_workspace_name_impl,
+    doc = "A rule for detecting the workspace name for Rustfmt runfiles.",
+)
diff --git a/third_party/rules_rust/rust/private/toolchain_utils.bzl b/third_party/rules_rust/rust/private/toolchain_utils.bzl
index fcd4fb7..13c94ac 100644
--- a/third_party/rules_rust/rust/private/toolchain_utils.bzl
+++ b/third_party/rules_rust/rust/private/toolchain_utils.bzl
@@ -1,7 +1,7 @@
 """A module defining toolchain utilities"""
 
 def _toolchain_files_impl(ctx):
-    toolchain = ctx.toolchains[str(Label("//rust:toolchain"))]
+    toolchain = ctx.toolchains[str(Label("//rust:toolchain_type"))]
 
     runfiles = None
     if ctx.attr.tool == "cargo":
@@ -42,8 +42,6 @@
         )
     elif ctx.attr.tool == "rustc_lib":
         files = toolchain.rustc_lib
-    elif ctx.attr.tool == "rustc_srcs":
-        files = toolchain.rustc_srcs.files
     elif ctx.attr.tool == "rust_std" or ctx.attr.tool == "rust_stdlib" or ctx.attr.tool == "rust_lib":
         files = toolchain.rust_std
     else:
@@ -67,7 +65,6 @@
                 "rust_std",
                 "rust_stdlib",
                 "rustc_lib",
-                "rustc_srcs",
                 "rustc",
                 "rustdoc",
                 "rustfmt",
@@ -76,7 +73,32 @@
         ),
     },
     toolchains = [
-        str(Label("//rust:toolchain")),
+        str(Label("//rust:toolchain_type")),
+    ],
+    incompatible_use_toolchain_transition = True,
+)
+
+def _current_rust_toolchain_impl(ctx):
+    toolchain = ctx.toolchains[str(Label("@rules_rust//rust:toolchain_type"))]
+
+    return [
+        toolchain,
+        toolchain.make_variables,
+        DefaultInfo(
+            files = depset([
+                toolchain.rustc,
+                toolchain.rust_doc,
+                toolchain.rustfmt,
+                toolchain.cargo,
+            ]),
+        ),
+    ]
+
+current_rust_toolchain = rule(
+    doc = "A rule for exposing the current registered `rust_toolchain`.",
+    implementation = _current_rust_toolchain_impl,
+    toolchains = [
+        str(Label("@rules_rust//rust:toolchain_type")),
     ],
     incompatible_use_toolchain_transition = True,
 )
diff --git a/third_party/rules_rust/rust/private/transitions.bzl b/third_party/rules_rust/rust/private/transitions.bzl
index cd28efd..23336f4 100644
--- a/third_party/rules_rust/rust/private/transitions.bzl
+++ b/third_party/rules_rust/rust/private/transitions.bzl
@@ -46,63 +46,19 @@
     outputs = ["@rules_rust//rust/settings:use_real_import_macro"],
 )
 
-def _with_import_macro_bootstrapping_mode_impl(ctx):
-    target = ctx.attr.target[0]
-    return [target[rust_common.crate_info], target[rust_common.dep_info]]
+def _alias_with_import_macro_bootstrapping_mode_impl(ctx):
+    actual = ctx.attr.actual[0]
+    return [actual[rust_common.crate_info], actual[rust_common.dep_info]]
 
-with_import_macro_bootstrapping_mode = rule(
-    implementation = _with_import_macro_bootstrapping_mode_impl,
+alias_with_import_macro_bootstrapping_mode = rule(
+    implementation = _alias_with_import_macro_bootstrapping_mode_impl,
+    doc = "Alias-like rule to build the `actual` with `use_real_import_macro` setting disabled. Not to be used outside of the import macro bootstrap.",
     attrs = {
-        "target": attr.label(
+        # Using `actual` so tooling such as rust analyzer aspect traverses the target.
+        "actual": attr.label(
+            doc = "The target this alias refers to.",
             cfg = import_macro_dep_bootstrap_transition,
-            allow_single_file = True,
             mandatory = True,
-            executable = False,
-        ),
-        "_allowlist_function_transition": attr.label(
-            default = Label("//tools/allowlists/function_transition_allowlist"),
-        ),
-    },
-)
-
-def _without_process_wrapper_transition_impl(_settings, _attr):
-    """This transition allows rust_* rules to invoke rustc without process_wrapper."""
-    return {
-        "//rust/settings:use_process_wrapper": False,
-    }
-
-without_process_wrapper_transition = transition(
-    implementation = _without_process_wrapper_transition_impl,
-    inputs = [],
-    outputs = ["//rust/settings:use_process_wrapper"],
-)
-
-def _without_process_wrapper_impl(ctx):
-    executable = ctx.executable.target
-    link_name = ctx.label.name
-
-    # Append .exe if on windows
-    if executable.extension:
-        link_name = link_name + "." + executable.extension
-    link = ctx.actions.declare_file(link_name)
-    ctx.actions.symlink(
-        output = link,
-        target_file = executable,
-    )
-    return [
-        DefaultInfo(
-            executable = link,
-        ),
-    ]
-
-without_process_wrapper = rule(
-    implementation = _without_process_wrapper_impl,
-    attrs = {
-        "target": attr.label(
-            cfg = without_process_wrapper_transition,
-            allow_single_file = True,
-            mandatory = True,
-            executable = True,
         ),
         "_allowlist_function_transition": attr.label(
             default = Label("//tools/allowlists/function_transition_allowlist"),
diff --git a/third_party/rules_rust/rust/private/utils.bzl b/third_party/rules_rust/rust/private/utils.bzl
index fa7318b..583dc6e 100644
--- a/third_party/rules_rust/rust/private/utils.bzl
+++ b/third_party/rules_rust/rust/private/utils.bzl
@@ -17,6 +17,14 @@
 load("@bazel_tools//tools/cpp:toolchain_utils.bzl", find_rules_cc_toolchain = "find_cpp_toolchain")
 load(":providers.bzl", "BuildInfo", "CrateInfo", "DepInfo", "DepVariantInfo")
 
+UNSUPPORTED_FEATURES = [
+    "thin_lto",
+    "module_maps",
+    "use_header_modules",
+    "fdo_instrument",
+    "fdo_optimize",
+]
+
 def find_toolchain(ctx):
     """Finds the first rust toolchain that is configured.
 
@@ -26,7 +34,7 @@
     Returns:
         rust_toolchain: A Rust toolchain context.
     """
-    return ctx.toolchains[Label("//rust:toolchain")]
+    return ctx.toolchains[Label("//rust:toolchain_type")]
 
 def find_cc_toolchain(ctx):
     """Extracts a CcToolchain from the current target's context
@@ -43,7 +51,7 @@
         ctx = ctx,
         cc_toolchain = cc_toolchain,
         requested_features = ctx.features,
-        unsupported_features = ctx.disabled_features,
+        unsupported_features = UNSUPPORTED_FEATURES + ctx.disabled_features,
     )
     return cc_toolchain, feature_configuration
 
@@ -89,8 +97,8 @@
     path_parts = path.split("/")
     return [part for part in path_parts if part != "."]
 
-def get_lib_name(lib):
-    """Returns the name of a library artifact, eg. libabc.a -> abc
+def get_lib_name_default(lib):
+    """Returns the name of a library artifact.
 
     Args:
         lib (File): A library file
@@ -122,6 +130,44 @@
     else:
         return libname
 
+# TODO: Could we remove this function in favor of a "windows" parameter in the
+# above function? It looks like currently lambdas cannot accept local parameters
+# so the following doesn't work:
+#     args.add_all(
+#         cc_toolchain.dynamic_runtime_lib(feature_configuration = feature_configuration),
+#         map_each = lambda x: get_lib_name(x, for_windows = toolchain.os.startswith("windows)),
+#         format_each = "-ldylib=%s",
+#     )
+def get_lib_name_for_windows(lib):
+    """Returns the name of a library artifact for Windows builds.
+
+    Args:
+        lib (File): A library file
+
+    Returns:
+        str: The name of the library
+    """
+    # On macos and windows, dynamic/static libraries always end with the
+    # extension and potential versions will be before the extension, and should
+    # be part of the library name.
+    # On linux, the version usually comes after the extension.
+    # So regardless of the platform we want to find the extension and make
+    # everything left to it the library name.
+
+    # Search for the extension - starting from the right - by removing any
+    # trailing digit.
+    comps = lib.basename.split(".")
+    for comp in reversed(comps):
+        if comp.isdigit():
+            comps.pop()
+        else:
+            break
+
+    # The library name is now everything minus the extension.
+    libname = ".".join(comps[:-1])
+
+    return libname
+
 def abs(value):
     """Returns the absolute value of a number.
 
@@ -162,8 +208,10 @@
         File: Returns the first valid library type (only one is expected)
     """
     if use_pic:
+        # Order consistent with https://github.com/bazelbuild/bazel/blob/815dfdabb7df31d4e99b6fc7616ff8e2f9385d98/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingContext.java#L437.
         return (
             library_to_link.pic_static_library or
+            library_to_link.static_library or
             library_to_link.interface_library or
             library_to_link.dynamic_library
         )
@@ -176,12 +224,12 @@
         )
 
 def _expand_location(ctx, env, data):
-    """A trivial helper for `_expand_locations`
+    """A trivial helper for `expand_dict_value_locations` and `expand_list_element_locations`
 
     Args:
         ctx (ctx): The rule's context object
         env (str): The value possibly containing location macros to expand.
-        data (sequence of Targets): see `_expand_locations`
+        data (sequence of Targets): See one of the parent functions.
 
     Returns:
         string: The location-macro expanded version of the string.
@@ -189,8 +237,12 @@
     for directive in ("$(execpath ", "$(location "):
         if directive in env:
             # build script runner will expand pwd to execroot for us
-            env = env.replace(directive, "${pwd}/" + directive)
-    return ctx.expand_location(env, data)
+            env = env.replace(directive, "$${pwd}/" + directive)
+    return ctx.expand_make_variables(
+        env,
+        ctx.expand_location(env, data),
+        {},
+    )
 
 def expand_dict_value_locations(ctx, env, data):
     """Performs location-macro expansion on string values.
@@ -207,7 +259,9 @@
     as compilation happens in a separate sandbox folder, so when it comes time
     to read the file at runtime, the path is no longer valid.
 
-    See [`expand_location`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#expand_location) for detailed documentation.
+    For detailed documentation, see:
+    - [`expand_location`](https://bazel.build/rules/lib/ctx#expand_location)
+    - [`expand_make_variables`](https://bazel.build/rules/lib/ctx#expand_make_variables)
 
     Args:
         ctx (ctx): The rule's context object
@@ -228,7 +282,9 @@
     which process_wrapper and build_script_runner will expand at run time
     to the absolute path.
 
-    See [`expand_location`](https://docs.bazel.build/versions/main/skylark/lib/ctx.html#expand_location) for detailed documentation.
+    For detailed documentation, see:
+    - [`expand_location`](https://bazel.build/rules/lib/ctx#expand_location)
+    - [`expand_make_variables`](https://bazel.build/rules/lib/ctx#expand_make_variables)
 
     Args:
         ctx (ctx): The rule's context object
@@ -262,7 +318,9 @@
     Returns:
         str: The name of the crate for this target.
     """
-    return name.replace("-", "_")
+    for illegal in ("-", "/"):
+        name = name.replace(illegal, "_")
+    return name
 
 def _invalid_chars_in_crate_name(name):
     """Returns any invalid chars in the given crate name.
@@ -451,37 +509,37 @@
 # the second element is an encoding of that char suitable for use in a crate
 # name.
 _encodings = (
-    (":", "colon"),
-    ("!", "bang"),
-    ("%", "percent"),
-    ("@", "at"),
+    (":", "x"),
+    ("!", "excl"),
+    ("%", "prc"),
+    ("@", "ao"),
     ("^", "caret"),
-    ("`", "backtick"),
-    (" ", "space"),
-    ("\"", "quote"),
-    ("#", "hash"),
-    ("$", "dollar"),
-    ("&", "ampersand"),
-    ("'", "backslash"),
-    ("(", "lparen"),
-    (")", "rparen"),
-    ("*", "star"),
-    ("-", "dash"),
-    ("+", "plus"),
-    (",", "comma"),
-    (";", "semicolon"),
-    ("<", "langle"),
-    ("=", "equal"),
-    (">", "rangle"),
-    ("?", "question"),
-    ("[", "lbracket"),
-    ("]", "rbracket"),
-    ("{", "lbrace"),
-    ("|", "pipe"),
-    ("}", "rbrace"),
-    ("~", "tilde"),
-    ("/", "slash"),
-    (".", "dot"),
+    ("`", "bt"),
+    (" ", "sp"),
+    ("\"", "dq"),
+    ("#", "octo"),
+    ("$", "dllr"),
+    ("&", "amp"),
+    ("'", "sq"),
+    ("(", "lp"),
+    (")", "rp"),
+    ("*", "astr"),
+    ("-", "d"),
+    ("+", "pl"),
+    (",", "cm"),
+    (";", "sm"),
+    ("<", "la"),
+    ("=", "eq"),
+    (">", "ra"),
+    ("?", "qm"),
+    ("[", "lbk"),
+    ("]", "rbk"),
+    ("{", "lbe"),
+    ("|", "pp"),
+    ("}", "rbe"),
+    ("~", "td"),
+    ("/", "y"),
+    (".", "pd"),
 )
 
 # For each of the above encodings, we generate two substitution rules: one that
@@ -489,15 +547,18 @@
 # aren't clobbered by this translation, and one that does the encoding itself.
 # We also include a rule that protects the clobbering-protection rules from
 # getting clobbered.
-_substitutions = [("_quote", "_quotequote_")] + [
+_substitutions = [("_z", "_zz_")] + [
     subst
     for (pattern, replacement) in _encodings
     for subst in (
-        ("_{}_".format(replacement), "_quote{}_".format(replacement)),
+        ("_{}_".format(replacement), "_z{}_".format(replacement)),
         (pattern, "_{}_".format(replacement)),
     )
 ]
 
+# Expose the substitutions for testing only.
+substitutions_for_testing = _substitutions
+
 def encode_label_as_crate_name(package, name):
     """Encodes the package and target names in a format suitable for a crate name.
 
@@ -508,8 +569,21 @@
     Returns:
         A string that encodes the package and target name, to be used as the crate's name.
     """
-    full_name = package + ":" + name
-    return _replace_all(full_name, _substitutions)
+    return _encode_raw_string(package + ":" + name)
+
+def _encode_raw_string(str):
+    """Encodes a string using the above encoding format.
+
+    Args:
+        str (string): The string to be encoded.
+
+    Returns:
+        An encoded version of the input string.
+    """
+    return _replace_all(str, _substitutions)
+
+# Expose the underlying encoding function for testing only.
+encode_raw_string_for_testing = _encode_raw_string
 
 def decode_crate_name_as_label_for_testing(crate_name):
     """Decodes a crate_name that was encoded by encode_label_as_crate_name.
@@ -574,3 +648,25 @@
         string = string[:pattern_start] + replacement + string[after_pattern:]
 
     return string
+
+def can_build_metadata(toolchain, ctx, crate_type):
+    """Can we build metadata for this rust_library?
+
+    Args:
+        toolchain (toolchain): The rust toolchain
+        ctx (ctx): The rule's context object
+        crate_type (String): one of lib|rlib|dylib|staticlib|cdylib|proc-macro
+
+    Returns:
+        bool: whether we can build metadata for this rule.
+    """
+
+    # In order to enable pipelined compilation we require that:
+    # 1) The _pipelined_compilation flag is enabled,
+    # 2) the OS running the rule is something other than windows as we require sandboxing (for now),
+    # 3) process_wrapper is enabled (this is disabled when compiling process_wrapper itself),
+    # 4) the crate_type is rlib or lib.
+    return toolchain._pipelined_compilation and \
+           toolchain.os != "windows" and \
+           ctx.attr._process_wrapper and \
+           crate_type in ("rlib", "lib")
diff --git a/third_party/rules_rust/rust/repositories.bzl b/third_party/rules_rust/rust/repositories.bzl
index de5cb47..77b4bac 100644
--- a/third_party/rules_rust/rust/repositories.bzl
+++ b/third_party/rules_rust/rust/repositories.bzl
@@ -1,13 +1,20 @@
 # buildifier: disable=module-docstring
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+load(
+    "//rust/platform:triple_mappings.bzl",
+    "triple_to_constraint_set",
+)
 load("//rust/private:common.bzl", "rust_common")
 load(
     "//rust/private:repository_utils.bzl",
+    "BUILD_for_rust_analyzer_toolchain",
+    "BUILD_for_rust_toolchain",
     "BUILD_for_toolchain",
     "DEFAULT_STATIC_RUST_URL_TEMPLATES",
-    "DEFAULT_TOOLCHAIN_NAME_PREFIX",
     "check_version_valid",
+    "load_cargo",
+    "load_clippy",
     "load_llvm_tools",
     "load_rust_compiler",
     "load_rust_src",
@@ -33,6 +40,16 @@
 
 def rules_rust_dependencies():
     """Dependencies used in the implementation of `rules_rust`."""
+
+    maybe(
+        http_archive,
+        name = "platforms",
+        urls = [
+            "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz",
+            "https://github.com/bazelbuild/platforms/releases/download/0.0.5/platforms-0.0.5.tar.gz",
+        ],
+        sha256 = "379113459b0feaf6bfbb584a91874c065078aa673222846ac765f86661c27407",
+    )
     maybe(
         http_archive,
         name = "rules_cc",
@@ -55,8 +72,19 @@
     maybe(
         http_archive,
         name = "build_bazel_apple_support",
-        sha256 = "76df040ade90836ff5543888d64616e7ba6c3a7b33b916aa3a4b68f342d1b447",
-        url = "https://github.com/bazelbuild/apple_support/releases/download/0.11.0/apple_support.0.11.0.tar.gz",
+        sha256 = "5bbce1b2b9a3d4b03c0697687023ef5471578e76f994363c641c5f50ff0c7268",
+        url = "https://github.com/bazelbuild/apple_support/releases/download/0.13.0/apple_support.0.13.0.tar.gz",
+    )
+
+    # process_wrapper needs a low-dependency way to process json.
+    maybe(
+        http_archive,
+        name = "rules_rust_tinyjson",
+        sha256 = "1a8304da9f9370f6a6f9020b7903b044aa9ce3470f300a1fba5bc77c78145a16",
+        url = "https://crates.io/api/v1/crates/tinyjson/2.3.0/download",
+        strip_prefix = "tinyjson-2.3.0",
+        type = "tar.gz",
+        build_file = "@rules_rust//util/process_wrapper:BUILD.tinyjson.bazel",
     )
 
 # buildifier: disable=unnamed-macro
@@ -92,7 +120,7 @@
 
     Args:
         dev_components (bool, optional): Whether to download the rustc-dev components (defaults to False). Requires version to be "nightly".
-        edition (str, optional): The rust edition to be used by default (2015, 2018 (default), or 2021)
+        edition (str, optional): The rust edition to be used by default (2015, 2018, or 2021). If absent, every target is required to specify its `edition` attribute.
         include_rustc_srcs (bool, optional): Whether to download rustc's src code. This is required in order to use rust-analyzer support.
             See [rust_toolchain_repository.include_rustc_srcs](#rust_toolchain_repository-include_rustc_srcs). for more details
         allocator_library (str, optional): Target that provides allocator functions when rust_library targets are embedded in a cc_binary.
@@ -110,6 +138,27 @@
     if not rustfmt_version:
         rustfmt_version = version
 
+    rust_analyzer_repo_name = "rust_analyzer_{}".format(version)
+    if iso_date:
+        rust_analyzer_repo_name = "{}-{}".format(
+            rust_analyzer_repo_name,
+            iso_date,
+        )
+
+    maybe(
+        rust_analyzer_toolchain_repository,
+        name = rust_analyzer_repo_name,
+        version = version,
+        urls = urls,
+        sha256s = sha256s,
+        iso_date = iso_date,
+    )
+
+    if register_toolchains:
+        native.register_toolchains("@{}//:toolchain".format(
+            rust_analyzer_repo_name,
+        ))
+
     for exec_triple, name in DEFAULT_TOOLCHAIN_TRIPLES.items():
         maybe(
             rust_repository_set,
@@ -140,8 +189,8 @@
 
     rust_register_toolchains(**kwargs)
 
-def _rust_toolchain_repository_impl(ctx):
-    """The implementation of the rust toolchain repository rule."""
+def _rust_toolchain_tools_repository_impl(ctx):
+    """The implementation of the rust toolchain tools repository rule."""
 
     check_version_valid(ctx.attr.version, ctx.attr.iso_date)
 
@@ -149,47 +198,52 @@
     if should_include_rustc_srcs(ctx):
         load_rust_src(ctx)
 
-    build_components = [load_rust_compiler(ctx)]
+    build_components = [
+        load_rust_compiler(ctx),
+        load_clippy(ctx),
+        load_cargo(ctx),
+    ]
 
     if ctx.attr.rustfmt_version:
         build_components.append(load_rustfmt(ctx))
 
     # Rust 1.45.0 and nightly builds after 2020-05-22 need the llvm-tools gzip to get the libLLVM dylib
-    if ctx.attr.version >= "1.45.0" or (ctx.attr.version == "nightly" and ctx.attr.iso_date > "2020-05-22"):
-        load_llvm_tools(ctx, ctx.attr.exec_triple)
+    include_llvm_tools = ctx.attr.version >= "1.45.0" or (ctx.attr.version == "nightly" and ctx.attr.iso_date > "2020-05-22")
+    if include_llvm_tools:
+        build_components.append(load_llvm_tools(ctx, ctx.attr.exec_triple))
 
-    for target_triple in [ctx.attr.exec_triple] + ctx.attr.extra_target_triples:
-        build_components.append(load_rust_stdlib(ctx, target_triple))
+    build_components.append(load_rust_stdlib(ctx, ctx.attr.target_triple))
 
-        # extra_target_triples contains targets such as wasm, which don't have rustc_dev components
-        if ctx.attr.dev_components and target_triple not in ctx.attr.extra_target_triples:
-            load_rustc_dev_nightly(ctx, target_triple)
+    stdlib_linkflags = None
+    if "BAZEL_RUST_STDLIB_LINKFLAGS" in ctx.os.environ:
+        stdlib_linkflags = ctx.os.environ["BAZEL_RUST_STDLIB_LINKFLAGS"].split(":")
+
+    build_components.append(BUILD_for_rust_toolchain(
+        name = "rust_toolchain",
+        exec_triple = ctx.attr.exec_triple,
+        include_rustc_srcs = should_include_rustc_srcs(ctx),
+        allocator_library = ctx.attr.allocator_library,
+        target_triple = ctx.attr.target_triple,
+        stdlib_linkflags = stdlib_linkflags,
+        workspace_name = ctx.attr.name,
+        default_edition = ctx.attr.edition,
+        include_rustfmt = not (not ctx.attr.rustfmt_version),
+        include_llvm_tools = include_llvm_tools,
+    ))
+
+    # Not all target triples are expected to have dev components
+    if ctx.attr.dev_components:
+        load_rustc_dev_nightly(ctx, ctx.attr.target_triple)
 
     ctx.file("WORKSPACE.bazel", "")
     ctx.file("BUILD.bazel", "\n".join(build_components))
 
-def _rust_toolchain_repository_proxy_impl(ctx):
-    build_components = []
-    for target_triple in [ctx.attr.exec_triple] + ctx.attr.extra_target_triples:
-        build_components.append(BUILD_for_toolchain(
-            name = "{toolchain_prefix}_{target_triple}".format(
-                toolchain_prefix = ctx.attr.toolchain_name_prefix,
-                target_triple = target_triple,
-            ),
-            exec_triple = ctx.attr.exec_triple,
-            parent_workspace_name = ctx.attr.parent_workspace_name,
-            target_triple = target_triple,
-        ))
-
-    ctx.file("WORKSPACE.bazel", "")
-    ctx.file("BUILD.bazel", "\n".join(build_components))
-
-rust_toolchain_repository = repository_rule(
+rust_toolchain_tools_repository = repository_rule(
     doc = (
         "Composes a single workspace containing the toolchain components for compiling on a given " +
         "platform to a series of target platforms.\n" +
         "\n" +
-        "A given instance of this rule should be accompanied by a rust_toolchain_repository_proxy " +
+        "A given instance of this rule should be accompanied by a toolchain_repository_proxy " +
         "invocation to declare its toolchains to Bazel; the indirection allows separating toolchain " +
         "selection from toolchain fetching."
     ),
@@ -208,16 +262,15 @@
             default = False,
         ),
         "edition": attr.string(
-            doc = "The rust edition to be used by default.",
-            default = rust_common.default_edition,
+            doc = (
+                "The rust edition to be used by default (2015, 2018, or 2021). " +
+                "If absent, every rule is required to specify its `edition` attribute."
+            ),
         ),
         "exec_triple": attr.string(
             doc = "The Rust-style target that this compiler runs on",
             mandatory = True,
         ),
-        "extra_target_triples": attr.string_list(
-            doc = "Additional rust-style targets that this set of toolchains should support.",
-        ),
         "include_rustc_srcs": attr.bool(
             doc = (
                 "Whether to download and unpack the rustc source files. These are very large, and " +
@@ -237,8 +290,9 @@
         "sha256s": attr.string_dict(
             doc = "A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.",
         ),
-        "toolchain_name_prefix": attr.string(
-            doc = "The per-target prefix expected for the rust_toolchain declarations in the parent workspace.",
+        "target_triple": attr.string(
+            doc = "The Rust-style target that this compiler builds for",
+            mandatory = True,
         ),
         "urls": attr.string_list(
             doc = "A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).",
@@ -249,32 +303,238 @@
             mandatory = True,
         ),
     },
-    implementation = _rust_toolchain_repository_impl,
+    implementation = _rust_toolchain_tools_repository_impl,
     environ = ["RULES_RUST_TOOLCHAIN_INCLUDE_RUSTC_SRCS"],
 )
 
-rust_toolchain_repository_proxy = repository_rule(
+def _toolchain_repository_proxy_impl(repository_ctx):
+    repository_ctx.file("WORKSPACE.bazel", """workspace(name = "{}")""".format(
+        repository_ctx.name,
+    ))
+
+    repository_ctx.file("BUILD.bazel", BUILD_for_toolchain(
+        name = "toolchain",
+        toolchain = repository_ctx.attr.toolchain,
+        toolchain_type = repository_ctx.attr.toolchain_type,
+        target_compatible_with = json.encode(repository_ctx.attr.target_compatible_with),
+        exec_compatible_with = json.encode(repository_ctx.attr.exec_compatible_with),
+    ))
+
+toolchain_repository_proxy = repository_rule(
     doc = (
         "Generates a toolchain-bearing repository that declares the toolchains from some other " +
         "rust_toolchain_repository."
     ),
     attrs = {
-        "exec_triple": attr.string(
-            doc = "The Rust-style target triple for the compilation platform",
+        "exec_compatible_with": attr.string_list(
+            doc = "A list of constraints for the execution platform for this toolchain.",
+        ),
+        "target_compatible_with": attr.string_list(
+            doc = "A list of constraints for the target platform for this toolchain.",
+        ),
+        "toolchain": attr.string(
+            doc = "The name of the toolchain implementation target.",
             mandatory = True,
         ),
-        "extra_target_triples": attr.string_list(
-            doc = "The Rust-style triples for extra compilation targets",
-        ),
-        "parent_workspace_name": attr.string(
-            doc = "The name of the other rust_toolchain_repository",
+        "toolchain_type": attr.string(
+            doc = "The toolchain type of the toolchain to declare",
             mandatory = True,
         ),
-        "toolchain_name_prefix": attr.string(
-            doc = "The per-target prefix expected for the rust_toolchain declarations in the parent workspace.",
-        ),
     },
-    implementation = _rust_toolchain_repository_proxy_impl,
+    implementation = _toolchain_repository_proxy_impl,
+)
+
+# For legacy support
+rust_toolchain_repository_proxy = toolchain_repository_proxy
+
+def rust_toolchain_repository(
+        name,
+        version,
+        exec_triple,
+        target_triple,
+        exec_compatible_with = None,
+        target_compatible_with = None,
+        include_rustc_srcs = False,
+        allocator_library = None,
+        iso_date = None,
+        rustfmt_version = None,
+        edition = None,
+        dev_components = False,
+        sha256s = None,
+        urls = DEFAULT_STATIC_RUST_URL_TEMPLATES,
+        auth = None):
+    """Assembles a remote repository for the given toolchain params, produces a proxy repository \
+    to contain the toolchain declaration, and registers the toolchains.
+
+    N.B. A "proxy repository" is needed to allow for registering the toolchain (with constraints) \
+    without actually downloading the toolchain.
+
+    Args:
+        name (str): The name of the generated repository
+        version (str): The version of the tool among "nightly", "beta', or an exact version.
+        exec_triple (str): The Rust-style target that this compiler runs on.
+        target_triple (str): The Rust-style target to build for.
+        exec_compatible_with (list, optional): A list of constraints for the execution platform for this toolchain.
+        target_compatible_with (list, optional): A list of constraints for the target platform for this toolchain.
+        include_rustc_srcs (bool, optional): Whether to download rustc's src code. This is required in order to use rust-analyzer support.
+        allocator_library (str, optional): Target that provides allocator functions when rust_library targets are embedded in a cc_binary.
+        iso_date (str, optional): The date of the tool.
+        rustfmt_version (str, optional):  The version of rustfmt to be associated with the
+            toolchain.
+        edition (str, optional): The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its `edition` attribute.
+        dev_components (bool, optional): Whether to download the rustc-dev components.
+            Requires version to be "nightly". Defaults to False.
+        sha256s (str, optional): A dict associating tool subdirectories to sha256 hashes. See
+            [rust_repositories](#rust_repositories) for more details.
+        urls (list, optional): A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']
+        auth (dict): Auth object compatible with repository_ctx.download to use when downloading files.
+            See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.
+
+    Returns:
+        str: The name of the registerable toolchain created by this rule.
+    """
+
+    if exec_compatible_with == None:
+        exec_compatible_with = triple_to_constraint_set(exec_triple)
+
+    if target_compatible_with == None:
+        target_compatible_with = triple_to_constraint_set(target_triple)
+
+    rust_toolchain_tools_repository(
+        name = name + "_tools",
+        exec_triple = exec_triple,
+        include_rustc_srcs = include_rustc_srcs,
+        allocator_library = allocator_library,
+        target_triple = target_triple,
+        iso_date = iso_date,
+        version = version,
+        rustfmt_version = rustfmt_version,
+        edition = edition,
+        dev_components = dev_components,
+        sha256s = sha256s,
+        urls = urls,
+        auth = auth,
+    )
+
+    toolchain_repository_proxy(
+        name = name,
+        toolchain = "@{}//:{}".format(name + "_tools", "rust_toolchain"),
+        toolchain_type = "@rules_rust//rust:toolchain",
+        exec_compatible_with = exec_compatible_with,
+        target_compatible_with = target_compatible_with,
+    )
+
+    return "@{name}//:toolchain".format(
+        name = name,
+    )
+
+def _rust_analyzer_toolchain_srcs_repository_impl(repository_ctx):
+    load_rust_src(repository_ctx)
+
+    repository_ctx.file("WORKSPACE.bazel", """workspace(name = "{}")""".format(
+        repository_ctx.name,
+    ))
+
+    repository_ctx.file("BUILD.bazel", BUILD_for_rust_analyzer_toolchain(
+        name = "rust_analyzer_toolchain",
+    ))
+
+rust_analyzer_toolchain_srcs_repository = repository_rule(
+    doc = "A repository rule for defining a rust_analyzer_toolchain with a `rust-src` artifact.",
+    attrs = {
+        "auth": attr.string_dict(
+            doc = (
+                "Auth object compatible with repository_ctx.download to use when downloading files. " +
+                "See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details."
+            ),
+        ),
+        "iso_date": attr.string(
+            doc = "The date of the tool (or None, if the version is a specific version).",
+        ),
+        "sha256s": attr.string_dict(
+            doc = "A dict associating tool subdirectories to sha256 hashes. See [rust_repositories](#rust_repositories) for more details.",
+        ),
+        "urls": attr.string_list(
+            doc = "A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format).",
+            default = DEFAULT_STATIC_RUST_URL_TEMPLATES,
+        ),
+        "version": attr.string(
+            doc = "The version of the tool among \"nightly\", \"beta\", or an exact version.",
+            mandatory = True,
+        ),
+    },
+    implementation = _rust_analyzer_toolchain_srcs_repository_impl,
+)
+
+def rust_analyzer_toolchain_repository(
+        name,
+        version,
+        exec_compatible_with = [],
+        target_compatible_with = [],
+        iso_date = None,
+        sha256s = None,
+        urls = None,
+        auth = None):
+    """Assemble a remote rust_analyzer_toolchain target based on the given params.
+
+    Args:
+        name (str): The name of the toolchain proxy repository contianing the registerable toolchain.
+        version (str): The version of the tool among "nightly", "beta', or an exact version.
+        exec_compatible_with (list, optional): A list of constraints for the execution platform for this toolchain.
+        target_compatible_with (list, optional): A list of constraints for the target platform for this toolchain.
+        iso_date (str, optional): The date of the tool.
+        sha256s (str, optional): A dict associating tool subdirectories to sha256 hashes. See
+            [rust_repositories](#rust_repositories) for more details.
+        urls (list, optional): A list of mirror urls containing the tools from the Rust-lang static file server. These must contain the '{}' used to substitute the tool being fetched (using .format). Defaults to ['https://static.rust-lang.org/dist/{}.tar.gz']
+        auth (dict): Auth object compatible with repository_ctx.download to use when downloading files.
+            See [repository_ctx.download](https://docs.bazel.build/versions/main/skylark/lib/repository_ctx.html#download) for more details.
+
+    Returns:
+        str: The name of a registerable rust_analyzer_toolchain.
+    """
+    rust_analyzer_toolchain_srcs_repository(
+        name = name + "_srcs",
+        version = version,
+        iso_date = iso_date,
+        sha256s = sha256s,
+        urls = urls,
+        auth = auth,
+    )
+
+    toolchain_repository_proxy(
+        name = name,
+        toolchain = "@{}//:{}".format(name + "_srcs", "rust_analyzer_toolchain"),
+        toolchain_type = "@rules_rust//rust/rust_analyzer:toolchain_type",
+        exec_compatible_with = exec_compatible_with,
+        target_compatible_with = target_compatible_with,
+    )
+
+    return "@{}//:toolchain".format(
+        name,
+    )
+
+def _rust_toolchain_set_repository_impl(repository_ctx):
+    repository_ctx.file("WORKSPACE.bazel", """workspace(name = "{}")""".format(
+        repository_ctx.name,
+    ))
+
+    repository_ctx.file("BUILD.bazel", """exports_files(["defs.bzl"])""")
+    repository_ctx.file("defs.bzl", "ALL_TOOLCHAINS = {}\n".format(
+        json.encode_indent(repository_ctx.attr.toolchains, indent = " " * 4),
+    ))
+
+rust_toolchain_set_repository = repository_rule(
+    doc = (
+        "Generates a toolchain-bearing repository that declares the toolchains from some other " +
+        "rust_toolchain_repository."
+    ),
+    attrs = {
+        "toolchains": attr.string_list(
+            doc = "The list of all toolchains created by the current `rust_toolchain_set`",
+            mandatory = True,
+        ),
+    },
+    implementation = _rust_toolchain_set_repository_impl,
 )
 
 def rust_repository_set(
@@ -309,7 +569,7 @@
         iso_date (str, optional): The date of the tool. Defaults to None.
         rustfmt_version (str, optional):  The version of rustfmt to be associated with the
             toolchain. Defaults to None.
-        edition (str, optional): The rust edition to be used by default (2015, 2018 (if None), or 2021).
+        edition (str, optional): The rust edition to be used by default (2015, 2018, or 2021). If absent, every rule is required to specify its `edition` attribute.
         dev_components (bool, optional): Whether to download the rustc-dev components.
             Requires version to be "nightly". Defaults to False.
         sha256s (str, optional): A dict associating tool subdirectories to sha256 hashes. See
@@ -320,39 +580,31 @@
         register_toolchain (bool): If True, the generated `rust_toolchain` target will become a registered toolchain.
     """
 
-    rust_toolchain_repository(
-        name = name,
-        exec_triple = exec_triple,
-        include_rustc_srcs = include_rustc_srcs,
-        allocator_library = allocator_library,
-        extra_target_triples = extra_target_triples,
-        iso_date = iso_date,
-        toolchain_name_prefix = DEFAULT_TOOLCHAIN_NAME_PREFIX,
-        version = version,
-        rustfmt_version = rustfmt_version,
-        edition = edition,
-        dev_components = dev_components,
-        sha256s = sha256s,
-        urls = urls,
-        auth = auth,
-    )
-
-    rust_toolchain_repository_proxy(
-        name = name + "_toolchains",
-        exec_triple = exec_triple,
-        extra_target_triples = extra_target_triples,
-        parent_workspace_name = name,
-        toolchain_name_prefix = DEFAULT_TOOLCHAIN_NAME_PREFIX,
-    )
-
     all_toolchain_names = []
     for target_triple in [exec_triple] + extra_target_triples:
-        all_toolchain_names.append("@{name}_toolchains//:{toolchain_name_prefix}_{triple}".format(
-            name = name,
-            toolchain_name_prefix = DEFAULT_TOOLCHAIN_NAME_PREFIX,
-            triple = target_triple,
+        toolchain_name = "{}__{}".format(name, target_triple)
+        all_toolchain_names.append(rust_toolchain_repository(
+            name = toolchain_name,
+            exec_triple = exec_triple,
+            include_rustc_srcs = include_rustc_srcs,
+            allocator_library = allocator_library,
+            target_triple = target_triple,
+            iso_date = iso_date,
+            version = version,
+            rustfmt_version = rustfmt_version,
+            edition = edition,
+            dev_components = dev_components,
+            sha256s = sha256s,
+            urls = urls,
+            auth = auth,
         ))
 
+    # This repository exists to allow `rust_repository_set` to work with the `maybe` wrapper.
+    rust_toolchain_set_repository(
+        name = name,
+        toolchains = all_toolchain_names,
+    )
+
     # Register toolchains
     if register_toolchain:
         native.register_toolchains(*all_toolchain_names)
diff --git a/third_party/rules_rust/rust/rust_analyzer/BUILD.bazel b/third_party/rules_rust/rust/rust_analyzer/BUILD.bazel
new file mode 100644
index 0000000..04e6c60
--- /dev/null
+++ b/third_party/rules_rust/rust/rust_analyzer/BUILD.bazel
@@ -0,0 +1,5 @@
+package(default_visibility = ["//visibility:public"])
+
+toolchain_type(
+    name = "toolchain_type",
+)
diff --git a/third_party/rules_rust/rust/settings/BUILD.bazel b/third_party/rules_rust/rust/settings/BUILD.bazel
index 474237a..3171bc9 100644
--- a/third_party/rules_rust/rust/settings/BUILD.bazel
+++ b/third_party/rules_rust/rust/settings/BUILD.bazel
@@ -29,21 +29,22 @@
     build_setting_default = False,
 )
 
-# A flag that enables/disables the use of process_wrapper when invoking rustc.
-# This is useful for building process_wrapper itself without causing dependency cycles.
+# When set, this flag causes rustc to emit .rmeta files and use them for rlib -> rlib dependencies.
+# While this involves one extra (short) rustc invocation to build the rmeta file,
+# it allows library dependencies to be unlocked much sooner, increasing parallelism during compilation.
 bool_flag(
-    name = "use_process_wrapper",
-    build_setting_default = True,
+    name = "pipelined_compilation",
+    build_setting_default = False,
+)
+
+# A flag to control whether to link rust_binary and rust_test targets using
+# cc_common.link instead of rustc.
+bool_flag(
+    name = "experimental_use_cc_common_link",
+    build_setting_default = False,
 )
 
 bzl_library(
     name = "bzl_lib",
     srcs = glob(["**/*.bzl"]),
 )
-
-alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//settings:bzl_lib` target instead",
-    visibility = ["//rust:__subpackages__"],
-)
diff --git a/third_party/rules_rust/rust/toolchain.bzl b/third_party/rules_rust/rust/toolchain.bzl
index 083991a..45fd892 100644
--- a/third_party/rules_rust/rust/toolchain.bzl
+++ b/third_party/rules_rust/rust/toolchain.bzl
@@ -2,8 +2,11 @@
 
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
 load("//rust/private:common.bzl", "rust_common")
+load("//rust/private:rust_analyzer.bzl", _rust_analyzer_toolchain = "rust_analyzer_toolchain")
 load("//rust/private:utils.bzl", "dedent", "find_cc_toolchain", "make_static_lib_symlink")
 
+rust_analyzer_toolchain = _rust_analyzer_toolchain
+
 def _rust_stdlib_filegroup_impl(ctx):
     rust_std = ctx.files.srcs
     dot_a_files = []
@@ -11,6 +14,7 @@
     core_files = []
     between_core_and_std_files = []
     std_files = []
+    test_files = []
     memchr_files = []
     alloc_files = []
     self_contained_files = [
@@ -21,7 +25,8 @@
 
     std_rlibs = [f for f in rust_std if f.basename.endswith(".rlib")]
     if std_rlibs:
-        # std depends on everything
+        # test depends on std
+        # std depends on everything except test
         #
         # core only depends on alloc, but we poke adler in there
         # because that needs to be before miniz_oxide
@@ -36,14 +41,15 @@
         between_core_and_std_files = [
             f
             for f in dot_a_files
-            if "alloc" not in f.basename and "compiler_builtins" not in f.basename and "core" not in f.basename and "adler" not in f.basename and "std" not in f.basename and "memchr" not in f.basename
+            if "alloc" not in f.basename and "compiler_builtins" not in f.basename and "core" not in f.basename and "adler" not in f.basename and "std" not in f.basename and "memchr" not in f.basename and "test" not in f.basename
         ]
         memchr_files = [f for f in dot_a_files if "memchr" in f.basename]
         std_files = [f for f in dot_a_files if "std" in f.basename]
+        test_files = [f for f in dot_a_files if "test" in f.basename]
 
-        partitioned_files_len = len(alloc_files) + len(between_alloc_and_core_files) + len(core_files) + len(between_core_and_std_files) + len(memchr_files) + len(std_files)
+        partitioned_files_len = len(alloc_files) + len(between_alloc_and_core_files) + len(core_files) + len(between_core_and_std_files) + len(memchr_files) + len(std_files) + len(test_files)
         if partitioned_files_len != len(dot_a_files):
-            partitioned = alloc_files + between_alloc_and_core_files + core_files + between_core_and_std_files + memchr_files + std_files
+            partitioned = alloc_files + between_alloc_and_core_files + core_files + between_core_and_std_files + memchr_files + std_files + test_files
             for f in sorted(partitioned):
                 # buildifier: disable=print
                 print("File partitioned: {}".format(f.basename))
@@ -60,6 +66,7 @@
             core_files = core_files,
             between_core_and_std_files = between_core_and_std_files,
             std_files = std_files,
+            test_files = test_files,
             memchr_files = memchr_files,
             alloc_files = alloc_files,
             self_contained_files = self_contained_files,
@@ -195,21 +202,29 @@
             transitive = [between_core_and_std_inputs],
             order = "topological",
         )
+        test_inputs = depset(
+            [
+                _ltl(f, ctx, cc_toolchain, feature_configuration)
+                for f in rust_stdlib_info.test_files
+            ],
+            transitive = [std_inputs],
+            order = "topological",
+        )
 
-        link_inputs = [depset([cc_common.create_linker_input(
+        link_inputs = cc_common.create_linker_input(
             owner = rust_std.label,
-            libraries = std_inputs,
-        )])]
+            libraries = test_inputs,
+        )
 
-        allocator_inputs = []
+        allocator_inputs = None
         if allocator_library:
-            allocator_inputs = allocator_library[CcInfo].linking_context.linker_inputs.to_list()
+            allocator_inputs = [allocator_library[CcInfo].linking_context.linker_inputs]
 
         cc_infos.append(CcInfo(
             linking_context = cc_common.create_linking_context(
                 linker_inputs = depset(
-                    allocator_inputs,
-                    transitive = link_inputs,
+                    [link_inputs],
+                    transitive = allocator_inputs,
                     order = "topological",
                 ),
             ),
@@ -411,6 +426,11 @@
 
     rename_first_party_crates = ctx.attr._rename_first_party_crates[BuildSettingInfo].value
     third_party_dir = ctx.attr._third_party_dir[BuildSettingInfo].value
+    pipelined_compilation = ctx.attr._pipelined_compilation[BuildSettingInfo].value
+
+    experimental_use_cc_common_link = ctx.attr.experimental_use_cc_common_link[BuildSettingInfo].value
+    if experimental_use_cc_common_link and not ctx.attr.allocator_library:
+        fail("rust_toolchain.experimental_use_cc_common_link requires rust_toolchain.allocator_library to be set")
 
     if ctx.attr.rust_lib:
         # buildifier: disable=print
@@ -465,6 +485,26 @@
     sysroot_path = sysroot.sysroot_anchor.dirname
     sysroot_short_path, _, _ = sysroot.sysroot_anchor.short_path.rpartition("/")
 
+    # Variables for make variable expansion
+    make_variables = {
+        "RUSTC": sysroot.rustc.path,
+        "RUSTDOC": sysroot.rustdoc.path,
+        "RUST_DEFAULT_EDITION": ctx.attr.default_edition or "",
+        "RUST_SYSROOT": sysroot_path,
+    }
+
+    if sysroot.cargo:
+        make_variables.update({
+            "CARGO": sysroot.cargo.path,
+        })
+
+    if sysroot.rustfmt:
+        make_variables.update({
+            "RUSTFMT": sysroot.rustfmt.path,
+        })
+
+    make_variable_info = platform_common.TemplateVariableInfo(make_variables)
+
     toolchain = platform_common.ToolchainInfo(
         all_files = sysroot.all_files,
         binary_ext = ctx.attr.binary_ext,
@@ -474,8 +514,12 @@
         crosstool_files = ctx.files._cc_toolchain,
         default_edition = ctx.attr.default_edition,
         dylib_ext = ctx.attr.dylib_ext,
+        env = ctx.attr.env,
         exec_triple = ctx.attr.exec_triple,
         libstd_and_allocator_ccinfo = _make_libstd_and_allocator_ccinfo(ctx, rust_std, ctx.attr.allocator_library),
+        llvm_cov = ctx.file.llvm_cov,
+        llvm_profdata = ctx.file.llvm_profdata,
+        make_variables = make_variable_info,
         os = ctx.attr.os,
         rust_doc = sysroot.rustdoc,
         rust_lib = sysroot.rust_std,  # `rust_lib` is deprecated and only exists for legacy support.
@@ -497,8 +541,13 @@
         # Experimental and incompatible flags
         _rename_first_party_crates = rename_first_party_crates,
         _third_party_dir = third_party_dir,
+        _pipelined_compilation = pipelined_compilation,
+        _experimental_use_cc_common_link = experimental_use_cc_common_link,
     )
-    return [toolchain]
+    return [
+        toolchain,
+        make_variable_info,
+    ]
 
 rust_toolchain = rule(
     implementation = _rust_toolchain_impl,
@@ -530,13 +579,18 @@
             },
         ),
         "default_edition": attr.string(
-            doc = "The edition to use for rust_* rules that don't specify an edition.",
-            default = rust_common.default_edition,
+            doc = (
+                "The edition to use for rust_* rules that don't specify an edition. " +
+                "If absent, every rule is required to specify its `edition` attribute."
+            ),
         ),
         "dylib_ext": attr.string(
             doc = "The extension for dynamic libraries created from rustc.",
             mandatory = True,
         ),
+        "env": attr.string_dict(
+            doc = "Environment variables to set in actions.",
+        ),
         "exec_triple": attr.string(
             doc = (
                 "The platform triple for the toolchains execution environment. " +
@@ -544,6 +598,20 @@
             ),
             mandatory = True,
         ),
+        "experimental_use_cc_common_link": attr.label(
+            default = Label("//rust/settings:experimental_use_cc_common_link"),
+            doc = "Label to a boolean build setting that controls whether cc_common.link is used to link rust binaries.",
+        ),
+        "llvm_cov": attr.label(
+            doc = "The location of the `llvm-cov` binary. Can be a direct source or a filegroup containing one item. If None, rust code is not instrumented for coverage.",
+            allow_single_file = True,
+            cfg = "exec",
+        ),
+        "llvm_profdata": attr.label(
+            doc = "The location of the `llvm-profdata` binary. Can be a direct source or a filegroup containing one item. If `llvm_cov` is None, this can be None as well and rust code is not instrumented for coverage.",
+            allow_single_file = True,
+            cfg = "exec",
+        ),
         "llvm_tools": attr.label(
             doc = "LLVM tools that are shipped with the Rust toolchain.",
             allow_files = True,
@@ -614,13 +682,16 @@
             ),
         ),
         "_cc_toolchain": attr.label(
-            default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
+        ),
+        "_pipelined_compilation": attr.label(
+            default = "@rules_rust//rust/settings:pipelined_compilation",
         ),
         "_rename_first_party_crates": attr.label(
-            default = "@rules_rust//rust/settings:rename_first_party_crates",
+            default = Label("//rust/settings:rename_first_party_crates"),
         ),
         "_third_party_dir": attr.label(
-            default = "@rules_rust//rust/settings:third_party_dir",
+            default = Label("//rust/settings:third_party_dir"),
         ),
     },
     toolchains = [
diff --git a/third_party/rules_rust/rust/toolchain/BUILD.bazel b/third_party/rules_rust/rust/toolchain/BUILD.bazel
index daccd08..766f1e5 100644
--- a/third_party/rules_rust/rust/toolchain/BUILD.bazel
+++ b/third_party/rules_rust/rust/toolchain/BUILD.bazel
@@ -1,43 +1,42 @@
-load("//rust/private:toolchain_utils.bzl", "toolchain_files")
+load("//rust/private:toolchain_utils.bzl", "current_rust_toolchain", "toolchain_files")
 
 package(default_visibility = ["//visibility:public"])
 
 toolchain_files(
-    name = "current_exec_cargo_files",
+    name = "current_cargo_files",
     tool = "cargo",
 )
 
 toolchain_files(
-    name = "current_exec_clippy_files",
+    name = "current_clippy_files",
     tool = "clippy",
 )
 
 toolchain_files(
-    name = "current_exec_rustc_files",
+    name = "current_rustc_files",
     tool = "rustc",
 )
 
 toolchain_files(
-    name = "current_exec_rustdoc_files",
+    name = "current_rustdoc_files",
     tool = "rustdoc",
 )
 
 toolchain_files(
-    name = "current_exec_rustfmt_files",
+    name = "current_rustfmt_files",
     tool = "rustfmt",
 )
 
 toolchain_files(
-    name = "current_exec_rustc_lib_files",
+    name = "current_rustc_lib_files",
     tool = "rustc_lib",
 )
 
 toolchain_files(
-    name = "current_exec_rustc_srcs_files",
-    tool = "rustc_srcs",
+    name = "current_rust_stdlib_files",
+    tool = "rust_stdlib",
 )
 
-toolchain_files(
-    name = "current_exec_rust_stdlib_files",
-    tool = "rust_stdlib",
+current_rust_toolchain(
+    name = "current_rust_toolchain",
 )
diff --git a/third_party/rules_rust/test/build_env/BUILD.bazel b/third_party/rules_rust/test/build_env/BUILD.bazel
index 511d23a..b4e1a92 100644
--- a/third_party/rules_rust/test/build_env/BUILD.bazel
+++ b/third_party/rules_rust/test/build_env/BUILD.bazel
@@ -10,6 +10,7 @@
     name = "conflicting_deps_test",
     srcs = ["tests/manifest_dir.rs"],
     data = ["src/manifest_dir_file.txt"],
+    edition = "2018",
 )
 
 rust_library(
@@ -27,9 +28,28 @@
     edition = "2018",
 )
 
+rust_library(
+    name = "arbitrary_env_lib_in_test",
+    srcs = ["tests/arbitrary_env_lib.rs"],
+    edition = "2018",
+    rustc_env = {
+        "USER_DEFINED_KEY": "DIFFERENT_USER_DEFINED_VALUE",
+    },
+)
+
+rust_test(
+    name = "arbitrary_env_lib_test_in_test",
+    crate = ":arbitrary_env_lib_in_test",
+    edition = "2018",
+    rustc_env = {
+        "USER_DEFINED_KEY": "USER_DEFINED_VALUE",
+    },
+)
+
 rust_test(
     name = "arbitrary_env_test",
     srcs = ["tests/arbitrary_env.rs"],
+    edition = "2018",
     rustc_env = {
         "USER_DEFINED_KEY": "USER_DEFINED_VALUE",
     },
@@ -39,6 +59,7 @@
     # Intentionally uses a mix of -s and _s because those normalisations are part of what is being tested.
     name = "cargo_env-vars_test",
     srcs = ["tests/cargo.rs"],
+    edition = "2018",
     deps = [":cargo_build_script_env-vars_build_script"],
 )
 
@@ -46,10 +67,12 @@
     name = "cargo-env-vars-custom-crate-name-test",
     srcs = ["tests/custom_crate_name.rs"],
     crate_name = "custom_crate_name",
+    edition = "2018",
     deps = [":cargo_build_script_env-vars_build_script"],
 )
 
 cargo_build_script(
     name = "cargo_build_script_env-vars_build_script",
     srcs = ["src/build.rs"],
+    edition = "2018",
 )
diff --git a/third_party/rules_rust/test/cargo_build_script/BUILD.bazel b/third_party/rules_rust/test/cargo_build_script/BUILD.bazel
index 34744cb..31bff6c 100644
--- a/third_party/rules_rust/test/cargo_build_script/BUILD.bazel
+++ b/third_party/rules_rust/test/cargo_build_script/BUILD.bazel
@@ -1,5 +1,6 @@
 """Tests for the cargo_build_script rule"""
 
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
 load("//cargo:cargo_build_script.bzl", "cargo_build_script")
 load("//rust:defs.bzl", "rust_test")
 
@@ -8,20 +9,21 @@
     name = "tools_exec_build_rs",
     srcs = ["build.rs"],
     build_script_env = {"TOOL": "$(execpath :tool)"},
+    edition = "2018",
     # Add a flag to test that they're exposed to the build script
     rustc_flags = ["--verbose"],
     tools = [":tool"],
 )
 
-genrule(
+write_file(
     name = "tool",
-    srcs = [],
-    outs = ["tool-file"],
-    cmd = "touch $@",
+    out = "tool-file",
+    content = [""],
 )
 
 rust_test(
     name = "tools_exec",
     srcs = ["tools_exec.rs"],
+    edition = "2018",
     deps = [":tools_exec_build_rs"],
 )
diff --git a/third_party/rules_rust/test/cargo_build_script/build.rs b/third_party/rules_rust/test/cargo_build_script/build.rs
index 12d1b53..72e07bb 100644
--- a/third_party/rules_rust/test/cargo_build_script/build.rs
+++ b/third_party/rules_rust/test/cargo_build_script/build.rs
@@ -28,23 +28,17 @@
         std::env::var("TOOL").unwrap()
     );
 
-    // Assert that the CC and CXX env vars existed and were executable.
+    // Assert that the CC, CXX and LD env vars existed and were executable.
     // We don't assert what happens when they're executed (in particular, we don't check for a
     // non-zero exit code), but this asserts that it's an existing file which is executable.
-    //
-    // Unfortunately we need to shlex the path, because we add a `--sysroot=...` arg to the env var.
-    for env_var in &["CC", "CXX"] {
-        let v = std::env::var(env_var)
+    for env_var in &["CC", "CXX", "LD"] {
+        let path = std::env::var(env_var)
             .unwrap_or_else(|err| panic!("Error getting {}: {}", env_var, err));
-        let (path, args) = if let Some(index) = v.find("--sysroot") {
-            let (path, args) = v.split_at(index);
-            (path, Some(args))
-        } else {
-            (v.as_str(), None)
-        };
-        std::process::Command::new(path)
-            .args(args.into_iter())
-            .status()
-            .unwrap();
+        std::process::Command::new(path).status().unwrap();
+    }
+
+    // Assert that some env variables are set.
+    for env_var in &["CFLAGS", "CXXFLAGS", "LDFLAGS"] {
+        assert!(std::env::var(env_var).is_ok());
     }
 }
diff --git a/third_party/rules_rust/test/cc_common_link/BUILD.bazel b/third_party/rules_rust/test/cc_common_link/BUILD.bazel
new file mode 100644
index 0000000..e996993
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/BUILD.bazel
@@ -0,0 +1,36 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
+
+cc_library(
+    name = "allocator_library",
+    srcs = ["allocator_library.cc"],
+    visibility = ["//visibility:public"],
+)
+
+cc_library(
+    name = "cclinkstampdep",
+    linkstamp = "cclinkstampdep.cc",
+)
+
+rust_library(
+    name = "rdep",
+    srcs = ["rdep.rs"],
+    edition = "2021",
+)
+
+rust_binary(
+    name = "bin",
+    srcs = ["bin.rs"],
+    edition = "2021",
+    deps = [
+        ":cclinkstampdep",
+        ":rdep",
+    ],
+)
+
+rust_test(
+    name = "test",
+    srcs = ["test.rs"],
+    edition = "2021",
+    deps = [":rdep"],
+)
diff --git a/third_party/rules_rust/test/cc_common_link/WORKSPACE.bazel b/third_party/rules_rust/test/cc_common_link/WORKSPACE.bazel
new file mode 100644
index 0000000..b213876
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/WORKSPACE.bazel
@@ -0,0 +1,15 @@
+workspace(name = "test_cc_common_link")
+
+local_repository(
+    name = "rules_rust",
+    path = "../../",
+)
+
+load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains")
+
+rules_rust_dependencies()
+
+rust_register_toolchains(
+    allocator_library = "@test_cc_common_link//:allocator_library",
+    edition = "2018",
+)
diff --git a/third_party/rules_rust/test/cc_common_link/allocator_library.cc b/third_party/rules_rust/test/cc_common_link/allocator_library.cc
new file mode 100644
index 0000000..be82631
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/allocator_library.cc
@@ -0,0 +1,52 @@
+#include <stdint.h>
+
+// This file has some exciting magic to get Rust code linking in a cc_binary.
+// The Rust compiler generates some similar symbol aliases when it links, so we
+// have to do it manually. We mark all our symbols as weak so that linking this
+// via Rust tooling to produce a binary with a Rust main works.
+//
+// It is intended to be used in rust_toolchain.allocator_library.
+//
+// https://github.com/rust-lang/rust/blob/master/library/alloc/src/alloc.rs
+// and https://github.com/rust-lang/rust/blob/master/library/std/src/alloc.rs
+// are the best source of docs I've found on these functions and variables.
+// https://doc.rust-lang.org/std/alloc/index.html talks about how this is
+// intended to be used.
+//
+// Also note
+// https://rust-lang.github.io/unsafe-code-guidelines/layout/scalars.html for
+// the sizes of the various integer types.
+//
+// This file strongly assumes that the default allocator is used. It will
+// not work with any other allocated switched in via `#[global_allocator]`.
+
+// New feature as of https://github.com/rust-lang/rust/pull/88098.
+__attribute__((weak)) uint8_t __rust_alloc_error_handler_should_panic = 0;
+
+extern "C" uint8_t *__rdl_alloc(uintptr_t size, uintptr_t align);
+extern "C" __attribute__((weak))
+uint8_t *__rust_alloc(uintptr_t size, uintptr_t align) {
+  return __rdl_alloc(size, align);
+}
+extern "C" void __rdl_dealloc(uint8_t *ptr, uintptr_t size, uintptr_t align);
+extern "C" __attribute__((weak))
+void __rust_dealloc(uint8_t *ptr, uintptr_t size, uintptr_t align) {
+  __rdl_dealloc(ptr, size, align);
+}
+extern "C" uint8_t *__rdl_realloc(uint8_t *ptr, uintptr_t old_size, uintptr_t align,
+                       uintptr_t new_size);
+extern "C" __attribute__((weak))
+uint8_t *__rust_realloc(uint8_t *ptr, uintptr_t old_size, uintptr_t align,
+                        uintptr_t new_size) {
+  return __rdl_realloc(ptr, old_size, align, new_size);
+}
+extern "C" uint8_t *__rdl_alloc_zeroed(uintptr_t size, uintptr_t align);
+extern "C" __attribute__((weak))
+uint8_t *__rust_alloc_zeroed(uintptr_t size, uintptr_t align) {
+  return __rdl_alloc_zeroed(size, align);
+}
+extern "C" void __rdl_oom(uintptr_t size, uintptr_t align);
+extern "C" __attribute__((weak))
+void __rust_alloc_error_handler(uintptr_t size, uintptr_t align) {
+  __rdl_oom(size, align);
+}
diff --git a/third_party/rules_rust/test/cc_common_link/bin.rs b/third_party/rules_rust/test/cc_common_link/bin.rs
new file mode 100644
index 0000000..b50ff14
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/bin.rs
@@ -0,0 +1,10 @@
+use std::os::raw::c_int;
+
+extern "C" {
+    pub fn cclinkstampdep() -> c_int;
+}
+
+fn main() {
+    println!("bin rdep: {}", rdep::rdep());
+    println!("cclinkstampdep: {}", unsafe { cclinkstampdep() });
+}
diff --git a/third_party/rules_rust/test/cc_common_link/cclinkstampdep.cc b/third_party/rules_rust/test/cc_common_link/cclinkstampdep.cc
new file mode 100644
index 0000000..eda3948
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/cclinkstampdep.cc
@@ -0,0 +1,3 @@
+extern "C" int cclinkstampdep() {
+  return 121;
+}
diff --git a/third_party/rules_rust/test/cc_common_link/rdep.rs b/third_party/rules_rust/test/cc_common_link/rdep.rs
new file mode 100644
index 0000000..249953f
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/rdep.rs
@@ -0,0 +1,3 @@
+pub fn rdep() -> i32 {
+    43
+}
diff --git a/third_party/rules_rust/test/cc_common_link/test.rs b/third_party/rules_rust/test/cc_common_link/test.rs
new file mode 100644
index 0000000..4dfb909
--- /dev/null
+++ b/third_party/rules_rust/test/cc_common_link/test.rs
@@ -0,0 +1,4 @@
+#[test]
+fn test() {
+    assert_eq!(43, rdep::rdep());
+}
diff --git a/third_party/rules_rust/test/chained_direct_deps/BUILD.bazel b/third_party/rules_rust/test/chained_direct_deps/BUILD.bazel
index 8460d22..6f1e952 100644
--- a/third_party/rules_rust/test/chained_direct_deps/BUILD.bazel
+++ b/third_party/rules_rust/test/chained_direct_deps/BUILD.bazel
@@ -3,17 +3,20 @@
 rust_library(
     name = "mod1",
     srcs = ["mod1.rs"],
+    edition = "2018",
 )
 
 rust_library(
     name = "mod2",
     srcs = ["mod2.rs"],
+    edition = "2018",
     deps = [":mod1"],
 )
 
 rust_library(
     name = "mod3",
     srcs = ["mod3.rs"],
+    edition = "2018",
     deps = [
         ":mod1",
         ":mod2",
@@ -23,16 +26,19 @@
 rust_test(
     name = "mod1_test",
     crate = ":mod1",
+    edition = "2018",
 )
 
 rust_test(
     name = "mod2_test",
     crate = ":mod2",
+    edition = "2018",
 )
 
 rust_test(
     name = "mod3_test",
     crate = ":mod3",
+    edition = "2018",
 )
 
 rust_doc_test(
diff --git a/third_party/rules_rust/test/current_toolchain_files/BUILD.bazel b/third_party/rules_rust/test/current_toolchain_files/BUILD.bazel
index e617417..f0fbdc9 100644
--- a/third_party/rules_rust/test/current_toolchain_files/BUILD.bazel
+++ b/third_party/rules_rust/test/current_toolchain_files/BUILD.bazel
@@ -15,9 +15,9 @@
 [
     genrule(
         name = "{}_manifest_genrule".format(files),
-        srcs = ["//rust/toolchain:current_exec_{}_files".format(files)],
+        srcs = ["//rust/toolchain:current_{}_files".format(files)],
         outs = ["{}_manifest".format(files)],
-        cmd = "for file in $(rootpaths //rust/toolchain:current_exec_{}_files); do echo $$file >> $@; done".format(files),
+        cmd = "for file in $(rootpaths //rust/toolchain:current_{}_files); do echo $$file >> $@; done".format(files),
     )
     for files in _FILES
     if "--files" in _FILES[files]
@@ -29,12 +29,12 @@
         name = tool + "_test",
         srcs = ["current_exec_files_test.sh"],
         args = [
-            "$(rootpath //rust/toolchain:current_exec_{}_files)".format(tool) if "--executable" == arg else "$(rootpath {}_manifest)".format(tool),
+            "$(rootpath //rust/toolchain:current_{}_files)".format(tool) if "--executable" == arg else "$(rootpath {}_manifest)".format(tool),
             arg,
             "'{}'".format(pattern),
         ],
         data = [
-            "//rust/toolchain:current_exec_{}_files".format(tool),
+            "//rust/toolchain:current_{}_files".format(tool),
         ] + (
             ["{}_manifest".format(tool)] if "--files" == arg else []
         ),
diff --git a/third_party/rules_rust/test/dep_env/BUILD.bazel b/third_party/rules_rust/test/dep_env/BUILD.bazel
new file mode 100644
index 0000000..64addcd
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/BUILD.bazel
@@ -0,0 +1,51 @@
+"""Tests for passing configuration to cargo_build_script rules"""
+
+load("//cargo:cargo_build_script.bzl", "cargo_build_script", "cargo_dep_env")
+load("//rust:defs.bzl", "rust_binary", "rust_library")
+
+cargo_build_script(
+    name = "set_a_build",
+    srcs = ["set_a.rs"],
+    edition = "2018",
+    links = "X",
+)
+
+rust_library(
+    name = "set_a",
+    srcs = ["empty.rs"],
+    edition = "2018",
+    deps = [":set_a_build"],
+)
+
+cargo_dep_env(
+    name = "set_b",
+    src = "set_b.env",
+)
+
+cargo_build_script(
+    name = "read_a",
+    srcs = ["read_a.rs"],
+    edition = "2018",
+    deps = [":set_a"],
+)
+
+cargo_build_script(
+    name = "read_b",
+    srcs = ["read_b.rs"],
+    edition = "2018",
+    deps = [":set_b"],
+)
+
+rust_binary(
+    name = "build_read_a",
+    srcs = ["empty_main.rs"],
+    edition = "2018",
+    deps = [":read_a"],
+)
+
+rust_binary(
+    name = "build_read_b",
+    srcs = ["empty_main.rs"],
+    edition = "2018",
+    deps = [":read_b"],
+)
diff --git a/third_party/rules_rust/test/dep_env/empty.rs b/third_party/rules_rust/test/dep_env/empty.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/empty.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/dep_env/empty_main.rs b/third_party/rules_rust/test/dep_env/empty_main.rs
new file mode 100644
index 0000000..f328e4d
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/empty_main.rs
@@ -0,0 +1 @@
+fn main() {}
diff --git a/third_party/rules_rust/test/dep_env/read_a.rs b/third_party/rules_rust/test/dep_env/read_a.rs
new file mode 100644
index 0000000..8775f81
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/read_a.rs
@@ -0,0 +1,5 @@
+use std::env::var;
+
+fn main() {
+    assert_eq!(var("DEP_X_A").unwrap(), "a_value");
+}
diff --git a/third_party/rules_rust/test/dep_env/read_b.rs b/third_party/rules_rust/test/dep_env/read_b.rs
new file mode 100644
index 0000000..b63db42
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/read_b.rs
@@ -0,0 +1,5 @@
+use std::env::var;
+
+fn main() {
+    assert_eq!(var("DEP_Y_B").unwrap(), "b_value");
+}
diff --git a/third_party/rules_rust/test/dep_env/set_a.rs b/third_party/rules_rust/test/dep_env/set_a.rs
new file mode 100644
index 0000000..7e8082a
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/set_a.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("cargo:A=a_value");
+}
diff --git a/third_party/rules_rust/test/dep_env/set_b.env b/third_party/rules_rust/test/dep_env/set_b.env
new file mode 100644
index 0000000..4657007
--- /dev/null
+++ b/third_party/rules_rust/test/dep_env/set_b.env
@@ -0,0 +1 @@
+DEP_Y_B=b_value
diff --git a/third_party/rules_rust/test/deps.bzl b/third_party/rules_rust/test/deps.bzl
index 58c09bc..96223dd 100644
--- a/third_party/rules_rust/test/deps.bzl
+++ b/third_party/rules_rust/test/deps.bzl
@@ -11,6 +11,13 @@
     name = "libc",
     srcs = glob(["src/**/*.rs"]),
     edition = "2015",
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
     visibility = ["//visibility:public"],
 )
 """
diff --git a/third_party/rules_rust/test/extra_exec_rustc_flags/BUILD.bazel b/third_party/rules_rust/test/extra_exec_rustc_flags/BUILD.bazel
index a1b401e..7a7b6ef 100644
--- a/third_party/rules_rust/test/extra_exec_rustc_flags/BUILD.bazel
+++ b/third_party/rules_rust/test/extra_exec_rustc_flags/BUILD.bazel
@@ -14,21 +14,36 @@
 rust_library(
     name = "lib_do_not_build_directly",
     srcs = ["lib.rs"],
+    edition = "2018",
     tags = ["manual"],
 )
 
 with_extra_exec_rustc_flags_cfg(
     name = "lib_with_exec_flags_do_not_build_directly",
     srcs = ["lib_do_not_build_directly"],
+    extra_exec_rustc_flag = [],
     extra_exec_rustc_flags = ["--cfg=bazel_exec"],
     tags = ["manual"],
 )
 
+with_extra_exec_rustc_flags_cfg(
+    name = "lib_with_singular_exec_flags_do_not_build_directly",
+    srcs = ["lib_do_not_build_directly"],
+    extra_exec_rustc_flag = ["--cfg=bazel_exec"],
+    extra_exec_rustc_flags = [],
+    tags = ["manual"],
+)
+
 with_exec_cfg(
     name = "lib",
     srcs = ["lib_with_exec_flags_do_not_build_directly"],
 )
 
+with_exec_cfg(
+    name = "lib_singular",
+    srcs = ["lib_with_singular_exec_flags_do_not_build_directly"],
+)
+
 # Checks that extra_exec_rustc_flags are not passed in non-exec configurations.
 # lib_no_exec.rs is a sample source file that fails to build if
 # `--cfg=bazel_exec` is present. The targets below are built in non-exec configurations,
@@ -36,19 +51,30 @@
 rust_library(
     name = "lib_no_exec",
     srcs = ["lib_no_exec.rs"],
+    edition = "2018",
 )
 
 with_extra_exec_rustc_flags_cfg(
     name = "lib_no_exec_with_extra_build_flags",
     srcs = ["lib_no_exec"],
+    extra_exec_rustc_flag = [],
     extra_exec_rustc_flags = ["--cfg=bazel_exec"],
 )
 
+with_extra_exec_rustc_flags_cfg(
+    name = "lib_no_exec_with_singular_extra_build_flags",
+    srcs = ["lib_no_exec"],
+    extra_exec_rustc_flag = ["--cfg=bazel_exec"],
+    extra_exec_rustc_flags = [],
+)
+
 build_test(
     name = "lib_build",
     targets = [
         ":lib",
+        ":lib_singular",
         ":lib_no_exec",
         ":lib_no_exec_with_extra_build_flags",
+        ":lib_no_exec_with_singular_extra_build_flags",
     ],
 )
diff --git a/third_party/rules_rust/test/extra_exec_rustc_flags/defs.bzl b/third_party/rules_rust/test/extra_exec_rustc_flags/defs.bzl
index 790cdc5..e12998d 100644
--- a/third_party/rules_rust/test/extra_exec_rustc_flags/defs.bzl
+++ b/third_party/rules_rust/test/extra_exec_rustc_flags/defs.bzl
@@ -2,13 +2,14 @@
 
 def _extra_exec_rustc_flags_transition_impl(_settings, attr):
     return {
+        "//:extra_exec_rustc_flag": attr.extra_exec_rustc_flag,
         "//:extra_exec_rustc_flags": attr.extra_exec_rustc_flags,
     }
 
 _extra_exec_rustc_flags_transition = transition(
     implementation = _extra_exec_rustc_flags_transition_impl,
     inputs = [],
-    outputs = ["//:extra_exec_rustc_flags"],
+    outputs = ["//:extra_exec_rustc_flags", "//:extra_exec_rustc_flag"],
 )
 
 def _with_extra_exec_rustc_flags_cfg_impl(ctx):
@@ -17,6 +18,9 @@
 with_extra_exec_rustc_flags_cfg = rule(
     implementation = _with_extra_exec_rustc_flags_cfg_impl,
     attrs = {
+        "extra_exec_rustc_flag": attr.string_list(
+            mandatory = True,
+        ),
         "extra_exec_rustc_flags": attr.string_list(
             mandatory = True,
         ),
diff --git a/third_party/rules_rust/test/generated_inputs/BUILD.bazel b/third_party/rules_rust/test/generated_inputs/BUILD.bazel
new file mode 100644
index 0000000..2820282
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/BUILD.bazel
@@ -0,0 +1,133 @@
+load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
+load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
+load(":input_from_different_cfg.bzl", "input_from_different_cfg")
+
+write_file(
+    name = "generate_src",
+    out = "src.rs",
+    content = """
+#[cfg(not(generated_file_as_root))]
+pub fn forty_two() -> i32 { 42 }
+
+#[cfg(generated_file_as_root)]
+mod lib_for_src;
+
+#[cfg(generated_file_as_root)]
+pub fn get_forty_two_as_string() -> String {
+    format!("{}", lib_for_src::forty_two())
+}
+""".splitlines(),
+    newline = "unix",
+)
+
+rust_library(
+    name = "use_generated_src",
+    srcs = [
+        "lib.rs",
+        ":src.rs",
+    ],
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_library(
+    name = "use_generated_src_with_crate_root_defined",
+    srcs = [
+        "lib.rs",
+        ":src.rs",
+    ],
+    crate_root = "lib.rs",
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_library(
+    name = "use_generated_src_as_crate_root",
+    srcs = [
+        "lib.rs",
+        "lib_for_src.rs",
+        ":src.rs",
+    ],
+    crate_root = ":src.rs",
+    edition = "2018",
+    rustc_flags = ["--cfg=generated_file_as_root"],
+    tags = ["norustfmt"],
+)
+
+# When no lib.rs, main.rs file exists, we try to use the file that carries
+# the target's name as a crate_root.
+rust_library(
+    name = "src",
+    srcs = [
+        "lib_for_src.rs",
+        ":src.rs",
+    ],
+    edition = "2018",
+    rustc_flags = ["--cfg=generated_file_as_root"],
+    tags = ["norustfmt"],
+)
+
+rust_test(
+    name = "generated_src_test",
+    crate = ":use_generated_src_with_crate_root_defined",
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_binary(
+    name = "print_42",
+    srcs = [
+        "main.rs",
+        ":src.rs",
+    ],
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+input_from_different_cfg(
+    name = "generated_in_different_cfg",
+)
+
+filegroup(
+    name = "input_from_different_cfg",
+    srcs = [":generated_in_different_cfg"],
+    output_group = "generated_file",
+)
+
+rust_library(
+    name = "generated_src_in_different_cfg_as_root",
+    srcs = [":input_from_different_cfg"],
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_test(
+    name = "generated_src_in_different_cfg_as_root_test",
+    crate = "generated_src_in_different_cfg_as_root",
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_library(
+    name = "generated_src_in_different_cfg",
+    srcs = [
+        "root.rs",
+        ":input_from_different_cfg",
+    ],
+    crate_root = "root.rs",
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+rust_test(
+    name = "generated_src_in_different_cfg_test",
+    crate = "generated_src_in_different_cfg",
+    edition = "2018",
+    tags = ["norustfmt"],
+)
+
+bool_flag(
+    name = "change_cfg",
+    build_setting_default = False,
+)
diff --git a/third_party/rules_rust/test/generated_inputs/input_from_different_cfg.bzl b/third_party/rules_rust/test/generated_inputs/input_from_different_cfg.bzl
new file mode 100644
index 0000000..5fb2a68
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/input_from_different_cfg.bzl
@@ -0,0 +1,42 @@
+"""A custom rule that generates a .rs file in a different configuration."""
+
+def _change_cfg_impl(_settings, _attr):
+    return {"//test/generated_inputs:change_cfg": True}
+
+change_cfg_transition = transition(
+    implementation = _change_cfg_impl,
+    inputs = [],
+    outputs = ["//test/generated_inputs:change_cfg"],
+)
+
+def _input_from_different_cfg_impl(ctx):
+    rs_file = ctx.actions.declare_file(ctx.label.name + ".rs")
+
+    ctx.actions.write(
+        output = rs_file,
+        content = """
+pub fn generated_fn() -> String {
+    "Generated".to_owned()
+}
+
+#[cfg(test)]
+mod tests {
+    #[test]
+    fn test_generated() {
+        assert_eq!(super::generated_fn(), "Generated".to_owned());
+    }
+}
+""",
+    )
+
+    return OutputGroupInfo(generated_file = depset([rs_file]))
+
+input_from_different_cfg = rule(
+    implementation = _input_from_different_cfg_impl,
+    attrs = {
+        "_allowlist_function_transition": attr.label(
+            default = Label("@bazel_tools//tools/allowlists/function_transition_allowlist"),
+        ),
+    },
+    cfg = change_cfg_transition,
+)
diff --git a/third_party/rules_rust/test/generated_inputs/lib.rs b/third_party/rules_rust/test/generated_inputs/lib.rs
new file mode 100644
index 0000000..5982f9d
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/lib.rs
@@ -0,0 +1,18 @@
+mod src;
+
+pub fn forty_two_as_string() -> String {
+    format!("{}", src::forty_two())
+}
+
+#[cfg(test)]
+mod test {
+    #[test]
+    fn test_forty_two() {
+        assert_eq!(super::src::forty_two(), 42);
+    }
+
+    #[test]
+    fn test_forty_two_as_string() {
+        assert_eq!(super::forty_two_as_string(), "42");
+    }
+}
diff --git a/third_party/rules_rust/test/generated_inputs/lib_for_src.rs b/third_party/rules_rust/test/generated_inputs/lib_for_src.rs
new file mode 100644
index 0000000..6d2a037
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/lib_for_src.rs
@@ -0,0 +1,3 @@
+pub fn forty_two() -> i32 {
+    42
+}
diff --git a/third_party/rules_rust/test/generated_inputs/main.rs b/third_party/rules_rust/test/generated_inputs/main.rs
new file mode 100644
index 0000000..5fa52c3
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/main.rs
@@ -0,0 +1,4 @@
+mod src;
+fn main() {
+    println!("{}", &src::forty_two());
+}
diff --git a/third_party/rules_rust/test/generated_inputs/root.rs b/third_party/rules_rust/test/generated_inputs/root.rs
new file mode 100644
index 0000000..3c59428
--- /dev/null
+++ b/third_party/rules_rust/test/generated_inputs/root.rs
@@ -0,0 +1,13 @@
+mod generated_in_different_cfg;
+
+pub fn use_generated_fn() -> String {
+    "Using generated function: ".to_owned() + &generated_in_different_cfg::generated_fn() 
+}
+
+#[cfg(test)]
+mod tests {
+    #[test]
+    fn test_use_generated_fn() {
+        assert_eq!(super::use_generated_fn(), "Using generated function: Generated".to_owned());
+    }
+}
diff --git a/third_party/rules_rust/test/inline_test_with_deps/dep/BUILD.bazel b/third_party/rules_rust/test/inline_test_with_deps/dep/BUILD.bazel
index 3435e68..8064c26 100644
--- a/third_party/rules_rust/test/inline_test_with_deps/dep/BUILD.bazel
+++ b/third_party/rules_rust/test/inline_test_with_deps/dep/BUILD.bazel
@@ -5,4 +5,5 @@
 rust_library(
     name = "dep",
     srcs = ["src/lib.rs"],
+    edition = "2018",
 )
diff --git a/third_party/rules_rust/test/inline_test_with_deps/test/BUILD.bazel b/third_party/rules_rust/test/inline_test_with_deps/test/BUILD.bazel
index 372199c..20754c6 100644
--- a/third_party/rules_rust/test/inline_test_with_deps/test/BUILD.bazel
+++ b/third_party/rules_rust/test/inline_test_with_deps/test/BUILD.bazel
@@ -11,5 +11,6 @@
 rust_test(
     name = "inline_test",
     crate = ":inline",
+    edition = "2018",
     deps = ["//test/inline_test_with_deps/dep"],
 )
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/BUILD.bazel b/third_party/rules_rust/test/linker_inputs_propagation/BUILD.bazel
new file mode 100644
index 0000000..5ff0945
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/BUILD.bazel
@@ -0,0 +1,155 @@
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_import", "cc_library", "cc_test")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+    "rust_shared_library",
+    "rust_static_library",
+)
+
+package(default_visibility = ["//test/unit/linker_inputs_propagation:__pkg__"])
+
+rust_library(
+    name = "foo",
+    srcs = ["foo.rs"],
+    edition = "2018",
+)
+
+cc_library(
+    name = "foo_shared",
+    srcs = [
+        "foo_shared.cc",
+    ],
+    hdrs = ["foo_shared.h"],
+    target_compatible_with = [
+        "@platforms//os:linux",
+    ],
+)
+
+cc_binary(
+    name = "foo_shared.dll",
+    srcs = [
+        "foo_shared.cc",
+        "foo_shared.h",
+    ],
+    features = ["windows_export_all_symbols"],
+    linkshared = True,
+    target_compatible_with = [
+        "@platforms//os:windows",
+    ],
+)
+
+filegroup(
+    name = "shared_library_file",
+    srcs = [":foo_shared"],
+    output_group = "dynamic_library",
+)
+
+filegroup(
+    name = "interface_library_file",
+    srcs = [":foo_shared.dll"],
+    output_group = "interface_library",
+)
+
+filegroup(
+    name = "empty",
+    srcs = ["empty.so"],
+)
+
+cc_import(
+    name = "import_foo_shared",
+    hdrs = ["foo_shared.h"],
+    interface_library = select({
+        "@platforms//os:linux": "shared_library_file",
+        "@platforms//os:windows": "interface_library_file",
+        "//conditions:default": ":empty",
+    }),
+    shared_library = select({
+        "@platforms//os:linux": "shared_library_file",
+        "@platforms//os:windows": "foo_shared.dll",
+        "//conditions:default": ":empty",
+    }),
+)
+
+rust_static_library(
+    name = "staticlib_uses_foo",
+    srcs = ["bar_uses_foo.rs"],
+    edition = "2018",
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":foo"],
+)
+
+rust_shared_library(
+    name = "sharedlib_uses_foo",
+    srcs = ["bar_uses_foo.rs"],
+    edition = "2018",
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":foo"],
+)
+
+rust_static_library(
+    name = "staticlib_uses_shared_foo",
+    srcs = ["bar_uses_shared_foo.rs"],
+    edition = "2018",
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":import_foo_shared"],
+)
+
+rust_static_library(
+    name = "sharedlib_uses_shared_foo",
+    srcs = ["bar_uses_shared_foo.rs"],
+    edition = "2018",
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":import_foo_shared"],
+)
+
+cc_test(
+    name = "depends_on_foo_via_staticlib",
+    srcs = ["baz.cc"],
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":staticlib_uses_foo"],
+)
+
+cc_test(
+    name = "depends_on_foo_via_sharedlib",
+    srcs = ["baz.cc"],
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":sharedlib_uses_foo"],
+)
+
+cc_test(
+    name = "depends_on_shared_foo_via_sharedlib",
+    srcs = ["baz.cc"],
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":sharedlib_uses_shared_foo"],
+)
+
+cc_test(
+    name = "depends_on_shared_foo_via_staticlib",
+    srcs = ["baz.cc"],
+    target_compatible_with = [
+        "@platforms//os:linux",
+        "@platforms//os:windows",
+    ],
+    deps = [":staticlib_uses_shared_foo"],
+)
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_foo.rs b/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_foo.rs
new file mode 100644
index 0000000..3dc7995
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_foo.rs
@@ -0,0 +1,9 @@
+/** Safety doc.
+
+  # Safety
+
+*/
+#[no_mangle]
+pub unsafe extern "C" fn double_foo() -> i32 {
+    2 * foo::foo()
+}
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_shared_foo.rs b/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_shared_foo.rs
new file mode 100644
index 0000000..75c232d
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/bar_uses_shared_foo.rs
@@ -0,0 +1,13 @@
+extern "C" {
+    pub fn foo() -> i32;
+}
+
+/** Safety doc.
+
+  # Safety
+
+*/
+#[no_mangle]
+pub unsafe extern "C" fn double_foo() -> i32 {
+    2 * foo()
+}
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/baz.cc b/third_party/rules_rust/test/linker_inputs_propagation/baz.cc
new file mode 100644
index 0000000..a46b501
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/baz.cc
@@ -0,0 +1,10 @@
+#include <assert.h>
+#include <inttypes.h>
+#include <stdlib.h>
+
+extern "C" int32_t double_foo();
+
+int main(int argc, char** argv) {
+  assert(double_foo() == 84);
+  return EXIT_SUCCESS;
+}
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/empty.so b/third_party/rules_rust/test/linker_inputs_propagation/empty.so
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/empty.so
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/foo.rs b/third_party/rules_rust/test/linker_inputs_propagation/foo.rs
new file mode 100644
index 0000000..185ce22
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/foo.rs
@@ -0,0 +1,3 @@
+pub fn foo() -> i32 {
+    42
+}
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.cc b/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.cc
new file mode 100644
index 0000000..f569afb
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.cc
@@ -0,0 +1,5 @@
+#include <stdint.h>
+
+extern "C" {
+int32_t foo() { return 42; }
+}
diff --git a/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.h b/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.h
new file mode 100644
index 0000000..40acc2d
--- /dev/null
+++ b/third_party/rules_rust/test/linker_inputs_propagation/foo_shared.h
@@ -0,0 +1,5 @@
+#include <stdint.h>
+
+extern "C" {
+int32_t foo();
+}
diff --git a/third_party/rules_rust/test/load_arbitrary_tool/load_arbitrary_tool_test.bzl b/third_party/rules_rust/test/load_arbitrary_tool/load_arbitrary_tool_test.bzl
index 8906329..495b6bb 100644
--- a/third_party/rules_rust/test/load_arbitrary_tool/load_arbitrary_tool_test.bzl
+++ b/third_party/rules_rust/test/load_arbitrary_tool/load_arbitrary_tool_test.bzl
@@ -1,16 +1,11 @@
 # buildifier: disable=module-docstring
 load("//rust:repositories.bzl", "load_arbitrary_tool")
+load("//rust/platform:triple.bzl", "get_host_triple")
+load("//rust/platform:triple_mappings.bzl", "system_to_binary_ext")
 
 def _load_arbitrary_tool_test_impl(repository_ctx):
-    if "mac" in repository_ctx.os.name:
-        target_triple = "x86_64-apple-darwin"
-        cargo_bin = "bin/cargo"
-    elif "windows" in repository_ctx.os.name:
-        target_triple = "x86_64-pc-windows-msvc"
-        cargo_bin = "bin/cargo.exe"
-    else:
-        target_triple = "x86_64-unknown-linux-gnu"
-        cargo_bin = "bin/cargo"
+    host_triple = get_host_triple(repository_ctx)
+    cargo_bin = "bin/cargo" + system_to_binary_ext(host_triple.system)
 
     # Download cargo
     load_arbitrary_tool(
@@ -19,7 +14,7 @@
         tool_subdirectories = ["cargo"],
         version = "1.53.0",
         iso_date = None,
-        target_triple = target_triple,
+        target_triple = host_triple.str,
     )
 
     repo_path = repository_ctx.path(".")
diff --git a/third_party/rules_rust/test/native_deps/BUILD.bazel b/third_party/rules_rust/test/native_deps/BUILD.bazel
new file mode 100644
index 0000000..5c5d57a
--- /dev/null
+++ b/third_party/rules_rust/test/native_deps/BUILD.bazel
@@ -0,0 +1,26 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+    "rust_test",
+)
+
+rust_library(
+    name = "transitive",
+    srcs = ["transitive.rs"],
+    edition = "2018",
+)
+
+cc_library(
+    name = "direct",
+    srcs = ["direct.cc"],
+    hdrs = ["direct.h"],
+    deps = ["transitive"],
+)
+
+rust_test(
+    name = "main",
+    srcs = ["main.rs"],
+    edition = "2018",
+    deps = ["direct"],
+)
diff --git a/third_party/rules_rust/test/native_deps/direct.cc b/third_party/rules_rust/test/native_deps/direct.cc
new file mode 100644
index 0000000..a809ae8
--- /dev/null
+++ b/third_party/rules_rust/test/native_deps/direct.cc
@@ -0,0 +1,6 @@
+#include "direct.h"
+
+RustStruct MakeRustStruct() {
+  RustStruct result;
+  return result;
+}
diff --git a/third_party/rules_rust/test/native_deps/direct.h b/third_party/rules_rust/test/native_deps/direct.h
new file mode 100644
index 0000000..f4f4b92
--- /dev/null
+++ b/third_party/rules_rust/test/native_deps/direct.h
@@ -0,0 +1,4 @@
+struct RustStruct{};
+
+extern "C" RustStruct MakeRustStruct();
+
diff --git a/third_party/rules_rust/test/native_deps/main.rs b/third_party/rules_rust/test/native_deps/main.rs
new file mode 100644
index 0000000..103d374
--- /dev/null
+++ b/third_party/rules_rust/test/native_deps/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("Done!");
+}
diff --git a/third_party/rules_rust/test/native_deps/transitive.rs b/third_party/rules_rust/test/native_deps/transitive.rs
new file mode 100644
index 0000000..987bc30
--- /dev/null
+++ b/third_party/rules_rust/test/native_deps/transitive.rs
@@ -0,0 +1,2 @@
+#[repr(C)]
+pub struct RustStruct {}
diff --git a/third_party/rules_rust/proto/raze/remote/BUILD.bazel b/third_party/rules_rust/test/native_deps/user.rs
similarity index 100%
rename from third_party/rules_rust/proto/raze/remote/BUILD.bazel
rename to third_party/rules_rust/test/native_deps/user.rs
diff --git a/third_party/rules_rust/test/out_dir_in_tests/BUILD.bazel b/third_party/rules_rust/test/out_dir_in_tests/BUILD.bazel
index 1ee4ce9..c3d8d99 100644
--- a/third_party/rules_rust/test/out_dir_in_tests/BUILD.bazel
+++ b/third_party/rules_rust/test/out_dir_in_tests/BUILD.bazel
@@ -4,6 +4,7 @@
 cargo_build_script(
     name = "build_script",
     srcs = ["build.rs"],
+    edition = "2018",
 )
 
 rust_library(
@@ -11,12 +12,14 @@
     srcs = [
         "src/lib.rs",
     ],
+    edition = "2018",
     deps = [":build_script"],
 )
 
 rust_test(
     name = "demo_lib_test",
     crate = ":demo_lib",
+    edition = "2018",
 )
 
 rust_test_suite(
@@ -26,4 +29,5 @@
     # to the underlying rust_test rules. This will make OUT_DIR
     # available when compiling integration tests.
     crate = ":demo_lib",
+    edition = "2018",
 )
diff --git a/third_party/rules_rust/test/process_wrapper/BUILD.bazel b/third_party/rules_rust/test/process_wrapper/BUILD.bazel
index a9f2189..dcce878 100644
--- a/third_party/rules_rust/test/process_wrapper/BUILD.bazel
+++ b/third_party/rules_rust/test/process_wrapper/BUILD.bazel
@@ -1,6 +1,7 @@
 load("@bazel_skylib//rules:build_test.bzl", "build_test")
 load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
 load("@rules_cc//cc:defs.bzl", "cc_binary")
+load("//rust:defs.bzl", "rust_binary", "rust_test")
 load("//test/process_wrapper:process_wrapper_tester.bzl", "process_wrapper_tester")
 
 cc_binary(
@@ -148,3 +149,20 @@
         ":process_wrapper_combined",
     ],
 )
+
+rust_binary(
+    name = "fake_rustc",
+    srcs = ["fake_rustc.rs"],
+    edition = "2018",
+)
+
+rust_test(
+    name = "rustc_quit_on_rmeta",
+    srcs = ["rustc_quit_on_rmeta.rs"],
+    data = [
+        ":fake_rustc",
+        "//util/process_wrapper",
+    ],
+    edition = "2018",
+    deps = ["//tools/runfiles"],
+)
diff --git a/third_party/rules_rust/test/process_wrapper/fake_rustc.rs b/third_party/rules_rust/test/process_wrapper/fake_rustc.rs
new file mode 100755
index 0000000..d7937c6
--- /dev/null
+++ b/third_party/rules_rust/test/process_wrapper/fake_rustc.rs
@@ -0,0 +1,8 @@
+//! This binary mocks the output of rustc when run with `--error-format=json` and `--json=artifacts`.
+
+fn main() {
+    eprintln!(r#"{{"rendered": "should be\nin output"}}"#);
+    eprintln!(r#"{{"emit": "metadata"}}"#);
+    std::thread::sleep(std::time::Duration::from_secs(1));
+    eprintln!(r#"{{"rendered": "should not be in output"}}"#);
+}
diff --git a/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.bzl b/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.bzl
index 9a102a8..cf7e519 100644
--- a/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.bzl
+++ b/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.bzl
@@ -83,7 +83,7 @@
             cfg = "exec",
         ),
         "_process_wrapper_tester": attr.label(
-            default = "//test/process_wrapper:process_wrapper_tester",
+            default = Label("//test/process_wrapper:process_wrapper_tester"),
             executable = True,
             cfg = "exec",
         ),
diff --git a/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.cc b/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.cc
index 7cf1c02..ab4e96e 100644
--- a/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.cc
+++ b/third_party/rules_rust/test/process_wrapper/process_wrapper_tester.cc
@@ -53,7 +53,8 @@
     if (env.rfind("CURRENT_DIR", 0) == 0) {
       found = true;
       if (env.find("${pwd}") != std::string::npos) {
-        std::cerr << "error: environment variable ${pwd} substitution failed.\n";
+        std::cerr
+            << "error: environment variable ${pwd} substitution failed.\n";
         std::exit(1);
       }
       break;
@@ -131,9 +132,7 @@
   }
 }
 
-void test_stderr() {
-  std::cerr << "This is the stderr output";
-}
+void test_stderr() { std::cerr << "This is the stderr output"; }
 
 int main(int argc, const char* argv[], const char* envp[]) {
   if (argc < 4) {
diff --git a/third_party/rules_rust/test/process_wrapper/rustc_quit_on_rmeta.rs b/third_party/rules_rust/test/process_wrapper/rustc_quit_on_rmeta.rs
new file mode 100644
index 0000000..5559508
--- /dev/null
+++ b/third_party/rules_rust/test/process_wrapper/rustc_quit_on_rmeta.rs
@@ -0,0 +1,99 @@
+#[cfg(test)]
+mod test {
+    use std::path::PathBuf;
+    use std::process::Command;
+    use std::str;
+
+    use runfiles::Runfiles;
+
+    /// fake_rustc runs the fake_rustc binary under process_wrapper with the specified
+    /// process wrapper arguments. No arguments are passed to fake_rustc itself.
+    fn fake_rustc(process_wrapper_args: &[&'static str]) -> String {
+        let r = Runfiles::create().unwrap();
+        let fake_rustc = r.rlocation(
+            &[
+                "rules_rust",
+                "test",
+                "process_wrapper",
+                if cfg!(unix) {
+                    "fake_rustc"
+                } else {
+                    "fake_rustc.exe"
+                },
+            ]
+            .iter()
+            .collect::<PathBuf>(),
+        );
+
+        let process_wrapper = r.rlocation(
+            &[
+                "rules_rust",
+                "util",
+                "process_wrapper",
+                if cfg!(unix) {
+                    "process_wrapper"
+                } else {
+                    "process_wrapper.exe"
+                },
+            ]
+            .iter()
+            .collect::<PathBuf>(),
+        );
+
+        let output = Command::new(process_wrapper)
+            .args(process_wrapper_args)
+            .arg("--")
+            .arg(fake_rustc)
+            .output()
+            .unwrap();
+
+        assert!(
+            output.status.success(),
+            "unable to run process_wrapper: {} {}",
+            str::from_utf8(&output.stdout).unwrap(),
+            str::from_utf8(&output.stderr).unwrap(),
+        );
+
+        String::from_utf8(output.stderr).unwrap()
+    }
+
+    #[test]
+    fn test_rustc_quit_on_rmeta_quits() {
+        let out_content = fake_rustc(&[
+            "--rustc-quit-on-rmeta",
+            "true",
+            "--rustc-output-format",
+            "rendered",
+        ]);
+        assert!(
+            !out_content.contains("should not be in output"),
+            "output should not contain 'should not be in output' but did: {}",
+            out_content
+        );
+    }
+
+    #[test]
+    fn test_rustc_quit_on_rmeta_output_json() {
+        let json_content = fake_rustc(&[
+            "--rustc-quit-on-rmeta",
+            "true",
+            "--rustc-output-format",
+            "json",
+        ]);
+        assert_eq!(
+            json_content,
+            concat!(r#"{"rendered": "should be\nin output"}"#, "\n")
+        );
+    }
+
+    #[test]
+    fn test_rustc_quit_on_rmeta_output_rendered() {
+        let rendered_content = fake_rustc(&[
+            "--rustc-quit-on-rmeta",
+            "true",
+            "--rustc-output-format",
+            "rendered",
+        ]);
+        assert_eq!(rendered_content, "should be\nin output");
+    }
+}
diff --git a/third_party/rules_rust/test/renamed_deps/BUILD.bazel b/third_party/rules_rust/test/renamed_deps/BUILD.bazel
index 9209888..e7dc187 100644
--- a/third_party/rules_rust/test/renamed_deps/BUILD.bazel
+++ b/third_party/rules_rust/test/renamed_deps/BUILD.bazel
@@ -3,11 +3,13 @@
 rust_library(
     name = "mod1",
     srcs = ["mod1.rs"],
+    edition = "2018",
 )
 
 rust_library(
     name = "mod2",
     srcs = ["mod2.rs"],
+    edition = "2018",
     deps = [":mod1"],
 )
 
@@ -18,6 +20,7 @@
         ":mod1": "alias_a",
         ":mod2": "alias_b",
     },
+    edition = "2018",
     deps = [
         ":mod1",
         ":mod2",
@@ -27,11 +30,13 @@
 rust_test(
     name = "mod1_test",
     crate = ":mod1",
+    edition = "2018",
 )
 
 rust_test(
     name = "mod2_test",
     crate = ":mod2",
+    edition = "2018",
 )
 
 rust_test(
@@ -41,4 +46,5 @@
         ":mod2": "alias_b",
     },
     crate = ":mod3",
+    edition = "2018",
 )
diff --git a/third_party/rules_rust/test/rust/BUILD.bazel b/third_party/rules_rust/test/rust/BUILD.bazel
index ddb0110..1977aed 100644
--- a/third_party/rules_rust/test/rust/BUILD.bazel
+++ b/third_party/rules_rust/test/rust/BUILD.bazel
@@ -1,4 +1,4 @@
-load("//rust:defs.bzl", "rust_binary", "rust_library")
+load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
 
 package(default_visibility = ["//visibility:public"])
 
@@ -8,10 +8,17 @@
         "src/greeter.rs",
         "src/lib.rs",
     ],
+    edition = "2018",
 )
 
 rust_binary(
     name = "hello_world",
     srcs = ["src/main.rs"],
+    edition = "2018",
     deps = [":hello_lib"],
 )
+
+rust_test(
+    name = "hello_lib_test",
+    crate = ":hello_lib",
+)
diff --git a/third_party/rules_rust/test/rust/src/lib.rs b/third_party/rules_rust/test/rust/src/lib.rs
index 9dc6089..bee47c9 100644
--- a/third_party/rules_rust/test/rust/src/lib.rs
+++ b/third_party/rules_rust/test/rust/src/lib.rs
@@ -12,4 +12,5 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#![crate_name = "hello_lib"]
 pub mod greeter;
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/BUILD.bazel b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/BUILD.bazel
index 2a79bbe..899fa0e 100644
--- a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/BUILD.bazel
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/BUILD.bazel
@@ -1,25 +1,70 @@
 load("@rules_rust//rust:defs.bzl", "rust_library", "rust_proc_macro", "rust_test")
+load(":custom_alias.bzl", "custom_alias")
 
 rust_library(
     name = "mylib",
     srcs = ["mylib.rs"],
+    edition = "2018",
     proc_macro_deps = [":proc_macro_dep"],
-    deps = [":lib_dep"],
+    deps = [
+        ":alias_dep",
+        ":custom_alias_dep",
+        ":lib_dep",
+    ],
 )
 
 rust_library(
     name = "lib_dep",
     srcs = ["lib_dep.rs"],
+    edition = "2018",
+)
+
+alias(
+    name = "alias_dep",
+    actual = ":actual_dep",
+)
+
+rust_library(
+    name = "actual_dep",
+    srcs = ["actual_dep.rs"],
+    edition = "2018",
+    deps = [":dep_of_aliased_dep"],
+)
+
+rust_library(
+    name = "dep_of_aliased_dep",
+    srcs = ["dep_of_aliased_dep.rs"],
+    edition = "2018",
+)
+
+custom_alias(
+    name = "custom_alias_dep",
+    actual = ":custom_actual_dep",
+)
+
+rust_library(
+    name = "custom_actual_dep",
+    srcs = ["custom_actual_dep.rs"],
+    edition = "2018",
+    deps = [":dep_of_custom_aliased_dep"],
+)
+
+rust_library(
+    name = "dep_of_custom_aliased_dep",
+    srcs = ["dep_of_custom_aliased_dep.rs"],
+    edition = "2018",
 )
 
 rust_proc_macro(
     name = "proc_macro_dep",
     srcs = ["proc_macro_dep.rs"],
+    edition = "2018",
 )
 
 rust_test(
     name = "mylib_test",
     crate = ":mylib",
+    edition = "2018",
     proc_macro_deps = [":extra_proc_macro_dep"],
     deps = [":extra_test_dep"],
 )
@@ -27,11 +72,13 @@
 rust_library(
     name = "extra_test_dep",
     srcs = ["extra_test_dep.rs"],
+    edition = "2018",
 )
 
 rust_proc_macro(
     name = "extra_proc_macro_dep",
     srcs = ["extra_proc_macro_dep.rs"],
+    edition = "2018",
 )
 
 rust_test(
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/actual_dep.rs b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/actual_dep.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/actual_dep.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_actual_dep.rs b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_actual_dep.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_actual_dep.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_alias.bzl b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_alias.bzl
new file mode 100644
index 0000000..cbf1bbe
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/custom_alias.bzl
@@ -0,0 +1,17 @@
+"""Alias-like rule for testing."""
+
+load("@rules_rust//rust:defs.bzl", "rust_common")
+
+def _custom_alias_impl(ctx):
+    actual = ctx.attr.actual
+    return [actual[rust_common.crate_info], actual[rust_common.dep_info]]
+
+custom_alias = rule(
+    implementation = _custom_alias_impl,
+    attrs = {
+        "actual": attr.label(
+            allow_single_file = True,
+            mandatory = True,
+        ),
+    },
+)
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_aliased_dep.rs b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_aliased_dep.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_aliased_dep.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_custom_aliased_dep.rs b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_custom_aliased_dep.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/dep_of_custom_aliased_dep.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/rust_project_json_test.rs b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/rust_project_json_test.rs
index b934ac2..f347948 100644
--- a/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/rust_project_json_test.rs
+++ b/third_party/rules_rust/test/rust_analyzer/aspect_traversal_test/rust_project_json_test.rs
@@ -12,6 +12,10 @@
 
         for dep in &[
             "lib_dep",
+            "actual_dep",
+            "dep_of_aliased_dep",
+            "custom_actual_dep",
+            "dep_of_custom_aliased_dep",
             "extra_test_dep",
             "proc_macro_dep",
             "extra_proc_macro_dep",
diff --git a/third_party/rules_rust/test/rust_analyzer/merging_crates_test/BUILD.bazel b/third_party/rules_rust/test/rust_analyzer/merging_crates_test/BUILD.bazel
index 4a7eb3d..5023e0a 100644
--- a/third_party/rules_rust/test/rust_analyzer/merging_crates_test/BUILD.bazel
+++ b/third_party/rules_rust/test/rust_analyzer/merging_crates_test/BUILD.bazel
@@ -3,23 +3,27 @@
 rust_library(
     name = "mylib",
     srcs = ["mylib.rs"],
+    edition = "2018",
     deps = [":lib_dep"],
 )
 
 rust_library(
     name = "lib_dep",
     srcs = ["lib_dep.rs"],
+    edition = "2018",
 )
 
 rust_test(
     name = "mylib_test",
     crate = ":mylib",
+    edition = "2018",
     deps = [":extra_test_dep"],
 )
 
 rust_library(
     name = "extra_test_dep",
     srcs = ["extra_test_dep.rs"],
+    edition = "2018",
 )
 
 rust_test(
diff --git a/third_party/rules_rust/test/rust_analyzer/rust_analyzer_test_runner.sh b/third_party/rules_rust/test/rust_analyzer/rust_analyzer_test_runner.sh
index 69f9a91..1696506 100755
--- a/third_party/rules_rust/test/rust_analyzer/rust_analyzer_test_runner.sh
+++ b/third_party/rules_rust/test/rust_analyzer/rust_analyzer_test_runner.sh
@@ -21,7 +21,7 @@
     local new_workspace="${temp_dir}/rules_rust_test_rust_analyzer"
 
     mkdir -p "${new_workspace}"
-    cat << EOF > "${new_workspace}/WORKSPACE.bazel"
+    cat <<EOF >"${new_workspace}/WORKSPACE.bazel"
 workspace(name = "rules_rust_test_rust_analyzer")
 local_repository(
     name = "rules_rust",
@@ -29,11 +29,11 @@
 )
 load("@rules_rust//rust:repositories.bzl", "rust_repositories")
 rust_repositories(include_rustc_srcs = True)
-load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_deps")
-rust_analyzer_deps()
+load("@rules_rust//tools/rust_analyzer:deps.bzl", "rust_analyzer_dependencies")
+rust_analyzer_dependencies()
 EOF
 
-cat << EOF > "${new_workspace}/.bazelrc"
+    cat <<EOF >"${new_workspace}/.bazelrc"
 build --keep_going
 test --test_output=errors
 # The 'strict' config is used to ensure extra checks are run on the test
@@ -45,17 +45,18 @@
 build:strict --output_groups=+clippy_checks
 EOF
 
-  echo "${new_workspace}"
+    echo "${new_workspace}"
 }
 
 function rust_analyzer_test() {
     local source_dir="$1"
     local workspace="$2"
-    
+    local generator_arg="$3"
+
     echo "Testing '$(basename "${source_dir}")'"
-    rm -f "${workspace}"/*.rs "${workspace}"/*.json "${workspace}/BUILD.bazel"
+    rm -f "${workspace}"/*.rs "${workspace}"/*.json "${workspace}"/*.bzl "${workspace}/BUILD.bazel" "${workspace}/BUILD.bazel-e"
     cp -r "${source_dir}"/* "${workspace}"
-    
+
     # Drop the 'manual' tags
     if [ "$(uname)" == "Darwin" ]; then
         SEDOPTS=(-i '' -e)
@@ -63,17 +64,29 @@
         SEDOPTS=(-i)
     fi
     sed ${SEDOPTS[@]} 's/"manual"//' "${workspace}/BUILD.bazel"
-    
-    pushd "${workspace}" &> /dev/null
+
+    pushd "${workspace}" &>/dev/null
     echo "Generating rust-project.json..."
-    bazel run "@rules_rust//tools/rust_analyzer:gen_rust_project"
+    if [[ -n "${generator_arg}" ]]; then
+        bazel run "@rules_rust//tools/rust_analyzer:gen_rust_project" -- "${generator_arg}"
+    else
+        bazel run "@rules_rust//tools/rust_analyzer:gen_rust_project"
+    fi
     echo "Building..."
     bazel build //...
     echo "Testing..."
     bazel test //...
     echo "Building with Aspects..."
     bazel build //... --config=strict
-    popd &> /dev/null
+    popd &>/dev/null
+}
+
+function cleanup() {
+    local workspace="$1"
+    pushd "${workspace}" &>/dev/null
+    bazel clean --async
+    popd &>/dev/null
+    rm -rf "${workspace}"
 }
 
 function run_test_suite() {
@@ -86,10 +99,20 @@
             continue
         fi
 
-        rust_analyzer_test "${test_dir}" "${temp_workspace}"
+        # Some tests have arguments that need to be passed to the rust-project.json generator.
+        if [[ "${test_dir}" = "aspect_traversal_test" ]]; then
+            test_arg="//mylib_test"
+        elif [[ "${test_dir}" = "merging_crates_test" ]]; then
+            test_arg="//mylib_test"
+        else
+            test_arg=""
+        fi
+
+        rust_analyzer_test "${test_dir}" "${temp_workspace}" "${test_arg}"
     done
 
-    rm -rf "${temp_workspace}"
+    echo "Done"
+    cleanup "${temp_workspace}"
 }
 
 run_test_suite
diff --git a/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/BUILD.bazel b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/BUILD.bazel
new file mode 100644
index 0000000..7efd036
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/BUILD.bazel
@@ -0,0 +1,38 @@
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_shared_library",
+    "rust_static_library",
+    "rust_test",
+)
+
+rust_shared_library(
+    name = "greeter_cdylib",
+    srcs = [
+        "greeter.rs",
+        "shared_lib.rs",
+    ],
+    crate_root = "shared_lib.rs",
+    edition = "2018",
+)
+
+rust_static_library(
+    name = "greeter_staticlib",
+    srcs = [
+        "greeter.rs",
+        "static_lib.rs",
+    ],
+    crate_root = "static_lib.rs",
+    edition = "2018",
+)
+
+rust_test(
+    name = "rust_project_json_test",
+    srcs = ["rust_project_json_test.rs"],
+    data = [":rust-project.json"],
+    edition = "2018",
+    env = {"RUST_PROJECT_JSON": "$(rootpath :rust-project.json)"},
+    # This target is tagged as manual since it's not expected to pass in
+    # contexts outside of `//test/rust_analyzer:rust_analyzer_test`. Run
+    # that target to execute this test.
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/greeter.rs b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/greeter.rs
new file mode 100644
index 0000000..ac87521
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/greeter.rs
@@ -0,0 +1,61 @@
+/// Object that displays a greeting.
+pub struct Greeter {
+    greeting: String,
+}
+
+/// Implementation of Greeter.
+impl Greeter {
+    /// Constructs a new `Greeter`.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use hello_lib::greeter::Greeter;
+    ///
+    /// let greeter = Greeter::new("Hello");
+    /// ```
+    pub fn new(greeting: &str) -> Greeter {
+        Greeter {
+            greeting: greeting.to_string(),
+        }
+    }
+
+    /// Returns the greeting as a string.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use hello_lib::greeter::Greeter;
+    ///
+    /// let greeter = Greeter::new("Hello");
+    /// let greeting = greeter.greeting("World");
+    /// ```
+    pub fn greeting(&self, thing: &str) -> String {
+        format!("{} {}", &self.greeting, thing)
+    }
+
+    /// Prints the greeting.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use hello_lib::greeter::Greeter;
+    ///
+    /// let greeter = Greeter::new("Hello");
+    /// greeter.greet("World");
+    /// ```
+    pub fn greet(&self, thing: &str) {
+        println!("{} {}", &self.greeting, thing);
+    }
+}
+
+#[cfg(test)]
+mod test {
+    use super::Greeter;
+
+    #[test]
+    fn test_greeting() {
+        let hello = Greeter::new("Hi");
+        assert_eq!("Hi Rust", hello.greeting("Rust"));
+    }
+}
diff --git a/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/rust_project_json_test.rs b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/rust_project_json_test.rs
new file mode 100644
index 0000000..fc573d6
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/rust_project_json_test.rs
@@ -0,0 +1,22 @@
+#[cfg(test)]
+mod tests {
+    use std::env;
+    use std::path::PathBuf;
+
+    #[test]
+    fn test_deps_of_crate_and_its_test_are_merged() {
+        let rust_project_path = PathBuf::from(env::var("RUST_PROJECT_JSON").unwrap());
+
+        let content = std::fs::read_to_string(&rust_project_path)
+            .unwrap_or_else(|_| panic!("couldn't open {:?}", &rust_project_path));
+
+        assert!(
+            content.contains(r#"{"display_name":"greeter_cdylib","root_module":"shared_lib.rs"#),
+            "expected rust-project.json to contain a rust_shared_library target."
+        );
+        assert!(
+            content.contains(r#"{"display_name":"greeter_staticlib","root_module":"static_lib.rs"#),
+            "expected rust-project.json to contain a rust_static_library target."
+        );
+    }
+}
diff --git a/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/shared_lib.rs b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/shared_lib.rs
new file mode 100644
index 0000000..44969c6
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/shared_lib.rs
@@ -0,0 +1 @@
+pub mod greeter;
diff --git a/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/static_lib.rs b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/static_lib.rs
new file mode 100644
index 0000000..44969c6
--- /dev/null
+++ b/third_party/rules_rust/test/rust_analyzer/static_and_shared_lib_test/static_lib.rs
@@ -0,0 +1 @@
+pub mod greeter;
diff --git a/third_party/rules_rust/test/rust_test_suite/BUILD.bazel b/third_party/rules_rust/test/rust_test_suite/BUILD.bazel
index 8490f8b..df8ed74 100644
--- a/third_party/rules_rust/test/rust_test_suite/BUILD.bazel
+++ b/third_party/rules_rust/test/rust_test_suite/BUILD.bazel
@@ -7,7 +7,7 @@
 )
 
 rust_test_suite(
-    name = "integrated_tests_suite",
+    name = "tests_suite",
     srcs = glob(["tests/**"]),
     edition = "2018",
     deps = [":math_lib"],
diff --git a/third_party/rules_rust/test/rustc_env_files/BUILD.bazel b/third_party/rules_rust/test/rustc_env_files/BUILD.bazel
index efb21b7..cb48b2e 100644
--- a/third_party/rules_rust/test/rustc_env_files/BUILD.bazel
+++ b/third_party/rules_rust/test/rustc_env_files/BUILD.bazel
@@ -1,3 +1,4 @@
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
 load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
 
 package(default_visibility = ["//visibility:public"])
@@ -5,19 +6,24 @@
 rust_binary(
     name = "hello_env",
     srcs = ["src/main.rs"],
+    edition = "2018",
     rustc_env_files = [":generate_rustc_env_file"],
 )
 
-genrule(
+write_file(
     name = "generate_rustc_env_file",
-    outs = ["rustc_env_file"],
-    cmd = "echo CARGO_PKG_VERSION=1.2.3 >> $@ && echo GREETING=Howdy >> $@",
+    out = "rustc_env_file",
+    content = [
+        "CARGO_PKG_VERSION=1.2.3",
+        "GREETING=Howdy",
+        "",
+    ],
 )
 
 sh_test(
     name = "output_test",
     srcs = ["output_test.sh"],
-    args = ["$(location :hello_env)"],
+    args = ["$(rootpath :hello_env)"],
     data = [":hello_env"],
 )
 
diff --git a/third_party/rules_rust/test/test_env_launcher/tests/run.rs b/third_party/rules_rust/test/test_env_launcher/tests/run.rs
index 7089671..4db9052 100644
--- a/third_party/rules_rust/test/test_env_launcher/tests/run.rs
+++ b/third_party/rules_rust/test/test_env_launcher/tests/run.rs
@@ -28,6 +28,6 @@
 
     // Ensure `execpath` expanded variables map to real files and have absolute paths
     let hello_world_src = std::path::PathBuf::from(std::env::var("HELLO_WORLD_SRC").unwrap());
-    assert!(!hello_world_bin.is_absolute());
+    assert!(!hello_world_src.is_absolute());
     assert!(hello_world_src.exists());
 }
diff --git a/third_party/rules_rust/test/unit/cc_info/cc_info_test.bzl b/third_party/rules_rust/test/unit/cc_info/cc_info_test.bzl
index 9873a1f..443a90a 100644
--- a/third_party/rules_rust/test/unit/cc_info/cc_info_test.bzl
+++ b/third_party/rules_rust/test/unit/cc_info/cc_info_test.bzl
@@ -105,27 +105,32 @@
     rust_library(
         name = "rlib",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_library(
         name = "rlib_with_dep",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":rlib"],
     )
 
     rust_binary(
         name = "bin",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_static_library(
         name = "staticlib",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_shared_library(
         name = "cdylib",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_proc_macro(
diff --git a/third_party/rules_rust/test/unit/cdylib_name/cdylib_name_analysis_test.bzl b/third_party/rules_rust/test/unit/cdylib_name/cdylib_name_analysis_test.bzl
index 7aefdda..731e84d 100644
--- a/third_party/rules_rust/test/unit/cdylib_name/cdylib_name_analysis_test.bzl
+++ b/third_party/rules_rust/test/unit/cdylib_name/cdylib_name_analysis_test.bzl
@@ -35,6 +35,7 @@
     rust_shared_library(
         name = "something",
         srcs = ["lib.rs"],
+        edition = "2018",
     )
 
     cdylib_name_test(
diff --git a/third_party/rules_rust/test/unit/check_runfiles/check_runfiles_test.bzl b/third_party/rules_rust/test/unit/check_runfiles/check_runfiles_test.bzl
index 94ee3d7..8dfb2ed 100644
--- a/third_party/rules_rust/test/unit/check_runfiles/check_runfiles_test.bzl
+++ b/third_party/rules_rust/test/unit/check_runfiles/check_runfiles_test.bzl
@@ -30,24 +30,28 @@
     rust_library(
         name = "foo_lib",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":libbar.so"],
     )
 
     rust_binary(
         name = "foo_bin",
         srcs = ["foo_main.rs"],
+        edition = "2018",
         deps = [":libbar.so"],
     )
 
     rust_shared_library(
         name = "foo_dylib",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":libbar.so"],
     )
 
     rust_static_library(
         name = "foo_static",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":libbar.so"],
     )
 
diff --git a/third_party/rules_rust/test/unit/clippy/clippy_test.bzl b/third_party/rules_rust/test/unit/clippy/clippy_test.bzl
index f08cb6c..37e9592 100644
--- a/third_party/rules_rust/test/unit/clippy/clippy_test.bzl
+++ b/third_party/rules_rust/test/unit/clippy/clippy_test.bzl
@@ -62,15 +62,29 @@
         ],
     )
 
-def make_clippy_aspect_unittest(impl):
+_CLIPPY_EXPLICIT_FLAGS = [
+    "-Dwarnings",
+    "-A",
+    "clippy::needless_return",
+]
+
+def _clippy_aspect_with_explicit_flags_test_impl(ctx):
+    return _clippy_aspect_action_has_flag_impl(
+        ctx,
+        _CLIPPY_EXPLICIT_FLAGS,
+    )
+
+def make_clippy_aspect_unittest(impl, **kwargs):
     return analysistest.make(
         impl,
         extra_target_under_test_aspects = [rust_clippy_aspect],
+        **kwargs
     )
 
 binary_clippy_aspect_action_has_warnings_flag_test = make_clippy_aspect_unittest(_binary_clippy_aspect_action_has_warnings_flag_test_impl)
 library_clippy_aspect_action_has_warnings_flag_test = make_clippy_aspect_unittest(_library_clippy_aspect_action_has_warnings_flag_test_impl)
 test_clippy_aspect_action_has_warnings_flag_test = make_clippy_aspect_unittest(_test_clippy_aspect_action_has_warnings_flag_test_impl)
+clippy_aspect_with_explicit_flags_test = make_clippy_aspect_unittest(_clippy_aspect_with_explicit_flags_test_impl, config_settings = {"@//:clippy_flags": _CLIPPY_EXPLICIT_FLAGS})
 
 def clippy_test_suite(name):
     """Entry-point macro called from the BUILD file.
@@ -91,6 +105,18 @@
         name = "test_clippy_aspect_action_has_warnings_flag_test",
         target_under_test = Label("//test/clippy:ok_test"),
     )
+    clippy_aspect_with_explicit_flags_test(
+        name = "binary_clippy_aspect_with_explicit_flags_test",
+        target_under_test = Label("//test/clippy:ok_binary"),
+    )
+    clippy_aspect_with_explicit_flags_test(
+        name = "library_clippy_aspect_with_explicit_flags_test",
+        target_under_test = Label("//test/clippy:ok_library"),
+    )
+    clippy_aspect_with_explicit_flags_test(
+        name = "test_clippy_aspect_with_explicit_flags_test",
+        target_under_test = Label("//test/clippy:ok_test"),
+    )
 
     native.test_suite(
         name = name,
@@ -98,5 +124,8 @@
             ":binary_clippy_aspect_action_has_warnings_flag_test",
             ":library_clippy_aspect_action_has_warnings_flag_test",
             ":test_clippy_aspect_action_has_warnings_flag_test",
+            ":binary_clippy_aspect_with_explicit_flags_test",
+            ":library_clippy_aspect_with_explicit_flags_test",
+            ":test_clippy_aspect_with_explicit_flags_test",
         ],
     )
diff --git a/third_party/rules_rust/test/unit/consistent_crate_name/with_modified_crate_name.bzl b/third_party/rules_rust/test/unit/consistent_crate_name/with_modified_crate_name.bzl
index f30d8be..dee1321 100644
--- a/third_party/rules_rust/test/unit/consistent_crate_name/with_modified_crate_name.bzl
+++ b/third_party/rules_rust/test/unit/consistent_crate_name/with_modified_crate_name.bzl
@@ -9,7 +9,7 @@
 load("//rust/private:rustc.bzl", "rustc_compile_action")
 
 def _with_modified_crate_name_impl(ctx):
-    toolchain = ctx.toolchains[Label("//rust:toolchain")]
+    toolchain = ctx.toolchains[Label("//rust:toolchain_type")]
 
     crate_root = ctx.attr.src.files.to_list()[0]
     output_hash = repr(hash(crate_root.path))
@@ -57,19 +57,26 @@
     implementation = _with_modified_crate_name_impl,
     attrs = {
         "deps": attr.label_list(),
-        "src": attr.label(allow_single_file = [".rs"]),
-        "_cc_toolchain": attr.label(
-            default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+        "src": attr.label(
+            allow_single_file = [".rs"],
         ),
-        "_error_format": attr.label(default = "@rules_rust//:error_format"),
+        "_cc_toolchain": attr.label(
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
+        ),
+        "_error_format": attr.label(
+            default = Label("//:error_format"),
+        ),
         "_process_wrapper": attr.label(
-            default = Label("@rules_rust//util/process_wrapper"),
+            default = Label("//util/process_wrapper"),
             executable = True,
             allow_single_file = True,
             cfg = "exec",
         ),
     },
-    toolchains = ["@rules_rust//rust:toolchain", "@bazel_tools//tools/cpp:toolchain_type"],
+    toolchains = [
+        "@rules_rust//rust:toolchain_type",
+        "@bazel_tools//tools/cpp:toolchain_type",
+    ],
     incompatible_use_toolchain_transition = True,
     fragments = ["cpp"],
 )
diff --git a/third_party/rules_rust/test/unit/crate_info/BUILD.bazel b/third_party/rules_rust/test/unit/crate_info/BUILD.bazel
new file mode 100644
index 0000000..98a3ef0
--- /dev/null
+++ b/third_party/rules_rust/test/unit/crate_info/BUILD.bazel
@@ -0,0 +1,4 @@
+load(":crate_info_test.bzl", "crate_info_test_suite")
+
+############################ UNIT TESTS #############################
+crate_info_test_suite(name = "crate_info_test_suite")
diff --git a/third_party/rules_rust/test/unit/crate_info/crate_info_test.bzl b/third_party/rules_rust/test/unit/crate_info/crate_info_test.bzl
new file mode 100644
index 0000000..0f6dfd0
--- /dev/null
+++ b/third_party/rules_rust/test/unit/crate_info/crate_info_test.bzl
@@ -0,0 +1,102 @@
+"""Unittests for rust rules."""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load(
+    "//rust:defs.bzl",
+    "rust_common",
+    "rust_library",
+    "rust_proc_macro",
+    "rust_shared_library",
+    "rust_static_library",
+)
+
+def _rule_provides_crate_info_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    asserts.true(
+        env,
+        rust_common.crate_info in tut,
+        "{} should provide CrateInfo".format(tut.label.name),
+    )
+    return analysistest.end(env)
+
+def _rule_does_not_provide_crate_info_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    asserts.false(
+        env,
+        rust_common.crate_info in tut,
+        "{} should not provide CrateInfo".format(tut.label.name),
+    )
+    asserts.true(
+        env,
+        rust_common.test_crate_info in tut,
+        "{} should provide a TestCrateInfo".format(tut.label.name),
+    )
+    return analysistest.end(env)
+
+rule_provides_crate_info_test = analysistest.make(_rule_provides_crate_info_test_impl)
+rule_does_not_provide_crate_info_test = analysistest.make(_rule_does_not_provide_crate_info_test_impl)
+
+def _crate_info_test():
+    rust_library(
+        name = "rlib",
+        srcs = ["lib.rs"],
+        edition = "2018",
+    )
+
+    rust_proc_macro(
+        name = "proc_macro",
+        srcs = ["lib.rs"],
+        edition = "2018",
+    )
+
+    rust_static_library(
+        name = "staticlib",
+        srcs = ["lib.rs"],
+        edition = "2018",
+    )
+
+    rust_shared_library(
+        name = "cdylib",
+        srcs = ["lib.rs"],
+        edition = "2018",
+    )
+
+    rule_provides_crate_info_test(
+        name = "rlib_provides_crate_info_test",
+        target_under_test = ":rlib",
+    )
+
+    rule_provides_crate_info_test(
+        name = "proc_macro_provides_crate_info_test",
+        target_under_test = ":proc_macro",
+    )
+
+    rule_does_not_provide_crate_info_test(
+        name = "cdylib_does_not_provide_crate_info_test",
+        target_under_test = ":cdylib",
+    )
+
+    rule_does_not_provide_crate_info_test(
+        name = "staticlib_does_not_provide_crate_info_test",
+        target_under_test = ":staticlib",
+    )
+
+def crate_info_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _crate_info_test()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":rlib_provides_crate_info_test",
+            ":proc_macro_provides_crate_info_test",
+            ":cdylib_does_not_provide_crate_info_test",
+            ":staticlib_does_not_provide_crate_info_test",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/crate_info/lib.rs b/third_party/rules_rust/test/unit/crate_info/lib.rs
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/third_party/rules_rust/test/unit/crate_info/lib.rs
@@ -0,0 +1 @@
+
diff --git a/third_party/rules_rust/test/unit/crate_name/crate_name_test.bzl b/third_party/rules_rust/test/unit/crate_name/crate_name_test.bzl
index ccc7a18..8671951 100644
--- a/third_party/rules_rust/test/unit/crate_name/crate_name_test.bzl
+++ b/third_party/rules_rust/test/unit/crate_name/crate_name_test.bzl
@@ -1,8 +1,8 @@
 """Unit tests for crate names."""
 
 load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
-load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
-load("//test/unit:common.bzl", "assert_argv_contains")
+load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_shared_library", "rust_static_library", "rust_test")
+load("//test/unit:common.bzl", "assert_argv_contains", "assert_argv_contains_prefix_not")
 
 def _default_crate_name_library_test_impl(ctx):
     env = analysistest.begin(ctx)
@@ -48,7 +48,7 @@
 
 def _invalid_default_crate_name_test_impl(ctx):
     env = analysistest.begin(ctx)
-    asserts.expect_failure(env, "contains invalid character(s): /")
+    asserts.expect_failure(env, "contains invalid character(s): @")
     return analysistest.end(env)
 
 def _invalid_custom_crate_name_test_impl(ctx):
@@ -68,9 +68,22 @@
     """
     env = analysistest.begin(ctx)
     tut = analysistest.target_under_test(env)
+    assert_argv_contains(env, tut.actions[0], "--codegen=metadata=-2102077805")
     assert_argv_contains(env, tut.actions[0], "--codegen=extra-filename=-2102077805")
     return analysistest.end(env)
 
+def _no_extra_filename_test_impl(ctx):
+    """Check that no extra filename is used.
+
+    Args:
+      ctx: rule context.
+    """
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    assert_argv_contains_prefix_not(env, tut.actions[0], "--codegen=metadata=")
+    assert_argv_contains_prefix_not(env, tut.actions[0], "--codegen=extra-filename=")
+    return analysistest.end(env)
+
 default_crate_name_library_test = analysistest.make(
     _default_crate_name_library_test_impl,
 )
@@ -100,44 +113,54 @@
 slib_library_name_test = analysistest.make(
     _slib_library_name_test_impl,
 )
+no_extra_filename_test = analysistest.make(
+    _no_extra_filename_test_impl,
+)
 
 def _crate_name_test():
     rust_library(
-        name = "default-crate-name-library",
+        name = "default/crate-name-library",
         srcs = ["lib.rs"],
+        edition = "2018",
     )
 
     rust_library(
         name = "custom-crate-name-library",
         crate_name = "custom_name",
         srcs = ["lib.rs"],
+        edition = "2018",
     )
 
     rust_binary(
-        name = "default-crate-name-binary",
+        name = "default/crate-name-binary",
         srcs = ["main.rs"],
+        edition = "2018",
     )
 
     rust_binary(
         name = "custom-crate-name-binary",
         crate_name = "custom_name",
         srcs = ["main.rs"],
+        edition = "2018",
     )
 
     rust_test(
-        name = "default-crate-name-test",
+        name = "default/crate-name-test",
         srcs = ["main.rs"],
+        edition = "2018",
     )
 
     rust_test(
         name = "custom-crate-name-test",
         crate_name = "custom_name",
         srcs = ["main.rs"],
+        edition = "2018",
     )
 
     rust_library(
-        name = "invalid/default-crate-name",
+        name = "invalid@default-crate-name",
         srcs = ["lib.rs"],
+        edition = "2018",
         tags = ["manual", "norustfmt"],
     )
 
@@ -145,12 +168,26 @@
         name = "invalid-custom-crate-name",
         crate_name = "hyphens-not-allowed",
         srcs = ["lib.rs"],
+        edition = "2018",
         tags = ["manual", "norustfmt"],
     )
 
     rust_library(
         name = "slib",
         srcs = ["slib.rs"],
+        edition = "2018",
+    )
+
+    rust_shared_library(
+        name = "shared_lib",
+        srcs = ["lib.rs"],
+        edition = "2018",
+    )
+
+    rust_static_library(
+        name = "static_lib",
+        srcs = ["lib.rs"],
+        edition = "2018",
     )
 
     slib_library_name_test(
@@ -160,7 +197,7 @@
 
     default_crate_name_library_test(
         name = "default_crate_name_library_test",
-        target_under_test = ":default-crate-name-library",
+        target_under_test = ":default/crate-name-library",
     )
 
     custom_crate_name_library_test(
@@ -170,7 +207,7 @@
 
     default_crate_name_binary_test(
         name = "default_crate_name_binary_test",
-        target_under_test = ":default-crate-name-binary",
+        target_under_test = ":default/crate-name-binary",
     )
 
     custom_crate_name_binary_test(
@@ -180,7 +217,7 @@
 
     default_crate_name_test_test(
         name = "default_crate_name_test_test",
-        target_under_test = ":default-crate-name-test",
+        target_under_test = ":default/crate-name-test",
     )
 
     custom_crate_name_test_test(
@@ -190,7 +227,7 @@
 
     invalid_default_crate_name_test(
         name = "invalid_default_crate_name_test",
-        target_under_test = ":invalid/default-crate-name",
+        target_under_test = ":invalid@default-crate-name",
     )
 
     invalid_custom_crate_name_test(
@@ -198,6 +235,16 @@
         target_under_test = ":invalid-custom-crate-name",
     )
 
+    no_extra_filename_test(
+        name = "no_extra_filename_for_shared_library_test",
+        target_under_test = ":shared_lib",
+    )
+
+    no_extra_filename_test(
+        name = "no_extra_filename_for_static_library_test",
+        target_under_test = ":static_lib",
+    )
+
 def crate_name_test_suite(name):
     """Entry-point macro called from the BUILD file.
 
diff --git a/third_party/rules_rust/test/unit/crate_variants/crate_variants.bzl b/third_party/rules_rust/test/unit/crate_variants/crate_variants.bzl
index 2fcd6ef..e8cddab 100644
--- a/third_party/rules_rust/test/unit/crate_variants/crate_variants.bzl
+++ b/third_party/rules_rust/test/unit/crate_variants/crate_variants.bzl
@@ -18,17 +18,20 @@
     rust_library(
         name = "foo",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_library(
         name = "foo2",
         crate_name = "foo",
         srcs = ["foo.rs"],
+        edition = "2018",
     )
 
     rust_library(
         name = "bar",
         srcs = ["bar.rs"],
+        edition = "2018",
         deps = [":foo", ":foo2"],
     )
 
diff --git a/third_party/rules_rust/test/unit/debug_info/debug_info_analysis_test.bzl b/third_party/rules_rust/test/unit/debug_info/debug_info_analysis_test.bzl
index 9dd5ec1..ac5a1c2 100644
--- a/third_party/rules_rust/test/unit/debug_info/debug_info_analysis_test.bzl
+++ b/third_party/rules_rust/test/unit/debug_info/debug_info_analysis_test.bzl
@@ -38,6 +38,7 @@
     rust_shared_library(
         name = "mylib",
         srcs = ["lib.rs"],
+        edition = "2018",
     )
 
     native.filegroup(
@@ -67,6 +68,7 @@
     rust_binary(
         name = "myrustbin",
         srcs = ["main.rs"],
+        edition = "2018",
     )
 
     native.filegroup(
diff --git a/third_party/rules_rust/test/unit/extra_rustc_flags/extra_rustc_flags_test.bzl b/third_party/rules_rust/test/unit/extra_rustc_flags/extra_rustc_flags_test.bzl
index 87eb3b5..8e24580 100644
--- a/third_party/rules_rust/test/unit/extra_rustc_flags/extra_rustc_flags_test.bzl
+++ b/third_party/rules_rust/test/unit/extra_rustc_flags/extra_rustc_flags_test.bzl
@@ -58,6 +58,20 @@
     },
 )
 
+extra_rustc_flag_present_test = analysistest.make(
+    _extra_rustc_flags_present_test,
+    attrs = {
+        "lib_exec": attr.label(
+            mandatory = True,
+            cfg = "exec",
+        ),
+    },
+    config_settings = {
+        "@//:extra_rustc_flag": [EXTRA_FLAG],
+        "@//:extra_rustc_flags": [],
+    },
+)
+
 def _define_test_targets():
     rust_library(
         name = "lib",
@@ -85,6 +99,12 @@
         lib_exec = ":lib",
     )
 
+    extra_rustc_flag_present_test(
+        name = "extra_rustc_flag_present_test",
+        target_under_test = ":lib",
+        lib_exec = ":lib",
+    )
+
     native.test_suite(
         name = name,
         tests = [
diff --git a/third_party/rules_rust/test/unit/force_all_deps_direct/generator.bzl b/third_party/rules_rust/test/unit/force_all_deps_direct/generator.bzl
index e8ab445..2ca3195 100644
--- a/third_party/rules_rust/test/unit/force_all_deps_direct/generator.bzl
+++ b/third_party/rules_rust/test/unit/force_all_deps_direct/generator.bzl
@@ -26,7 +26,7 @@
         mnemonic = "WriteRsFile",
     )
 
-    toolchain = ctx.toolchains[Label("//rust:toolchain")]
+    toolchain = ctx.toolchains[Label("//rust:toolchain_type")]
 
     # Determine unique hash for this rlib
     output_hash = repr(hash(rs_file.path))
@@ -76,17 +76,22 @@
     attrs = {
         "deps": attr.label_list(),
         "_cc_toolchain": attr.label(
-            default = "@bazel_tools//tools/cpp:current_cc_toolchain",
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
         ),
-        "_error_format": attr.label(default = "@rules_rust//:error_format"),
+        "_error_format": attr.label(
+            default = Label("//:error_format"),
+        ),
         "_process_wrapper": attr.label(
-            default = Label("@rules_rust//util/process_wrapper"),
+            default = Label("//util/process_wrapper"),
             executable = True,
             allow_single_file = True,
             cfg = "exec",
         ),
     },
-    toolchains = ["@rules_rust//rust:toolchain", "@bazel_tools//tools/cpp:toolchain_type"],
+    toolchains = [
+        "@rules_rust//rust:toolchain_type",
+        "@bazel_tools//tools/cpp:toolchain_type",
+    ],
     incompatible_use_toolchain_transition = True,
     fragments = ["cpp"],
 )
diff --git a/third_party/rules_rust/test/unit/interleaved_cc_info/interleaved_cc_info_test.bzl b/third_party/rules_rust/test/unit/interleaved_cc_info/interleaved_cc_info_test.bzl
index 6afe604..ba88e4c 100644
--- a/third_party/rules_rust/test/unit/interleaved_cc_info/interleaved_cc_info_test.bzl
+++ b/third_party/rules_rust/test/unit/interleaved_cc_info/interleaved_cc_info_test.bzl
@@ -29,6 +29,7 @@
     rust_library(
         name = "a",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":b"],
     )
     cc_library(
@@ -39,6 +40,7 @@
     rust_library(
         name = "c",
         srcs = ["c.rs"],
+        edition = "2018",
         deps = [":d"],
     )
     cc_library(
@@ -49,6 +51,7 @@
     rust_library(
         name = "e",
         srcs = ["e.rs"],
+        edition = "2018",
     )
 
     interleaving_cc_link_order_test(
diff --git a/third_party/rules_rust/test/unit/is_proc_macro_dep/BUILD.bazel b/third_party/rules_rust/test/unit/is_proc_macro_dep/BUILD.bazel
new file mode 100644
index 0000000..ac655a5
--- /dev/null
+++ b/third_party/rules_rust/test/unit/is_proc_macro_dep/BUILD.bazel
@@ -0,0 +1,5 @@
+load(":is_proc_macro_dep_test.bzl", "is_proc_macro_dep_test_suite")
+
+is_proc_macro_dep_test_suite(
+    name = "is_proc_macro_dep_test_suite",
+)
diff --git a/third_party/rules_rust/test/unit/is_proc_macro_dep/is_proc_macro_dep_test.bzl b/third_party/rules_rust/test/unit/is_proc_macro_dep/is_proc_macro_dep_test.bzl
new file mode 100644
index 0000000..eb947bd
--- /dev/null
+++ b/third_party/rules_rust/test/unit/is_proc_macro_dep/is_proc_macro_dep_test.bzl
@@ -0,0 +1,169 @@
+"""Unittests for the is_proc_macro_dep setting."""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("//rust:defs.bzl", "rust_library", "rust_proc_macro")
+
+DepActionsInfo = provider(
+    "Contains information about dependencies actions.",
+    fields = {"actions": "List[Action]"},
+)
+
+def _collect_dep_actions_aspect_impl(target, ctx):
+    actions = []
+    actions.extend(target.actions)
+    for dep in ctx.rule.attr.deps:
+        actions.extend(dep[DepActionsInfo].actions)
+    return [DepActionsInfo(actions = actions)]
+
+collect_dep_actions_aspect = aspect(
+    implementation = _collect_dep_actions_aspect_impl,
+    attr_aspects = ["deps"],
+)
+
+def _attach_dep_actions_aspect_impl(ctx):
+    return [ctx.attr.dep[DepActionsInfo]]
+
+attach_dep_actions_aspect = rule(
+    implementation = _attach_dep_actions_aspect_impl,
+    attrs = {
+        "dep": attr.label(aspects = [collect_dep_actions_aspect]),
+    },
+)
+
+def _enable_is_proc_macro_dep_transition_impl(_settings, _attr):
+    return {"//:is_proc_macro_dep_enabled": True}
+
+enable_is_proc_macro_dep_transition = transition(
+    inputs = [],
+    outputs = ["//:is_proc_macro_dep_enabled"],
+    implementation = _enable_is_proc_macro_dep_transition_impl,
+)
+
+attach_dep_actions_and_enable_is_proc_macro_dep_aspect = rule(
+    implementation = _attach_dep_actions_aspect_impl,
+    attrs = {
+        "dep": attr.label(aspects = [collect_dep_actions_aspect]),
+        "_allowlist_function_transition": attr.label(default = Label("//tools/allowlists/function_transition_allowlist")),
+    },
+    cfg = enable_is_proc_macro_dep_transition,
+)
+
+def _is_proc_macro_dep_is_not_in_env_for_top_level_action(ctx):
+    env = analysistest.begin(ctx)
+    top_level_action = analysistest.target_under_test(env).actions[0]
+    asserts.false(env, "BAZEL_RULES_RUST_IS_PROC_MACRO_DEP" in top_level_action.env)
+    return analysistest.end(env)
+
+is_proc_macro_dep_is_not_in_env_for_top_level_action_test = analysistest.make(_is_proc_macro_dep_is_not_in_env_for_top_level_action)
+
+def _is_proc_macro_dep_is_false_for_proc_macro(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    proc_macro_dep_action = [a for a in tut[DepActionsInfo].actions if str(a) == "action 'Compiling Rust proc-macro proc_macro_crate (1 files)'"][0]
+    asserts.equals(env, proc_macro_dep_action.env["BAZEL_RULES_RUST_IS_PROC_MACRO_DEP"], "0")
+    return analysistest.end(env)
+
+is_proc_macro_dep_is_false_for_proc_macro_test = analysistest.make(_is_proc_macro_dep_is_false_for_proc_macro)
+
+def _is_proc_macro_dep_is_false_for_top_level_library(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    top_level_library_action = [a for a in tut[DepActionsInfo].actions if str(a) == "action 'Compiling Rust rlib top_level_library (1 files)'"][0]
+    asserts.equals(env, top_level_library_action.env["BAZEL_RULES_RUST_IS_PROC_MACRO_DEP"], "0")
+    return analysistest.end(env)
+
+is_proc_macro_dep_is_false_for_top_level_library_test = analysistest.make(_is_proc_macro_dep_is_false_for_top_level_library)
+
+def _is_proc_macro_dep_is_true_for_proc_macro_dep(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    proc_macro_dep_action = [a for a in tut[DepActionsInfo].actions if str(a) == "action 'Compiling Rust rlib proc_macro_dep (1 files)'"][0]
+    asserts.equals(env, proc_macro_dep_action.env["BAZEL_RULES_RUST_IS_PROC_MACRO_DEP"], "1")
+    return analysistest.end(env)
+
+is_proc_macro_dep_is_true_for_proc_macro_dep_test = analysistest.make(_is_proc_macro_dep_is_true_for_proc_macro_dep)
+
+def _is_proc_macro_dep_is_not_in_env_for_proc_macro_dep(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    proc_macro_dep_action = [a for a in tut[DepActionsInfo].actions if str(a) == "action 'Compiling Rust rlib proc_macro_dep (1 files)'"][0]
+    asserts.true(env, "BAZEL_RULES_RUST_IS_PROC_MACRO_DEP" not in proc_macro_dep_action.env)
+    return analysistest.end(env)
+
+is_proc_macro_dep_is_not_in_env_for_proc_macro_dep_test = analysistest.make(_is_proc_macro_dep_is_not_in_env_for_proc_macro_dep)
+
+def _is_proc_macro_dep_test():
+    """Generate targets and tests."""
+
+    rust_library(
+        name = "proc_macro_dep",
+        srcs = ["proc_macro_dep.rs"],
+        edition = "2018",
+    )
+
+    rust_proc_macro(
+        name = "proc_macro_crate",
+        srcs = ["proc_macro_crate.rs"],
+        deps = ["proc_macro_dep"],
+        edition = "2018",
+    )
+
+    is_proc_macro_dep_is_not_in_env_for_top_level_action_test(
+        name = "is_proc_macro_dep_is_not_in_env_for_top_level_proc_macro",
+        target_under_test = ":proc_macro_crate",
+    )
+
+    is_proc_macro_dep_is_not_in_env_for_top_level_action_test(
+        name = "is_proc_macro_dep_is_not_in_env_for_top_level_library",
+        target_under_test = ":proc_macro_dep",
+    )
+
+    attach_dep_actions_and_enable_is_proc_macro_dep_aspect(
+        name = "proc_macro_crate_enabled_with_actions",
+        dep = ":proc_macro_crate",
+    )
+
+    is_proc_macro_dep_is_false_for_proc_macro_test(
+        name = "is_proc_macro_dep_is_false_for_proc_macro",
+        target_under_test = ":proc_macro_crate_enabled_with_actions",
+    )
+
+    is_proc_macro_dep_is_true_for_proc_macro_dep_test(
+        name = "is_proc_macro_dep_is_true_for_proc_macro_dep",
+        target_under_test = ":proc_macro_crate_enabled_with_actions",
+    )
+
+    rust_library(
+        name = "top_level_library",
+        srcs = ["proc_macro_dep.rs"],
+        edition = "2018",
+    )
+
+    attach_dep_actions_and_enable_is_proc_macro_dep_aspect(
+        name = "top_level_library_enabled_with_actions",
+        dep = ":top_level_library",
+    )
+
+    is_proc_macro_dep_is_false_for_top_level_library_test(
+        name = "is_proc_macro_dep_is_false_for_top_level_library",
+        target_under_test = ":top_level_library_enabled_with_actions",
+    )
+
+def is_proc_macro_dep_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _is_proc_macro_dep_test()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            "is_proc_macro_dep_is_not_in_env_for_top_level_proc_macro",
+            "is_proc_macro_dep_is_not_in_env_for_top_level_library",
+            "is_proc_macro_dep_is_false_for_proc_macro",
+            "is_proc_macro_dep_is_false_for_top_level_library",
+            "is_proc_macro_dep_is_true_for_proc_macro_dep",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_crate.rs b/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_crate.rs
new file mode 100644
index 0000000..8830ab5
--- /dev/null
+++ b/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_crate.rs
@@ -0,0 +1,11 @@
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+
+#[proc_macro]
+pub fn make_answer(_item: TokenStream) -> TokenStream {
+    let answer = proc_macro_dep::proc_macro_dep();
+    format!("fn answer() -> u32 {{ {} }}", answer)
+        .parse()
+        .unwrap()
+}
diff --git a/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_dep.rs b/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_dep.rs
new file mode 100644
index 0000000..3358e72
--- /dev/null
+++ b/third_party/rules_rust/test/unit/is_proc_macro_dep/proc_macro_dep.rs
@@ -0,0 +1,3 @@
+pub fn proc_macro_dep() -> i64 {
+    42
+}
diff --git a/third_party/rules_rust/test/unit/linker_inputs_propagation/BUILD.bazel b/third_party/rules_rust/test/unit/linker_inputs_propagation/BUILD.bazel
new file mode 100644
index 0000000..b3cdf15
--- /dev/null
+++ b/third_party/rules_rust/test/unit/linker_inputs_propagation/BUILD.bazel
@@ -0,0 +1,4 @@
+load(":linker_inputs_propagation_test.bzl", "linker_inputs_propagation_test_suite")
+
+############################ UNIT TESTS #############################
+linker_inputs_propagation_test_suite(name = "linker_inputs_propagation_test_suite")
diff --git a/third_party/rules_rust/test/unit/linker_inputs_propagation/linker_inputs_propagation_test.bzl b/third_party/rules_rust/test/unit/linker_inputs_propagation/linker_inputs_propagation_test.bzl
new file mode 100644
index 0000000..3341acd
--- /dev/null
+++ b/third_party/rules_rust/test/unit/linker_inputs_propagation/linker_inputs_propagation_test.bzl
@@ -0,0 +1,91 @@
+"""Unittests for propagation of linker inputs through Rust libraries"""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+
+def _shared_lib_is_propagated_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    link_action = [action for action in tut.actions if action.mnemonic == "CppLink"][0]
+
+    lib_name = _get_lib_name(ctx, name = "foo_shared")
+    asserts.true(env, _contains_input(link_action.inputs, lib_name))
+
+    return analysistest.end(env)
+
+def _static_lib_is_not_propagated_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    link_action = [action for action in tut.actions if action.mnemonic == "CppLink"][0]
+
+    lib_name = _get_lib_name(ctx, name = "foo")
+    asserts.false(env, _contains_input(link_action.inputs, lib_name))
+
+    return analysistest.end(env)
+
+def _contains_input(inputs, name):
+    for input in inputs.to_list():
+        # We cannot check for name equality because rlib outputs contain
+        # a hash in their name.
+        if input.basename.startswith(name):
+            return True
+    return False
+
+def _get_lib_name(ctx, name):
+    if ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]):
+        return name
+    else:
+        return "lib{}".format(name)
+
+static_lib_is_not_propagated_test = analysistest.make(
+    _static_lib_is_not_propagated_test_impl,
+    attrs = {
+        "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+    },
+)
+
+shared_lib_is_propagated_test = analysistest.make(
+    _shared_lib_is_propagated_test_impl,
+    attrs = {
+        "_macos_constraint": attr.label(default = Label("@platforms//os:macos")),
+        "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+    },
+)
+
+def _linker_inputs_propagation_test():
+    static_lib_is_not_propagated_test(
+        name = "depends_on_foo_via_staticlib",
+        target_under_test = "//test/linker_inputs_propagation:depends_on_foo_via_staticlib",
+    )
+
+    shared_lib_is_propagated_test(
+        name = "depends_on_shared_foo_via_staticlib",
+        target_under_test = "//test/linker_inputs_propagation:depends_on_shared_foo_via_staticlib",
+    )
+
+    static_lib_is_not_propagated_test(
+        name = "depends_on_foo_via_sharedlib",
+        target_under_test = "//test/linker_inputs_propagation:depends_on_foo_via_sharedlib",
+    )
+
+    shared_lib_is_propagated_test(
+        name = "depends_on_shared_foo_via_sharedlib",
+        target_under_test = "//test/linker_inputs_propagation:depends_on_shared_foo_via_sharedlib",
+    )
+
+def linker_inputs_propagation_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _linker_inputs_propagation_test()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":depends_on_foo_via_staticlib",
+            ":depends_on_shared_foo_via_staticlib",
+            ":depends_on_foo_via_sharedlib",
+            ":depends_on_shared_foo_via_sharedlib",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/linkstamps/linkstamps_test.bzl b/third_party/rules_rust/test/unit/linkstamps/linkstamps_test.bzl
index d7423f3..a0ae6fe 100644
--- a/third_party/rules_rust/test/unit/linkstamps/linkstamps_test.bzl
+++ b/third_party/rules_rust/test/unit/linkstamps/linkstamps_test.bzl
@@ -2,7 +2,7 @@
 
 load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
 load("@rules_cc//cc:defs.bzl", "cc_library")
-load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
+load("//rust:defs.bzl", "rust_binary", "rust_common", "rust_library", "rust_test")
 load("//test/unit:common.bzl", "assert_action_mnemonic")
 
 def _is_running_on_linux(ctx):
@@ -20,7 +20,13 @@
     linkstamp_out = linkstamp_action.outputs.to_list()[0]
     asserts.equals(env, linkstamp_out.basename, "linkstamp.o")
     tut_out = tut.files.to_list()[0]
-    expected_linkstamp_path = tut_out.dirname + "/_objs/" + tut_out.basename + "/test/unit/linkstamps/linkstamp.o"
+    is_test = tut[rust_common.crate_info].is_test
+    workspace_prefix = "" if ctx.workspace_name == "rules_rust" else "/external/rules_rust"
+
+    # Rust compilation outputs coming from a test are put in test-{hash} directory
+    # which we need to remove in order to obtain the linkstamp file path.
+    dirname = "/".join(tut_out.dirname.split("/")[:-1]) if is_test else tut_out.dirname
+    expected_linkstamp_path = dirname + "/_objs/" + tut_out.basename + workspace_prefix + "/test/unit/linkstamps/linkstamp.o"
     asserts.equals(
         env,
         linkstamp_out.path,
@@ -67,6 +73,7 @@
     rust_binary(
         name = "some_rust_binary",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":cc_lib_with_linkstamp"],
     )
 
@@ -78,12 +85,14 @@
     rust_library(
         name = "some_rust_library_with_linkstamp_transitively",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":cc_lib_with_linkstamp"],
     )
 
     rust_binary(
         name = "some_rust_binary_with_linkstamp_transitively",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":some_rust_library_with_linkstamp_transitively"],
     )
 
@@ -100,6 +109,7 @@
     rust_binary(
         name = "some_rust_binary_with_multiple_paths_to_a_linkstamp",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":cc_lib_with_linkstamp", ":cc_lib_with_linkstamp_transitively"],
     )
 
@@ -111,6 +121,7 @@
     rust_test(
         name = "some_rust_test1",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":cc_lib_with_linkstamp"],
     )
 
@@ -122,6 +133,7 @@
     rust_test(
         name = "some_rust_test2",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":cc_lib_with_linkstamp"],
     )
 
diff --git a/third_party/rules_rust/test/unit/location_expansion/location_expansion_test.bzl b/third_party/rules_rust/test/unit/location_expansion/location_expansion_test.bzl
index caec57c..a58d974 100644
--- a/third_party/rules_rust/test/unit/location_expansion/location_expansion_test.bzl
+++ b/third_party/rules_rust/test/unit/location_expansion/location_expansion_test.bzl
@@ -26,6 +26,7 @@
     rust_library(
         name = "mylibrary",
         srcs = ["mylibrary.rs"],
+        edition = "2018",
         rustc_flags = [
             "@$(location :flag_generator)",
         ],
diff --git a/third_party/rules_rust/test/unit/native_deps/native_action_inputs_test.bzl b/third_party/rules_rust/test/unit/native_deps/native_action_inputs_test.bzl
index 2363e1e..1281809 100644
--- a/third_party/rules_rust/test/unit/native_deps/native_action_inputs_test.bzl
+++ b/third_party/rules_rust/test/unit/native_deps/native_action_inputs_test.bzl
@@ -77,30 +77,35 @@
     rust_library(
         name = "foo_lib",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":bar"],
     )
 
     rust_binary(
         name = "foo_bin",
         srcs = ["foo_main.rs"],
+        edition = "2018",
         deps = [":bar"],
     )
 
     rust_shared_library(
         name = "foo_dylib",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":bar"],
     )
 
     rust_static_library(
         name = "foo_static",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":bar"],
     )
 
     rust_proc_macro(
         name = "foo_proc_macro",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":bar"],
     )
 
diff --git a/third_party/rules_rust/test/unit/native_deps/native_deps_test.bzl b/third_party/rules_rust/test/unit/native_deps/native_deps_test.bzl
index 5a91881..43b1c07 100644
--- a/third_party/rules_rust/test/unit/native_deps/native_deps_test.bzl
+++ b/third_party/rules_rust/test/unit/native_deps/native_deps_test.bzl
@@ -30,6 +30,8 @@
     assert_argv_contains_prefix_suffix(env, action, "-Lnative=", "/native_deps")
     assert_argv_contains(env, action, "--crate-type=cdylib")
     assert_argv_contains(env, action, "-lstatic=native_dep")
+    native_link_arg = "-Clink-arg=-lnative_dep.lib" if ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]) else "-Clink-arg=-lnative_dep"
+    assert_argv_contains(env, action, native_link_arg)
     assert_argv_contains_prefix(env, action, "--codegen=linker=")
     return analysistest.end(env)
 
@@ -40,17 +42,20 @@
     assert_argv_contains_prefix_suffix(env, action, "-Lnative=", "/native_deps")
     assert_argv_contains(env, action, "--crate-type=staticlib")
     assert_argv_contains(env, action, "-lstatic=native_dep")
+    native_link_arg = "-Clink-arg=-lnative_dep.lib" if ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]) else "-Clink-arg=-lnative_dep"
+    assert_argv_contains(env, action, native_link_arg)
     assert_argv_contains_prefix(env, action, "--codegen=linker=")
     return analysistest.end(env)
 
 def _proc_macro_has_native_libs_test_impl(ctx):
     env = analysistest.begin(ctx)
     tut = analysistest.target_under_test(env)
-    asserts.equals(env, 1, len(tut.actions))
     action = tut.actions[0]
     assert_argv_contains_prefix_suffix(env, action, "-Lnative=", "/native_deps")
     assert_argv_contains(env, action, "--crate-type=proc-macro")
     assert_argv_contains(env, action, "-lstatic=native_dep")
+    native_link_arg = "-Clink-arg=-lnative_dep.lib" if ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]) else "-Clink-arg=-lnative_dep"
+    assert_argv_contains(env, action, native_link_arg)
     assert_argv_contains_prefix(env, action, "--codegen=linker=")
     return analysistest.end(env)
 
@@ -60,6 +65,8 @@
     action = tut.actions[0]
     assert_argv_contains_prefix_suffix(env, action, "-Lnative=", "/native_deps")
     assert_argv_contains(env, action, "-lstatic=native_dep")
+    native_link_arg = "-Clink-arg=-lnative_dep.lib" if ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]) else "-Clink-arg=-lnative_dep"
+    assert_argv_contains(env, action, native_link_arg)
     assert_argv_contains_prefix(env, action, "--codegen=linker=")
     return analysistest.end(env)
 
@@ -78,21 +85,22 @@
     action = tut.actions[0]
 
     compilation_mode = ctx.var["COMPILATION_MODE"]
+    workspace_prefix = "" if ctx.workspace_name == "rules_rust" else "external/rules_rust/"
     if ctx.target_platform_has_constraint(ctx.attr._macos_constraint[platform_common.ConstraintValueInfo]):
         want = [
             "-lstatic=native_dep",
-            "link-arg=-Wl,-force_load,bazel-out/darwin-{}/bin/test/unit/native_deps/libalwayslink.lo".format(compilation_mode),
+            "link-arg=-Wl,-force_load,bazel-out/darwin-{}/bin/{}test/unit/native_deps/libalwayslink.lo".format(compilation_mode, workspace_prefix),
         ]
     elif ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]):
         want = [
             "-lstatic=native_dep",
-            "link-arg=/WHOLEARCHIVE:bazel-out/x64_windows-{}/bin/test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode),
+            "link-arg=/WHOLEARCHIVE:bazel-out/x64_windows-{}/bin/{}test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode, workspace_prefix),
         ]
     else:
         want = [
             "-lstatic=native_dep",
             "link-arg=-Wl,--whole-archive",
-            "link-arg=bazel-out/k8-{}/bin/test/unit/native_deps/libalwayslink.lo".format(compilation_mode),
+            "link-arg=bazel-out/k8-{}/bin/{}test/unit/native_deps/libalwayslink.lo".format(compilation_mode, workspace_prefix),
             "link-arg=-Wl,--no-whole-archive",
         ]
     individual_link_args = [
@@ -112,32 +120,41 @@
     linker_args = _extract_linker_args(action.argv)[1:]
 
     compilation_mode = ctx.var["COMPILATION_MODE"]
+    workspace_prefix = "" if ctx.workspace_name == "rules_rust" else "external/rules_rust/"
     pic_suffix = ".pic" if compilation_mode == "opt" else ""
     if ctx.target_platform_has_constraint(ctx.attr._macos_constraint[platform_common.ConstraintValueInfo]):
         want = [
             "-lstatic=native_dep",
-            "link-arg=-Wl,-force_load,bazel-out/darwin-{}/bin/test/unit/native_deps/libalwayslink{}.lo".format(compilation_mode, pic_suffix),
+            "link-arg=-Wl,-force_load,bazel-out/darwin-{}/bin/{}test/unit/native_deps/libalwayslink{}.lo".format(compilation_mode, workspace_prefix, pic_suffix),
         ]
     elif ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]):
         want = [
             "-lstatic=native_dep",
-            "link-arg=/WHOLEARCHIVE:bazel-out/x64_windows-{}/bin/test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode),
+            "link-arg=/WHOLEARCHIVE:bazel-out/x64_windows-{}/bin/{}test/unit/native_deps/alwayslink.lo.lib".format(compilation_mode, workspace_prefix),
         ]
     else:
         want = [
             "-lstatic=native_dep",
             "link-arg=-Wl,--whole-archive",
-            "link-arg=bazel-out/k8-{}/bin/test/unit/native_deps/libalwayslink{}.lo".format(compilation_mode, pic_suffix),
+            "link-arg=bazel-out/k8-{}/bin/{}test/unit/native_deps/libalwayslink{}.lo".format(compilation_mode, workspace_prefix, pic_suffix),
             "link-arg=-Wl,--no-whole-archive",
         ]
     asserts.equals(env, want, linker_args)
     return analysistest.end(env)
 
 rlib_has_no_native_libs_test = analysistest.make(_rlib_has_no_native_libs_test_impl)
-staticlib_has_native_libs_test = analysistest.make(_staticlib_has_native_libs_test_impl)
-cdylib_has_native_libs_test = analysistest.make(_cdylib_has_native_libs_test_impl)
-proc_macro_has_native_libs_test = analysistest.make(_proc_macro_has_native_libs_test_impl)
-bin_has_native_libs_test = analysistest.make(_bin_has_native_libs_test_impl)
+staticlib_has_native_libs_test = analysistest.make(_staticlib_has_native_libs_test_impl, attrs = {
+    "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+})
+cdylib_has_native_libs_test = analysistest.make(_cdylib_has_native_libs_test_impl, attrs = {
+    "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+})
+proc_macro_has_native_libs_test = analysistest.make(_proc_macro_has_native_libs_test_impl, attrs = {
+    "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+})
+bin_has_native_libs_test = analysistest.make(_bin_has_native_libs_test_impl, attrs = {
+    "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
+})
 bin_has_native_dep_and_alwayslink_test = analysistest.make(_bin_has_native_dep_and_alwayslink_test_impl, attrs = {
     "_macos_constraint": attr.label(default = Label("@platforms//os:macos")),
     "_windows_constraint": attr.label(default = Label("@platforms//os:windows")),
@@ -151,37 +168,42 @@
     rust_library(
         name = "rlib_has_no_native_dep",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep"],
     )
 
     rust_static_library(
         name = "staticlib_has_native_dep",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep"],
     )
 
     rust_shared_library(
         name = "cdylib_has_native_dep",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep"],
     )
 
     rust_proc_macro(
         name = "proc_macro_has_native_dep",
         srcs = ["proc_macro_using_native_dep.rs"],
-        deps = [":native_dep"],
         edition = "2018",
+        deps = [":native_dep"],
     )
 
     rust_binary(
         name = "bin_has_native_dep",
         srcs = ["bin_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep"],
     )
 
     rust_binary(
         name = "bin_has_native_dep_and_alwayslink",
         srcs = ["bin_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep", ":alwayslink"],
     )
 
@@ -200,6 +222,7 @@
     rust_shared_library(
         name = "cdylib_has_native_dep_and_alwayslink",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = [":native_dep", ":alwayslink"],
     )
 
@@ -260,6 +283,7 @@
     rust_binary(
         name = "linkopts_rust_bin",
         srcs = ["bin_using_native_dep.rs"],
+        edition = "2018",
         deps = [":linkopts_native_dep_a"],
     )
 
@@ -301,18 +325,21 @@
     rust_binary(
         name = "bin_additional_deps",
         srcs = ["bin_using_native_dep.rs"],
+        edition = "2018",
         deps = [":additional_deps_cc"],
     )
 
     rust_shared_library(
         name = "cdylib_additional_deps",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = [":additional_deps_cc"],
     )
 
     rust_library(
         name = "lib_additional_deps",
         srcs = ["lib_using_native_dep.rs"],
+        edition = "2018",
         deps = ["additional_deps_cc"],
     )
 
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/BUILD.bazel b/third_party/rules_rust/test/unit/pipelined_compilation/BUILD.bazel
new file mode 100644
index 0000000..8d363e0
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/BUILD.bazel
@@ -0,0 +1,4 @@
+load(":pipelined_compilation_test.bzl", "pipelined_compilation_test_suite")
+
+############################ UNIT TESTS #############################
+pipelined_compilation_test_suite(name = "pipelined_compilation_test_suite")
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/bin.rs b/third_party/rules_rust/test/unit/pipelined_compilation/bin.rs
new file mode 100644
index 0000000..aa32dd2
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/bin.rs
@@ -0,0 +1,5 @@
+use second::fun;
+
+fn main() {
+    fun()
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/to_wrap.rs b/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/to_wrap.rs
new file mode 100644
index 0000000..5fee30b
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/to_wrap.rs
@@ -0,0 +1,3 @@
+pub fn to_wrap() {
+    eprintln!("something");
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/uses_wrapper.rs b/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/uses_wrapper.rs
new file mode 100644
index 0000000..d932467
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/custom_rule_test/uses_wrapper.rs
@@ -0,0 +1,5 @@
+use wrapper::wrap;
+
+pub fn calls_wrap() {
+    wrap();
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/first.rs b/third_party/rules_rust/test/unit/pipelined_compilation/first.rs
new file mode 100644
index 0000000..30c0129
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/first.rs
@@ -0,0 +1,4 @@
+pub fn first_fun() -> u8 {
+    4 // chosen by fair dice roll.
+      // guaranteed to be random.
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/my_macro.rs b/third_party/rules_rust/test/unit/pipelined_compilation/my_macro.rs
new file mode 100644
index 0000000..035c761
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/my_macro.rs
@@ -0,0 +1,6 @@
+use proc_macro::TokenStream;
+
+#[proc_macro_attribute]
+pub fn noop(_attr: TokenStream, item: TokenStream) -> TokenStream {
+    item
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/pipelined_compilation_test.bzl b/third_party/rules_rust/test/unit/pipelined_compilation/pipelined_compilation_test.bzl
new file mode 100644
index 0000000..71f538c
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/pipelined_compilation_test.bzl
@@ -0,0 +1,257 @@
+"""Unittests for rust rules."""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_proc_macro")
+load("//test/unit:common.bzl", "assert_argv_contains", "assert_list_contains_adjacent_elements", "assert_list_contains_adjacent_elements_not")
+load(":wrap.bzl", "wrap")
+
+NOT_WINDOWS = select({
+    "@platforms//os:linux": [],
+    "@platforms//os:macos": [],
+    "//conditions:default": ["@platforms//:incompatible"],
+})
+
+ENABLE_PIPELINING = {
+    "@//rust/settings:pipelined_compilation": True,
+}
+
+def _second_lib_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    rlib_action = [act for act in tut.actions if act.mnemonic == "Rustc"][0]
+    metadata_action = [act for act in tut.actions if act.mnemonic == "RustcMetadata"][0]
+
+    # Both actions should use the same --emit=
+    assert_argv_contains(env, rlib_action, "--emit=dep-info,link,metadata")
+    assert_argv_contains(env, metadata_action, "--emit=dep-info,link,metadata")
+
+    # The metadata action should have a .rmeta as output and the rlib action a .rlib
+    path = rlib_action.outputs.to_list()[0].path
+    asserts.true(
+        env,
+        path.endswith(".rlib"),
+        "expected Rustc to output .rlib, got " + path,
+    )
+    path = metadata_action.outputs.to_list()[0].path
+    asserts.true(
+        env,
+        path.endswith(".rmeta"),
+        "expected RustcMetadata to output .rmeta, got " + path,
+    )
+
+    # Only the action building metadata should contain --rustc-quit-on-rmeta
+    assert_list_contains_adjacent_elements_not(env, rlib_action.argv, ["--rustc-quit-on-rmeta", "true"])
+    assert_list_contains_adjacent_elements(env, metadata_action.argv, ["--rustc-quit-on-rmeta", "true"])
+
+    # Check that both actions refer to the metadata of :first, not the rlib
+    extern_metadata = [arg for arg in metadata_action.argv if arg.startswith("--extern=first=") and "libfirst" in arg and arg.endswith(".rmeta")]
+    asserts.true(
+        env,
+        len(extern_metadata) == 1,
+        "did not find a --extern=first=*.rmeta but expected one",
+    )
+    extern_rlib = [arg for arg in rlib_action.argv if arg.startswith("--extern=first=") and "libfirst" in arg and arg.endswith(".rmeta")]
+    asserts.true(
+        env,
+        len(extern_rlib) == 1,
+        "did not find a --extern=first=*.rlib but expected one",
+    )
+
+    # Check that the input to both actions is the metadata of :first
+    input_metadata = [i for i in metadata_action.inputs.to_list() if i.basename.startswith("libfirst")]
+    asserts.true(env, len(input_metadata) == 1, "expected only one libfirst input, found " + str([i.path for i in input_metadata]))
+    asserts.true(env, input_metadata[0].extension == "rmeta", "expected libfirst dependency to be rmeta, found " + input_metadata[0].path)
+    input_rlib = [i for i in rlib_action.inputs.to_list() if i.basename.startswith("libfirst")]
+    asserts.true(env, len(input_rlib) == 1, "expected only one libfirst input, found " + str([i.path for i in input_rlib]))
+    asserts.true(env, input_rlib[0].extension == "rmeta", "expected libfirst dependency to be rmeta, found " + input_rlib[0].path)
+
+    return analysistest.end(env)
+
+def _bin_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    bin_action = [act for act in tut.actions if act.mnemonic == "Rustc"][0]
+
+    # Check that no inputs to this binary are .rmeta files.
+    metadata_inputs = [i.path for i in bin_action.inputs.to_list() if i.path.endswith(".rmeta")]
+    asserts.false(env, metadata_inputs, "expected no metadata inputs, found " + str(metadata_inputs))
+
+    return analysistest.end(env)
+
+bin_test = analysistest.make(_bin_test_impl, config_settings = ENABLE_PIPELINING)
+second_lib_test = analysistest.make(_second_lib_test_impl, config_settings = ENABLE_PIPELINING)
+
+def _pipelined_compilation_test():
+    rust_proc_macro(
+        name = "my_macro",
+        edition = "2021",
+        srcs = ["my_macro.rs"],
+    )
+
+    rust_library(
+        name = "first",
+        edition = "2021",
+        srcs = ["first.rs"],
+    )
+
+    rust_library(
+        name = "second",
+        edition = "2021",
+        srcs = ["second.rs"],
+        deps = [":first"],
+        proc_macro_deps = [":my_macro"],
+    )
+
+    rust_binary(
+        name = "bin",
+        edition = "2021",
+        srcs = ["bin.rs"],
+        deps = [":second"],
+    )
+
+    second_lib_test(name = "second_lib_test", target_under_test = ":second", target_compatible_with = NOT_WINDOWS)
+    bin_test(name = "bin_test", target_under_test = ":bin", target_compatible_with = NOT_WINDOWS)
+
+def _rmeta_is_propagated_through_custom_rule_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+
+    # This is the metadata-generating action. It should depend on metadata for the library and, if generate_metadata is set
+    # also depend on metadata for 'wrapper'.
+    rust_action = [act for act in tut.actions if act.mnemonic == "RustcMetadata"][0]
+
+    metadata_inputs = [i for i in rust_action.inputs.to_list() if i.path.endswith(".rmeta")]
+    rlib_inputs = [i for i in rust_action.inputs.to_list() if i.path.endswith(".rlib")]
+
+    seen_wrapper_metadata = False
+    seen_to_wrap_metadata = False
+    for mi in metadata_inputs:
+        if "libwrapper" in mi.path:
+            seen_wrapper_metadata = True
+        if "libto_wrap" in mi.path:
+            seen_to_wrap_metadata = True
+
+    seen_wrapper_rlib = False
+    seen_to_wrap_rlib = False
+    for ri in rlib_inputs:
+        if "libwrapper" in ri.path:
+            seen_wrapper_rlib = True
+        if "libto_wrap" in ri.path:
+            seen_to_wrap_rlib = True
+
+    if ctx.attr.generate_metadata:
+        asserts.true(env, seen_wrapper_metadata, "expected dependency on metadata for 'wrapper' but not found")
+        asserts.false(env, seen_wrapper_rlib, "expected no dependency on object for 'wrapper' but it was found")
+    else:
+        asserts.true(env, seen_wrapper_rlib, "expected dependency on object for 'wrapper' but not found")
+        asserts.false(env, seen_wrapper_metadata, "expected no dependency on metadata for 'wrapper' but it was found")
+
+    asserts.true(env, seen_to_wrap_metadata, "expected dependency on metadata for 'to_wrap' but not found")
+    asserts.false(env, seen_to_wrap_rlib, "expected no dependency on object for 'to_wrap' but it was found")
+
+    return analysistest.end(env)
+
+def _rmeta_is_used_when_building_custom_rule_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+
+    # This is the custom rule invocation of rustc.
+    rust_action = [act for act in tut.actions if act.mnemonic == "Rustc"][0]
+
+    # We want to check that the action depends on metadata, regardless of ctx.attr.generate_metadata
+    seen_to_wrap_rlib = False
+    seen_to_wrap_rmeta = False
+    for act in rust_action.inputs.to_list():
+        if "libto_wrap" in act.path and act.path.endswith(".rlib"):
+            seen_to_wrap_rlib = True
+        elif "libto_wrap" in act.path and act.path.endswith(".rmeta"):
+            seen_to_wrap_rmeta = True
+
+    asserts.true(env, seen_to_wrap_rmeta, "expected dependency on metadata for 'to_wrap' but not found")
+    asserts.false(env, seen_to_wrap_rlib, "expected no dependency on object for 'to_wrap' but it was found")
+
+    return analysistest.end(env)
+
+rmeta_is_propagated_through_custom_rule_test = analysistest.make(_rmeta_is_propagated_through_custom_rule_test_impl, attrs = {"generate_metadata": attr.bool()}, config_settings = ENABLE_PIPELINING)
+rmeta_is_used_when_building_custom_rule_test = analysistest.make(_rmeta_is_used_when_building_custom_rule_test_impl, config_settings = ENABLE_PIPELINING)
+
+def _rmeta_not_produced_if_pipelining_disabled_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+
+    rust_action = [act for act in tut.actions if act.mnemonic == "RustcMetadata"]
+    asserts.true(env, len(rust_action) == 0, "expected no metadata to be produced, but found a metadata action")
+
+    return analysistest.end(env)
+
+rmeta_not_produced_if_pipelining_disabled_test = analysistest.make(_rmeta_not_produced_if_pipelining_disabled_test_impl, config_settings = ENABLE_PIPELINING)
+
+def _disable_pipelining_test():
+    rust_library(
+        name = "lib",
+        srcs = ["custom_rule_test/to_wrap.rs"],
+        edition = "2021",
+        disable_pipelining = True,
+    )
+    rmeta_not_produced_if_pipelining_disabled_test(
+        name = "rmeta_not_produced_if_pipelining_disabled_test",
+        target_compatible_with = NOT_WINDOWS,
+        target_under_test = ":lib",
+    )
+
+def _custom_rule_test(generate_metadata, suffix):
+    rust_library(
+        name = "to_wrap" + suffix,
+        crate_name = "to_wrap",
+        srcs = ["custom_rule_test/to_wrap.rs"],
+        edition = "2021",
+    )
+    wrap(
+        name = "wrapper" + suffix,
+        crate_name = "wrapper",
+        target = ":to_wrap" + suffix,
+        generate_metadata = generate_metadata,
+    )
+    rust_library(
+        name = "uses_wrapper" + suffix,
+        srcs = ["custom_rule_test/uses_wrapper.rs"],
+        deps = [":wrapper" + suffix],
+        edition = "2021",
+    )
+
+    rmeta_is_propagated_through_custom_rule_test(
+        name = "rmeta_is_propagated_through_custom_rule_test" + suffix,
+        generate_metadata = generate_metadata,
+        target_compatible_with = NOT_WINDOWS,
+        target_under_test = ":uses_wrapper" + suffix,
+    )
+
+    rmeta_is_used_when_building_custom_rule_test(
+        name = "rmeta_is_used_when_building_custom_rule_test" + suffix,
+        target_compatible_with = NOT_WINDOWS,
+        target_under_test = ":wrapper" + suffix,
+    )
+
+def pipelined_compilation_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _pipelined_compilation_test()
+    _disable_pipelining_test()
+    _custom_rule_test(generate_metadata = True, suffix = "_with_metadata")
+    _custom_rule_test(generate_metadata = False, suffix = "_without_metadata")
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":bin_test",
+            ":second_lib_test",
+            ":rmeta_is_propagated_through_custom_rule_test_with_metadata",
+            ":rmeta_is_propagated_through_custom_rule_test_without_metadata",
+            ":rmeta_is_used_when_building_custom_rule_test_with_metadata",
+            ":rmeta_is_used_when_building_custom_rule_test_without_metadata",
+            ":rmeta_not_produced_if_pipelining_disabled_test",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/second.rs b/third_party/rules_rust/test/unit/pipelined_compilation/second.rs
new file mode 100644
index 0000000..b42e0b4
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/second.rs
@@ -0,0 +1,7 @@
+use first::first_fun;
+use my_macro::noop;
+
+#[noop]
+pub fn fun() {
+    println!("{}", first_fun())
+}
diff --git a/third_party/rules_rust/test/unit/pipelined_compilation/wrap.bzl b/third_party/rules_rust/test/unit/pipelined_compilation/wrap.bzl
new file mode 100644
index 0000000..11b8480
--- /dev/null
+++ b/third_party/rules_rust/test/unit/pipelined_compilation/wrap.bzl
@@ -0,0 +1,105 @@
+"""A custom rule that wraps a crate called to_wrap."""
+
+# buildifier: disable=bzl-visibility
+load("//rust/private:common.bzl", "rust_common")
+
+# buildifier: disable=bzl-visibility
+load("//rust/private:providers.bzl", "BuildInfo", "CrateInfo", "DepInfo", "DepVariantInfo")
+
+# buildifier: disable=bzl-visibility
+load("//rust/private:rustc.bzl", "rustc_compile_action")
+
+def _wrap_impl(ctx):
+    rs_file = ctx.actions.declare_file(ctx.label.name + "_wrapped.rs")
+    crate_name = ctx.attr.crate_name if ctx.attr.crate_name else ctx.label.name
+    ctx.actions.run_shell(
+        outputs = [rs_file],
+        command = """cat <<EOF > {}
+// crate_name: {}
+use to_wrap::to_wrap;
+
+pub fn wrap() {{
+    to_wrap();
+}}
+EOF
+""".format(rs_file.path, crate_name),
+        mnemonic = "WriteWrapperRsFile",
+    )
+
+    toolchain = ctx.toolchains[Label("//rust:toolchain")]
+
+    # Determine unique hash for this rlib
+    output_hash = repr(hash(rs_file.path))
+    crate_type = "rlib"
+
+    rust_lib_name = "{prefix}{name}-{lib_hash}{extension}".format(
+        prefix = "lib",
+        name = crate_name,
+        lib_hash = output_hash,
+        extension = ".rlib",
+    )
+    rust_metadata_name = "{prefix}{name}-{lib_hash}{extension}".format(
+        prefix = "lib",
+        name = crate_name,
+        lib_hash = output_hash,
+        extension = ".rmeta",
+    )
+
+    tgt = ctx.attr.target
+    deps = [DepVariantInfo(
+        crate_info = tgt[CrateInfo] if CrateInfo in tgt else None,
+        dep_info = tgt[DepInfo] if DepInfo in tgt else None,
+        build_info = tgt[BuildInfo] if BuildInfo in tgt else None,
+        cc_info = tgt[CcInfo] if CcInfo in tgt else None,
+    )]
+
+    rust_lib = ctx.actions.declare_file(rust_lib_name)
+    rust_metadata = None
+    if ctx.attr.generate_metadata:
+        rust_metadata = ctx.actions.declare_file(rust_metadata_name)
+    return rustc_compile_action(
+        ctx = ctx,
+        attr = ctx.attr,
+        toolchain = toolchain,
+        crate_info = rust_common.create_crate_info(
+            name = crate_name,
+            type = crate_type,
+            root = rs_file,
+            srcs = depset([rs_file]),
+            deps = depset(deps),
+            proc_macro_deps = depset([]),
+            aliases = {},
+            output = rust_lib,
+            metadata = rust_metadata,
+            owner = ctx.label,
+            edition = "2018",
+            compile_data = depset([]),
+            rustc_env = {},
+            is_test = False,
+        ),
+        output_hash = output_hash,
+    )
+
+wrap = rule(
+    implementation = _wrap_impl,
+    attrs = {
+        "crate_name": attr.string(),
+        "generate_metadata": attr.bool(default = False),
+        "target": attr.label(),
+        "_cc_toolchain": attr.label(
+            default = Label("@bazel_tools//tools/cpp:current_cc_toolchain"),
+        ),
+        "_error_format": attr.label(
+            default = Label("//:error_format"),
+        ),
+        "_process_wrapper": attr.label(
+            default = Label("//util/process_wrapper"),
+            executable = True,
+            allow_single_file = True,
+            cfg = "exec",
+        ),
+    },
+    toolchains = ["@rules_rust//rust:toolchain", "@bazel_tools//tools/cpp:toolchain_type"],
+    incompatible_use_toolchain_transition = True,
+    fragments = ["cpp"],
+)
diff --git a/third_party/rules_rust/test/unit/proc_macro/BUILD.bazel b/third_party/rules_rust/test/unit/proc_macro/BUILD.bazel
index e2d56c1..1927309 100644
--- a/third_party/rules_rust/test/unit/proc_macro/BUILD.bazel
+++ b/third_party/rules_rust/test/unit/proc_macro/BUILD.bazel
@@ -1,5 +1,13 @@
+load(
+    "//test/unit/proc_macro:leaks_deps/proc_macro_does_not_leak_deps.bzl",
+    "proc_macro_does_not_leak_deps_test_suite",
+)
 load(":proc_macro_test.bzl", "proc_macro_test_suite")
 
 proc_macro_test_suite(
     name = "proc_macro_test_suite",
 )
+
+proc_macro_does_not_leak_deps_test_suite(
+    name = "proc_macro_does_not_leak_deps_test_suite",
+)
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/a.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/a.rs
new file mode 100644
index 0000000..7d1a54e
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/a.rs
@@ -0,0 +1,5 @@
+use my_macro::greet;
+
+pub fn use_macro() -> &'static str {
+    greet!()
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/b.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/b.rs
new file mode 100644
index 0000000..8fd0518
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/b.rs
@@ -0,0 +1,3 @@
+pub fn hello() -> &'static str {
+    "hello"
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/my_macro.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/my_macro.rs
new file mode 100644
index 0000000..f8b6f2a
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/lib/my_macro.rs
@@ -0,0 +1,7 @@
+use b::hello;
+use proc_macro::{Literal, TokenStream, TokenTree};
+
+#[proc_macro]
+pub fn greet(_item: TokenStream) -> TokenStream {
+    TokenTree::Literal(Literal::string(hello())).into()
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/BUILD.bazel b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/BUILD.bazel
new file mode 100644
index 0000000..988cfa3
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+package(default_visibility = ["//test:__subpackages__"])
+
+cc_library(
+    name = "native",
+    srcs = ["native.cc"],
+)
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/native.cc b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/native.cc
new file mode 100644
index 0000000..04db727
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/native/native.cc
@@ -0,0 +1,5 @@
+#include <stdint.h>
+
+extern "C" {
+int32_t forty_two_from_cc() { return 42; }
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition.rs
new file mode 100644
index 0000000..9fcad75
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition.rs
@@ -0,0 +1,7 @@
+use proc_macro::TokenStream;
+use proc_macro_dep::forty_two;
+
+#[proc_macro]
+pub fn make_forty_two(_item: TokenStream) -> TokenStream {
+    forty_two().to_string().parse().unwrap()
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition_with_native_dependency.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition_with_native_dependency.rs
new file mode 100644
index 0000000..a4e368e
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_definition_with_native_dependency.rs
@@ -0,0 +1,7 @@
+use proc_macro::TokenStream;
+use proc_macro_dep_with_native_dep::forty_two;
+
+#[proc_macro]
+pub fn make_forty_two_from_native_dep(_item: TokenStream) -> TokenStream {
+    forty_two().to_string().parse().unwrap()
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/BUILD.bazel b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/BUILD.bazel
new file mode 100644
index 0000000..8bee950
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/BUILD.bazel
@@ -0,0 +1,16 @@
+load("//rust:defs.bzl", "rust_library")
+
+package(default_visibility = ["//test:__subpackages__"])
+
+rust_library(
+    name = "proc_macro_dep",
+    srcs = ["proc_macro_dep.rs"],
+    edition = "2018",
+)
+
+rust_library(
+    name = "proc_macro_dep_with_native_dep",
+    srcs = ["proc_macro_dep_with_native_dep.rs"],
+    edition = "2018",
+    deps = ["//test/unit/proc_macro/leaks_deps/native"],
+)
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep.rs
new file mode 100644
index 0000000..6d2a037
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep.rs
@@ -0,0 +1,3 @@
+pub fn forty_two() -> i32 {
+    42
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep_with_native_dep.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep_with_native_dep.rs
new file mode 100644
index 0000000..dd925eb
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_dep/proc_macro_dep_with_native_dep.rs
@@ -0,0 +1,7 @@
+extern "C" {
+    pub fn forty_two_from_cc() -> i32;
+}
+
+pub fn forty_two() -> i32 {
+    unsafe { forty_two_from_cc() }
+}
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_does_not_leak_deps.bzl b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_does_not_leak_deps.bzl
new file mode 100644
index 0000000..db86506
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_does_not_leak_deps.bzl
@@ -0,0 +1,148 @@
+"""Unittest to verify proc-macro targets"""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("//rust:defs.bzl", "rust_library", "rust_proc_macro", "rust_test")
+
+def _proc_macro_does_not_leak_deps_impl(ctx):
+    env = analysistest.begin(ctx)
+    actions = analysistest.target_under_test(env).actions
+    rustc_action = None
+    for action in actions:
+        if action.mnemonic == "Rustc":
+            rustc_action = action
+            break
+
+    asserts.false(env, rustc_action == None)
+
+    # Our test target has a dependency on "proc_macro_dep" via a rust_proc_macro target,
+    # so the proc_macro_dep rlib should not appear as an input to the Rustc action, nor as -Ldependency on the command line.
+    proc_macro_dep_inputs = [i for i in rustc_action.inputs.to_list() if "proc_macro_dep" in i.path]
+    proc_macro_dep_args = [arg for arg in rustc_action.argv if "proc_macro_dep" in arg]
+
+    asserts.equals(env, 0, len(proc_macro_dep_inputs))
+    asserts.equals(env, 0, len(proc_macro_dep_args))
+
+    # Our test target depends on proc_macro_dep:native directly, as well as transitively through the
+    # proc_macro. The proc_macro should not leak its dependency, so we should only get the "native"
+    # library once on the command line.
+    native_deps = [arg for arg in rustc_action.argv if arg.startswith("-Clink-arg=-lnative")]
+    asserts.equals(env, 1, len(native_deps))
+
+    return analysistest.end(env)
+
+def _proc_macro_does_not_leak_deps_test():
+    rust_proc_macro(
+        name = "proc_macro_definition",
+        srcs = ["leaks_deps/proc_macro_definition.rs"],
+        edition = "2018",
+        deps = ["//test/unit/proc_macro/leaks_deps/proc_macro_dep"],
+    )
+
+    rust_proc_macro(
+        name = "proc_macro_with_native_dep",
+        srcs = ["leaks_deps/proc_macro_definition_with_native_dependency.rs"],
+        edition = "2018",
+        deps = [
+            "//test/unit/proc_macro/leaks_deps/proc_macro_dep:proc_macro_dep_with_native_dep",
+            "//test/unit/proc_macro/leaks_deps/native",
+        ],
+    )
+
+    rust_test(
+        name = "deps_not_leaked",
+        srcs = ["leaks_deps/proc_macro_user.rs"],
+        edition = "2018",
+        deps = [
+            "//test/unit/proc_macro/leaks_deps/native",
+        ],
+        proc_macro_deps = [
+            ":proc_macro_definition",
+            ":proc_macro_with_native_dep",
+        ],
+    )
+
+    proc_macro_does_not_leak_deps_test(
+        name = "proc_macro_does_not_leak_deps_test",
+        target_under_test = ":deps_not_leaked",
+    )
+
+proc_macro_does_not_leak_deps_test = analysistest.make(_proc_macro_does_not_leak_deps_impl)
+
+# Tests that a lib_a -> proc_macro -> lib_b does not propagate lib_b to the inputs of lib_a
+def _proc_macro_does_not_leak_lib_deps_impl(ctx):
+    env = analysistest.begin(ctx)
+    actions = analysistest.target_under_test(env).actions
+    rustc_actions = []
+    for action in actions:
+        if action.mnemonic == "Rustc" or action.mnemonic == "RustcMetadata":
+            rustc_actions.append(action)
+
+    # We should have a RustcMetadata and a Rustc action.
+    asserts.true(env, len(rustc_actions) == 2, "expected 2 actions, got %d" % len(rustc_actions))
+
+    for rustc_action in rustc_actions:
+        # lib :a has a dependency on :my_macro via a rust_proc_macro target.
+        # lib :b (which is a dependency of :my_macro) should not appear in the inputs of :a
+        b_inputs = [i for i in rustc_action.inputs.to_list() if "libb" in i.path]
+        b_args = [arg for arg in rustc_action.argv if "libb" in arg]
+
+        asserts.equals(env, 0, len(b_inputs))
+        asserts.equals(env, 0, len(b_args))
+
+    return analysistest.end(env)
+
+def _proc_macro_does_not_leak_lib_deps_test():
+    rust_library(
+        name = "b",
+        srcs = ["leaks_deps/lib/b.rs"],
+        edition = "2018",
+    )
+
+    rust_proc_macro(
+        name = "my_macro",
+        srcs = ["leaks_deps/lib/my_macro.rs"],
+        edition = "2018",
+        deps = [
+            ":b",
+        ],
+    )
+
+    rust_library(
+        name = "a",
+        srcs = ["leaks_deps/lib/a.rs"],
+        edition = "2018",
+        proc_macro_deps = [
+            ":my_macro",
+        ],
+    )
+
+    NOT_WINDOWS = select({
+        "@platforms//os:linux": [],
+        "@platforms//os:macos": [],
+        "//conditions:default": ["@platforms//:incompatible"],
+    })
+
+    proc_macro_does_not_leak_lib_deps_test(
+        name = "proc_macro_does_not_leak_lib_deps_test",
+        target_under_test = ":a",
+        target_compatible_with = NOT_WINDOWS,
+    )
+
+proc_macro_does_not_leak_lib_deps_test = analysistest.make(_proc_macro_does_not_leak_lib_deps_impl, config_settings = {"@//rust/settings:pipelined_compilation": True})
+
+def proc_macro_does_not_leak_deps_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _proc_macro_does_not_leak_deps_test()
+    _proc_macro_does_not_leak_lib_deps_test()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":proc_macro_does_not_leak_deps_test",
+            ":proc_macro_does_not_leak_lib_deps_test",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_user.rs b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_user.rs
new file mode 100644
index 0000000..c038dd5
--- /dev/null
+++ b/third_party/rules_rust/test/unit/proc_macro/leaks_deps/proc_macro_user.rs
@@ -0,0 +1,17 @@
+use proc_macro_definition::make_forty_two;
+use proc_macro_with_native_dep::make_forty_two_from_native_dep;
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_forty_two() {
+        assert_eq!(make_forty_two!(), 42);
+    }
+
+    #[test]
+    fn test_forty_two_from_native_dep() {
+        assert_eq!(make_forty_two_from_native_dep!(), 42);
+    }
+}
diff --git a/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/BUILD.bazel b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/BUILD.bazel
new file mode 100644
index 0000000..bf00a3a
--- /dev/null
+++ b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/BUILD.bazel
@@ -0,0 +1,4 @@
+load(":rust_test_outputs.bzl", "rust_test_outputs_test_suite")
+
+############################ UNIT TESTS #############################
+rust_test_outputs_test_suite(name = "rust_test_outputs_test_suite")
diff --git a/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/foo.rs b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/foo.rs
new file mode 100644
index 0000000..da0f5d9
--- /dev/null
+++ b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/foo.rs
@@ -0,0 +1 @@
+pub fn main() {}
diff --git a/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/rust_test_outputs.bzl b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/rust_test_outputs.bzl
new file mode 100644
index 0000000..8c0f480
--- /dev/null
+++ b/third_party/rules_rust/test/unit/rust_test_outputs_are_in_subdirectory/rust_test_outputs.bzl
@@ -0,0 +1,64 @@
+"""Tests for rust_test outputs directory."""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("//rust:defs.bzl", "rust_binary", "rust_common", "rust_test")
+
+def _rust_test_outputs_test(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+
+    output = tut[rust_common.crate_info].output
+
+    asserts.true(env, output.dirname.split("/")[-1].startswith("test-"))
+
+    return analysistest.end(env)
+
+rust_test_outputs_test = analysistest.make(
+    _rust_test_outputs_test,
+)
+
+def _rust_test_outputs_targets():
+    rust_binary(
+        name = "bin_outputs",
+        srcs = ["foo.rs"],
+        edition = "2018",
+    )
+
+    rust_test(
+        name = "test_outputs_with_srcs",
+        srcs = ["foo.rs"],
+        edition = "2018",
+    )
+
+    rust_test_outputs_test(
+        name = "rust_test_outputs_using_srcs_attr",
+        target_under_test = ":test_outputs_with_srcs",
+    )
+
+    rust_test(
+        name = "test_outputs_with_crate",
+        crate = "bin_outputs",
+        edition = "2018",
+    )
+
+    rust_test_outputs_test(
+        name = "rust_test_outputs_using_crate_attr",
+        target_under_test = ":test_outputs_with_crate",
+    )
+
+def rust_test_outputs_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+      name: Name of the macro.
+    """
+
+    _rust_test_outputs_targets()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":rust_test_outputs_using_srcs_attr",
+            ":rust_test_outputs_using_crate_attr",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/rustdoc/adder.rs b/third_party/rules_rust/test/unit/rustdoc/adder.rs
new file mode 100644
index 0000000..7211f1a
--- /dev/null
+++ b/third_party/rules_rust/test/unit/rustdoc/adder.rs
@@ -0,0 +1,18 @@
+// Copyright 2022 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.
+
+/// Increments the input.
+pub fn inc(n: u32) -> u32 {
+    n + 1
+}
diff --git a/third_party/rules_rust/test/unit/rustdoc/rustdoc_lib.rs b/third_party/rules_rust/test/unit/rustdoc/rustdoc_lib.rs
index f7b4652..6ab3234 100644
--- a/third_party/rules_rust/test/unit/rustdoc/rustdoc_lib.rs
+++ b/third_party/rules_rust/test/unit/rustdoc/rustdoc_lib.rs
@@ -9,6 +9,11 @@
 /// fn answer() -> u32 { 42 }
 /// assert_eq!(answer(), 42);
 /// ```
+///
+/// ```
+/// use adder::inc;
+/// assert_eq!(inc(41), 42);
+/// ```
 #[cfg(not(feature = "with_proc_macro"))]
 pub fn answer() -> u32 {
     42
diff --git a/third_party/rules_rust/test/unit/rustdoc/rustdoc_unit_test.bzl b/third_party/rules_rust/test/unit/rustdoc/rustdoc_unit_test.bzl
index 6d7a6ed..e6a122a 100644
--- a/third_party/rules_rust/test/unit/rustdoc/rustdoc_unit_test.bzl
+++ b/third_party/rules_rust/test/unit/rustdoc/rustdoc_unit_test.bzl
@@ -74,15 +74,17 @@
 rustdoc_for_bin_with_transitive_proc_macro_test = analysistest.make(_rustdoc_for_bin_with_transitive_proc_macro_test_impl)
 rustdoc_for_lib_with_cc_lib_test = analysistest.make(_rustdoc_for_lib_with_cc_lib_test_impl)
 
-def _target_maker(rule_fn, name, **kwargs):
+def _target_maker(rule_fn, name, rustdoc_deps = [], **kwargs):
     rule_fn(
         name = name,
+        edition = "2018",
         **kwargs
     )
 
     rust_test(
         name = "{}_test".format(name),
         crate = ":{}".format(name),
+        edition = "2018",
     )
 
     rust_doc(
@@ -93,9 +95,16 @@
     rust_doc_test(
         name = "{}_doctest".format(name),
         crate = ":{}".format(name),
+        deps = rustdoc_deps,
     )
 
 def _define_targets():
+    rust_library(
+        name = "adder",
+        srcs = ["adder.rs"],
+        edition = "2018",
+    )
+
     _target_maker(
         rust_binary,
         name = "bin",
@@ -106,19 +115,20 @@
         rust_library,
         name = "lib",
         srcs = ["rustdoc_lib.rs"],
+        rustdoc_deps = [":adder"],
     )
 
     _target_maker(
         rust_proc_macro,
         name = "rustdoc_proc_macro",
         srcs = ["rustdoc_proc_macro.rs"],
-        edition = "2018",
     )
 
     _target_maker(
         rust_library,
         name = "lib_with_proc_macro",
         srcs = ["rustdoc_lib.rs"],
+        rustdoc_deps = [":adder"],
         proc_macro_deps = [":rustdoc_proc_macro"],
         crate_features = ["with_proc_macro"],
     )
@@ -142,6 +152,7 @@
         rust_library,
         name = "lib_with_cc",
         srcs = ["rustdoc_lib.rs"],
+        rustdoc_deps = [":adder"],
         crate_features = ["with_cc"],
         deps = [":cc_lib"],
     )
diff --git a/third_party/rules_rust/test/unit/stamp/stamp.rs b/third_party/rules_rust/test/unit/stamp/stamp.rs
index cb80052..ec98749 100644
--- a/third_party/rules_rust/test/unit/stamp/stamp.rs
+++ b/third_party/rules_rust/test/unit/stamp/stamp.rs
@@ -12,26 +12,55 @@
 mod test {
     use super::*;
 
-    #[cfg(feature = "force_stamp")]
+    #[cfg(any(
+        feature = "always_stamp",
+        feature = "consult_cmdline_value_is_true",
+        feature = "always_stamp_build_flag_true",
+        feature = "always_stamp_build_flag_false"
+    ))]
     #[test]
-    fn stamp_resolved() {
+    fn stamp_resolved_for_library() {
         assert!(!build_timestamp().contains("BUILD_TIMESTAMP"));
         assert!(build_timestamp().chars().all(char::is_numeric));
+
+        assert!(!build_user().contains("BUILD_USER"));
     }
 
-    #[cfg(feature = "skip_stamp")]
+    #[cfg(any(
+        feature = "always_stamp",
+        feature = "consult_cmdline_value_is_true",
+        feature = "always_stamp_build_flag_true",
+        feature = "always_stamp_build_flag_false"
+    ))]
     #[test]
-    fn stamp_not_resolved() {
+    fn stamp_resolved_for_test() {
+        assert!(!env!("BUILD_TIMESTAMP").contains("BUILD_TIMESTAMP"));
+        assert!(env!("BUILD_TIMESTAMP").chars().all(char::is_numeric));
+
+        assert!(!env!("BUILD_USER").contains("BUILD_USER"));
+    }
+
+    #[cfg(any(
+        feature = "never_stamp",
+        feature = "consult_cmdline_value_is_false",
+        feature = "never_stamp_build_flag_true",
+        feature = "never_stamp_build_flag_false"
+    ))]
+    #[test]
+    fn stamp_not_resolved_for_library() {
         assert!(build_timestamp().contains("BUILD_TIMESTAMP"));
+        assert!(build_user().contains("BUILD_USER"));
     }
 
+    #[cfg(any(
+        feature = "never_stamp",
+        feature = "consult_cmdline_value_is_false",
+        feature = "never_stamp_build_flag_true",
+        feature = "never_stamp_build_flag_false"
+    ))]
     #[test]
-    fn lib_volatile_stamp_matches() {
-        assert_eq!(build_timestamp(), env!("BUILD_TIMESTAMP"));
-    }
-
-    #[test]
-    fn lib_stable_stamp_not_stamped() {
-        assert_eq!(build_user(), "{BUILD_USER}");
+    fn stamp_not_resolved_for_test() {
+        assert!(env!("BUILD_TIMESTAMP").contains("BUILD_TIMESTAMP"));
+        assert!(env!("BUILD_USER").contains("BUILD_USER"));
     }
 }
diff --git a/third_party/rules_rust/test/unit/stamp/stamp_main.rs b/third_party/rules_rust/test/unit/stamp/stamp_main.rs
index 0e8b963..ae547c4 100644
--- a/third_party/rules_rust/test/unit/stamp/stamp_main.rs
+++ b/third_party/rules_rust/test/unit/stamp/stamp_main.rs
@@ -1,10 +1,47 @@
-#[cfg(feature = "force_stamp")]
-use force_stamp::build_timestamp;
+#[cfg(feature = "always_stamp")]
+use default_with_build_flag_on_lib::build_timestamp;
+#[cfg(feature = "always_stamp")]
+use default_with_build_flag_on_lib::build_user;
 
-#[cfg(feature = "skip_stamp")]
-use skip_stamp::build_timestamp;
+#[cfg(feature = "never_stamp")]
+use default_with_build_flag_off_lib::build_timestamp;
+#[cfg(feature = "never_stamp")]
+use default_with_build_flag_off_lib::build_user;
+
+#[cfg(feature = "always_stamp_build_flag_true")]
+use always_stamp_build_flag_true_lib::build_timestamp;
+#[cfg(feature = "always_stamp_build_flag_true")]
+use always_stamp_build_flag_true_lib::build_user;
+
+#[cfg(feature = "always_stamp_build_flag_false")]
+use always_stamp_build_flag_false_lib::build_timestamp;
+#[cfg(feature = "always_stamp_build_flag_false")]
+use always_stamp_build_flag_false_lib::build_user;
+
+#[cfg(feature = "never_stamp_build_flag_true")]
+use never_stamp_build_flag_true_lib::build_timestamp;
+#[cfg(feature = "never_stamp_build_flag_true")]
+use never_stamp_build_flag_true_lib::build_user;
+
+#[cfg(feature = "never_stamp_build_flag_false")]
+use never_stamp_build_flag_false_lib::build_timestamp;
+#[cfg(feature = "never_stamp_build_flag_false")]
+use never_stamp_build_flag_false_lib::build_user;
+
+#[cfg(feature = "consult_cmdline_value_is_true")]
+use consult_cmdline_value_is_true_lib::build_timestamp;
+#[cfg(feature = "consult_cmdline_value_is_true")]
+use consult_cmdline_value_is_true_lib::build_user;
+
+#[cfg(feature = "consult_cmdline_value_is_false")]
+use consult_cmdline_value_is_false_lib::build_timestamp;
+#[cfg(feature = "consult_cmdline_value_is_false")]
+use consult_cmdline_value_is_false_lib::build_user;
 
 fn main() {
     println!("bin stamp: {}", env!("BUILD_TIMESTAMP"));
     println!("lib stamp: {}", build_timestamp());
+
+    println!("bin stamp: {}", env!("BUILD_USER"));
+    println!("lib stamp: {}", build_user());
 }
diff --git a/third_party/rules_rust/test/unit/stamp/stamp_test.bzl b/third_party/rules_rust/test/unit/stamp/stamp_test.bzl
index 18251e1..871808d 100644
--- a/third_party/rules_rust/test/unit/stamp/stamp_test.bzl
+++ b/third_party/rules_rust/test/unit/stamp/stamp_test.bzl
@@ -1,7 +1,7 @@
 """Unittest to verify workspace status stamping is applied to environment files"""
 
 load("@bazel_skylib//lib:unittest.bzl", "analysistest")
-load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
+load("//rust:defs.bzl", "rust_binary", "rust_common", "rust_library", "rust_test")
 load(
     "//test/unit:common.bzl",
     "assert_action_mnemonic",
@@ -9,112 +9,307 @@
     "assert_argv_contains_not",
 )
 
-def _stamp_test_impl(ctx, force_stamp):
+_STAMP_ATTR_VALUES = (0, 1, -1)
+_BUILD_FLAG_VALUES = ("true", "false")
+
+def _assert_stamped(env, action):
+    assert_argv_contains(env, action, "--volatile-status-file")
+    assert_argv_contains(env, action, "bazel-out/volatile-status.txt")
+
+    assert_argv_contains(env, action, "--stable-status-file")
+    assert_argv_contains(env, action, "bazel-out/stable-status.txt")
+
+def _assert_not_stamped(env, action):
+    assert_argv_contains_not(env, action, "--volatile-status-file")
+    assert_argv_contains_not(env, action, "bazel-out/volatile-status.txt")
+
+    assert_argv_contains_not(env, action, "--stable-status-file")
+    assert_argv_contains_not(env, action, "bazel-out/stable-status.txt")
+
+def _stamp_build_flag_test_impl(ctx, flag_value):
     env = analysistest.begin(ctx)
     target = analysistest.target_under_test(env)
 
     action = target.actions[0]
     assert_action_mnemonic(env, action, "Rustc")
 
-    if force_stamp:
-        assert_argv_contains(env, action, "--volatile-status-file")
-        assert_argv_contains(env, action, "bazel-out/volatile-status.txt")
-    else:
-        assert_argv_contains_not(env, action, "--volatile-status-file")
-        assert_argv_contains_not(env, action, "bazel-out/volatile-status.txt")
+    is_test = target[rust_common.crate_info].is_test
+    is_bin = target[rust_common.crate_info].type == "bin"
 
-    # Note that use of stable status invalidates targets any time it's updated.
-    # This is undesirable behavior so it's intended to be excluded from the
-    # Rustc action. In general this should be fine as other rules can be used
-    # to produce template files for stamping in this action (ie. genrule).
-    assert_argv_contains_not(env, action, "bazel-out/stable-status.txt")
+    # bazel build --stamp should lead to stamped rust binaries, but not
+    # libraries and tests.
+    if flag_value:
+        if is_bin and not is_test:
+            _assert_stamped(env, action)
+        else:
+            _assert_not_stamped(env, action)
+    else:
+        _assert_not_stamped(env, action)
 
     return analysistest.end(env)
 
-def _force_stamp_test_impl(ctx):
-    return _stamp_test_impl(ctx, True)
+def _stamp_build_flag_is_true_impl(ctx):
+    return _stamp_build_flag_test_impl(ctx, True)
 
-def _skip_stamp_test_impl(ctx):
-    return _stamp_test_impl(ctx, False)
+def _stamp_build_flag_is_false_impl(ctx):
+    return _stamp_build_flag_test_impl(ctx, False)
 
-force_stamp_test = analysistest.make(_force_stamp_test_impl)
-skip_stamp_test = analysistest.make(_skip_stamp_test_impl)
+stamp_build_flag_is_true_test = analysistest.make(
+    _stamp_build_flag_is_true_impl,
+    config_settings = {
+        "//command_line_option:stamp": True,
+    },
+)
 
-_STAMP_VALUES = (0, 1)
+stamp_build_flag_is_false_test = analysistest.make(
+    _stamp_build_flag_is_false_impl,
+    config_settings = {
+        "//command_line_option:stamp": False,
+    },
+)
 
-def _define_test_targets():
-    for stamp_value in _STAMP_VALUES:
-        if stamp_value == 1:
-            name = "force_stamp"
-            features = ["force_stamp"]
+def _build_flag_tests():
+    tests = []
+    for stamp_value in _BUILD_FLAG_VALUES:
+        if stamp_value == "true":
+            name = "default_with_build_flag_on"
+            features = ["always_stamp"]
+            build_flag_stamp_test = stamp_build_flag_is_true_test
         else:
-            name = "skip_stamp"
-            features = ["skip_stamp"]
+            name = "default_with_build_flag_off"
+            features = ["never_stamp"]
+            build_flag_stamp_test = stamp_build_flag_is_false_test
 
         rust_library(
-            name = name,
+            name = "{}_lib".format(name),
             srcs = ["stamp.rs"],
+            rustc_env_files = ["stamp.env"],
             edition = "2018",
-            rustc_env_files = [":stamp.env"],
-            stamp = stamp_value,
-            crate_features = features,
-        )
-
-        rust_test(
-            name = "{}_unit_test".format(name),
-            crate = ":{}".format(name),
-            rustc_env_files = [":stamp.env"],
-            stamp = stamp_value,
-            crate_features = features,
+            # Building with --stamp should not affect rust libraries
+            crate_features = ["never_stamp"],
         )
 
         rust_binary(
             name = "{}_bin".format(name),
             srcs = ["stamp_main.rs"],
-            deps = [":{}".format(name)],
-            rustc_env_files = [":stamp.env"],
-            stamp = stamp_value,
+            edition = "2018",
+            deps = ["{}_lib".format(name)],
+            rustc_env_files = ["stamp.env"],
             crate_features = features,
         )
 
+        rust_test(
+            name = "{}_test".format(name),
+            crate = "{}_lib".format(name),
+            edition = "2018",
+            rustc_env_files = ["stamp.env"],
+            # Building with --stamp should not affect tests
+            crate_features = ["never_stamp"],
+        )
+
+        build_flag_stamp_test(
+            name = "lib_{}_test".format(name),
+            target_under_test = "{}_lib".format(name),
+        )
+        build_flag_stamp_test(
+            name = "bin_{}_test".format(name),
+            target_under_test = "{}_bin".format(name),
+        )
+
+        build_flag_stamp_test(
+            name = "test_{}_test".format(name),
+            target_under_test = "{}_test".format(name),
+        )
+
+        tests.extend([
+            "lib_{}_test".format(name),
+            "bin_{}_test".format(name),
+            "test_{}_test".format(name),
+        ])
+    return tests
+
+def _attribute_stamp_test_impl(ctx, attribute_value, build_flag_value):
+    env = analysistest.begin(ctx)
+    target = analysistest.target_under_test(env)
+
+    action = target.actions[0]
+    assert_action_mnemonic(env, action, "Rustc")
+
+    if attribute_value == 1:
+        _assert_stamped(env, action)
+    elif attribute_value == 0:
+        _assert_not_stamped(env, action)
+    elif build_flag_value:
+        _assert_stamped(env, action)
+    else:
+        _assert_not_stamped(env, action)
+
+    return analysistest.end(env)
+
+def _always_stamp_build_flag_is_true_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = 1, build_flag_value = True)
+
+def _always_stamp_build_flag_is_false_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = 1, build_flag_value = False)
+
+def _never_stamp_build_flag_is_true_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = 0, build_flag_value = True)
+
+def _never_stamp_build_flag_is_false_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = 0, build_flag_value = False)
+
+def _consult_build_flag_value_is_true_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = -1, build_flag_value = True)
+
+def _consult_build_flag_value_is_false_test_impl(ctx):
+    return _attribute_stamp_test_impl(ctx, attribute_value = -1, build_flag_value = False)
+
+always_stamp_test_build_flag_is_true_test = analysistest.make(
+    _always_stamp_build_flag_is_true_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": True,
+    },
+)
+
+always_stamp_test_build_flag_is_false_test = analysistest.make(
+    _always_stamp_build_flag_is_false_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": False,
+    },
+)
+
+never_stamp_test_build_flag_is_true_test = analysistest.make(
+    _never_stamp_build_flag_is_true_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": True,
+    },
+)
+
+never_stamp_test_build_flag_is_false_test = analysistest.make(
+    _never_stamp_build_flag_is_false_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": False,
+    },
+)
+
+consult_build_flag_value_is_true_test = analysistest.make(
+    _consult_build_flag_value_is_true_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": True,
+    },
+)
+
+consult_build_flag_value_is_false_test = analysistest.make(
+    _consult_build_flag_value_is_false_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": False,
+    },
+)
+
+def _stamp_attribute_tests():
+    tests = []
+
+    for stamp_value in _STAMP_ATTR_VALUES:
+        for flag_value in _BUILD_FLAG_VALUES:
+            if stamp_value == 1:
+                name = "always_stamp_build_flag_{}".format(flag_value)
+                features = ["always_stamp_build_flag_{}".format(flag_value)]
+                stamp_attr_test = always_stamp_test_build_flag_is_true_test if flag_value == "true" else always_stamp_test_build_flag_is_false_test
+            elif stamp_value == 0:
+                name = "never_stamp_build_flag_{}".format(flag_value)
+                features = ["never_stamp_build_flag_{}".format(flag_value)]
+                stamp_attr_test = never_stamp_test_build_flag_is_true_test if flag_value == "true" else never_stamp_test_build_flag_is_false_test
+            else:
+                name = "consult_cmdline_value_is_{}".format(flag_value)
+                features = ["consult_cmdline_value_is_{}".format(flag_value)]
+                stamp_attr_test = consult_build_flag_value_is_true_test if flag_value == "true" else consult_build_flag_value_is_false_test
+
+            rust_library(
+                name = "{}_lib".format(name),
+                srcs = ["stamp.rs"],
+                edition = "2018",
+                rustc_env_files = [":stamp.env"],
+                stamp = stamp_value,
+                crate_features = features,
+            )
+
+            rust_test(
+                name = "{}_unit_test".format(name),
+                crate = ":{}_lib".format(name),
+                edition = "2018",
+                rustc_env_files = [":stamp.env"],
+                stamp = stamp_value,
+                crate_features = features,
+                # We disable this test so that it doesn't try to run with bazel test //test/...
+                # The reason for this is because then it is sensitive to the --stamp value which
+                # we override in the unit test implementation.
+                tags = ["manual"],
+            )
+
+            rust_binary(
+                name = "{}_bin".format(name),
+                srcs = ["stamp_main.rs"],
+                edition = "2018",
+                deps = [":{}_lib".format(name)],
+                rustc_env_files = [":stamp.env"],
+                stamp = stamp_value,
+                crate_features = features,
+            )
+
+            stamp_attr_test(
+                name = "lib_{}_test".format(name),
+                target_under_test = "{}_lib".format(name),
+            )
+            stamp_attr_test(
+                name = "bin_{}_test".format(name),
+                target_under_test = "{}_bin".format(name),
+            )
+
+            stamp_attr_test(
+                name = "test_{}_test".format(name),
+                target_under_test = "{}_unit_test".format(name),
+            )
+
+            tests.extend([
+                "lib_{}_test".format(name),
+                "bin_{}_test".format(name),
+                "test_{}_test".format(name),
+            ])
+    return tests
+
+def _process_wrapper_with_stamp_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    target = analysistest.target_under_test(env)
+
+    action = target.actions[0]
+    assert_action_mnemonic(env, action, "Rustc")
+
+    _assert_not_stamped(env, action)
+
+    return analysistest.end(env)
+
+process_wrapper_with_stamp_test = analysistest.make(
+    _process_wrapper_with_stamp_test_impl,
+    config_settings = {
+        "//command_line_option:stamp": True,
+    },
+)
+
+def _process_wrapper_tests():
+    process_wrapper_with_stamp_test(
+        name = "test_process_wrapper_with_stamp_test",
+        target_under_test = "//util/process_wrapper:process_wrapper",
+    )
+
+    return ["test_process_wrapper_with_stamp_test"]
+
 def stamp_test_suite(name):
     """Entry-point macro called from the BUILD file.
 
     Args:
         name (str): Name of the macro.
     """
-    _define_test_targets()
-
-    tests = []
-
-    for stamp_value in _STAMP_VALUES:
-        if stamp_value == 1:
-            test_name = "force_stamp"
-            stamp_test = force_stamp_test
-        else:
-            test_name = "skip_stamp"
-            stamp_test = skip_stamp_test
-
-        stamp_test(
-            name = "lib_{}_test".format(test_name),
-            target_under_test = Label("//test/unit/stamp:{}".format(test_name)),
-        )
-
-        stamp_test(
-            name = "test_{}_test".format(test_name),
-            target_under_test = Label("//test/unit/stamp:{}_unit_test".format(test_name)),
-        )
-
-        stamp_test(
-            name = "bin_{}_test".format(test_name),
-            target_under_test = Label("//test/unit/stamp:{}_bin".format(test_name)),
-        )
-
-        tests.extend([
-            "lib_{}_test".format(test_name),
-            "test_{}_test".format(test_name),
-            "bin_{}_test".format(test_name),
-        ])
+    tests = _build_flag_tests() + _stamp_attribute_tests() + _process_wrapper_tests()
 
     native.test_suite(
         name = name,
diff --git a/third_party/rules_rust/test/unit/stdlib/stdlib.bzl b/third_party/rules_rust/test/unit/stdlib/stdlib.bzl
index 9d83190..6a46634 100644
--- a/third_party/rules_rust/test/unit/stdlib/stdlib.bzl
+++ b/third_party/rules_rust/test/unit/stdlib/stdlib.bzl
@@ -65,6 +65,7 @@
     rust_library(
         name = "some_rlib",
         srcs = ["some_rlib.rs"],
+        edition = "2018",
     )
 
     libstd_ordering_test(
diff --git a/third_party/rules_rust/test/unit/toolchain_make_variables/BUILD.bazel b/third_party/rules_rust/test/unit/toolchain_make_variables/BUILD.bazel
new file mode 100644
index 0000000..2534bd8
--- /dev/null
+++ b/third_party/rules_rust/test/unit/toolchain_make_variables/BUILD.bazel
@@ -0,0 +1,5 @@
+load(":toolchain_make_variables_test.bzl", "toolchain_make_variable_test_suite")
+
+toolchain_make_variable_test_suite(
+    name = "toolchain_make_variable_test_suite",
+)
diff --git a/third_party/rules_rust/test/unit/toolchain_make_variables/main.rs b/third_party/rules_rust/test/unit/toolchain_make_variables/main.rs
new file mode 100644
index 0000000..997d772
--- /dev/null
+++ b/third_party/rules_rust/test/unit/toolchain_make_variables/main.rs
@@ -0,0 +1,8 @@
+use std::env;
+use std::fs;
+
+pub fn main() {
+    let argv1 = env::args().nth(1).expect("Missing output argument");
+
+    fs::write(argv1, "").unwrap();
+}
diff --git a/third_party/rules_rust/test/unit/toolchain_make_variables/test.rs b/third_party/rules_rust/test/unit/toolchain_make_variables/test.rs
new file mode 100644
index 0000000..f328e4d
--- /dev/null
+++ b/third_party/rules_rust/test/unit/toolchain_make_variables/test.rs
@@ -0,0 +1 @@
+fn main() {}
diff --git a/third_party/rules_rust/test/unit/toolchain_make_variables/toolchain_make_variables_test.bzl b/third_party/rules_rust/test/unit/toolchain_make_variables/toolchain_make_variables_test.bzl
new file mode 100644
index 0000000..02f6d9e
--- /dev/null
+++ b/third_party/rules_rust/test/unit/toolchain_make_variables/toolchain_make_variables_test.bzl
@@ -0,0 +1,240 @@
+"""Tests for make variables provided by `rust_toolchain`"""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest")
+load("//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
+load("//test/unit:common.bzl", "assert_action_mnemonic", "assert_env_value")
+
+_ENV = {
+    "ENV_VAR_CARGO": "$(CARGO)",
+    "ENV_VAR_RUSTC": "$(RUSTC)",
+    "ENV_VAR_RUSTDOC": "$(RUSTDOC)",
+    "ENV_VAR_RUSTFMT": "$(RUSTFMT)",
+    "ENV_VAR_RUST_DEFAULT_EDITION": "$(RUST_DEFAULT_EDITION)",
+    "ENV_VAR_RUST_SYSROOT": "$(RUST_SYSROOT)",
+}
+
+def _rust_toolchain_make_variable_expansion_test_common_impl(ctx, mnemonic):
+    env = analysistest.begin(ctx)
+    target = analysistest.target_under_test(env)
+    action = target.actions[0]
+
+    assert_action_mnemonic(
+        env = env,
+        action = action,
+        mnemonic = mnemonic,
+    )
+
+    toolchain = ctx.attr._current_rust_toolchain[platform_common.ToolchainInfo]
+
+    expected_values = {
+        "ENV_VAR_CARGO": toolchain.cargo.path,
+        "ENV_VAR_RUSTC": toolchain.rustc.path,
+        "ENV_VAR_RUSTDOC": toolchain.rust_doc.path,
+        "ENV_VAR_RUSTFMT": toolchain.rustfmt.path,
+        "ENV_VAR_RUST_DEFAULT_EDITION": toolchain.default_edition or "",
+        "ENV_VAR_RUST_SYSROOT": toolchain.sysroot,
+    }
+
+    for key in _ENV:
+        assert_env_value(
+            env = env,
+            action = action,
+            key = key,
+            value = expected_values[key],
+        )
+
+    return analysistest.end(env)
+
+def make_toolchain_make_variable_test(impl):
+    return analysistest.make(
+        impl = impl,
+        attrs = {
+            "_current_rust_toolchain": attr.label(
+                doc = "The currently registered rust toolchain",
+                default = Label("//rust/toolchain:current_rust_toolchain"),
+            ),
+        },
+    )
+
+def _rustc_env_variable_expansion_test_impl(ctx):
+    return _rust_toolchain_make_variable_expansion_test_common_impl(ctx, "Rustc")
+
+rustc_env_variable_expansion_test = make_toolchain_make_variable_test(
+    impl = _rustc_env_variable_expansion_test_impl,
+)
+
+def _rust_toolchain_make_variable_expansion_test(ctx):
+    return _rust_toolchain_make_variable_expansion_test_common_impl(ctx, "RustToolchainConsumer")
+
+rust_toolchain_make_variable_expansion_test = make_toolchain_make_variable_test(
+    impl = _rust_toolchain_make_variable_expansion_test,
+)
+
+def _current_rust_toolchain_make_variable_expansion_test_impl(ctx):
+    return _rust_toolchain_make_variable_expansion_test_common_impl(ctx, "CurrentRustToolchainConsumer")
+
+current_rust_toolchain_make_variable_expansion_test = make_toolchain_make_variable_test(
+    impl = _current_rust_toolchain_make_variable_expansion_test_impl,
+)
+
+def _rust_toolchain_consumer_common_impl(ctx, mnemonic):
+    output = ctx.actions.declare_file(ctx.label.name)
+
+    args = ctx.actions.args()
+    args.add(output)
+
+    # Expand make variables
+    env = {
+        key: ctx.expand_make_variables(
+            key,
+            val,
+            {},
+        )
+        for key, val in ctx.attr.env.items()
+    }
+
+    ctx.actions.run(
+        outputs = [output],
+        executable = ctx.executable.writer,
+        mnemonic = mnemonic,
+        env = env,
+        arguments = [args],
+    )
+
+    return DefaultInfo(
+        files = depset([output]),
+    )
+
+def _rust_toolchain_consumer_impl(ctx):
+    return _rust_toolchain_consumer_common_impl(ctx, "RustToolchainConsumer")
+
+rust_toolchain_consumer = rule(
+    implementation = _rust_toolchain_consumer_impl,
+    doc = "A helper rule to test make variable expansion of rules that depend on `rust_toolchain`.",
+    attrs = {
+        "env": attr.string_dict(
+            doc = "Environment variables used for expansion",
+            mandatory = True,
+        ),
+        "writer": attr.label(
+            doc = "An executable for creating an action output",
+            cfg = "exec",
+            executable = True,
+            mandatory = True,
+        ),
+    },
+    toolchains = [
+        "@rules_rust//rust:toolchain_type",
+    ],
+)
+
+def _current_rust_toolchain_consumer_impl(ctx):
+    return _rust_toolchain_consumer_common_impl(ctx, "CurrentRustToolchainConsumer")
+
+current_rust_toolchain_consumer = rule(
+    implementation = _current_rust_toolchain_consumer_impl,
+    doc = "A helper rule to test make variable expansion of `current_rust_toolchain`.",
+    attrs = {
+        "env": attr.string_dict(
+            doc = "Environment variables used for expansion",
+            mandatory = True,
+        ),
+        "writer": attr.label(
+            doc = "An executable for creating an action output",
+            cfg = "exec",
+            executable = True,
+            mandatory = True,
+        ),
+    },
+)
+
+def _define_targets():
+    rust_library(
+        name = "library",
+        srcs = ["main.rs"],
+        rustc_env = _ENV,
+        edition = "2018",
+    )
+
+    rust_binary(
+        name = "binary",
+        srcs = ["main.rs"],
+        rustc_env = _ENV,
+        edition = "2018",
+    )
+
+    rust_test(
+        name = "integration_test",
+        srcs = ["test.rs"],
+        rustc_env = _ENV,
+        edition = "2018",
+    )
+
+    rust_test(
+        name = "unit_test",
+        crate = "library",
+        rustc_env = _ENV,
+    )
+
+    rust_toolchain_consumer(
+        name = "rust_toolchain_consumer",
+        env = _ENV,
+        writer = ":binary",
+    )
+
+    current_rust_toolchain_consumer(
+        name = "current_rust_toolchain_consumer",
+        env = _ENV,
+        toolchains = ["//rust/toolchain:current_rust_toolchain"],
+        writer = ":binary",
+    )
+
+def toolchain_make_variable_test_suite(name):
+    """Defines a test suite
+
+    Args:
+        name (str): The name of the test suite
+    """
+    _define_targets()
+
+    rustc_env_variable_expansion_test(
+        name = "rustc_env_variable_expansion_library_test",
+        target_under_test = ":library",
+    )
+
+    rustc_env_variable_expansion_test(
+        name = "rustc_env_variable_expansion_binary_test",
+        target_under_test = ":binary",
+    )
+
+    rustc_env_variable_expansion_test(
+        name = "rustc_env_variable_expansion_integration_test_test",
+        target_under_test = ":integration_test",
+    )
+
+    rustc_env_variable_expansion_test(
+        name = "rustc_env_variable_expansion_unit_test_test",
+        target_under_test = ":unit_test",
+    )
+
+    rust_toolchain_make_variable_expansion_test(
+        name = "rust_toolchain_make_variable_expansion_test",
+        target_under_test = ":rust_toolchain_consumer",
+    )
+
+    current_rust_toolchain_make_variable_expansion_test(
+        name = "current_rust_toolchain_make_variable_expansion_test",
+        target_under_test = ":current_rust_toolchain_consumer",
+    )
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":rustc_env_variable_expansion_library_test",
+            ":rustc_env_variable_expansion_binary_test",
+            ":rustc_env_variable_expansion_integration_test_test",
+            ":rustc_env_variable_expansion_unit_test_test",
+            ":rust_toolchain_make_variable_expansion_test",
+            ":current_rust_toolchain_make_variable_expansion_test",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/transitive_crate_outputs/transitive_crate_outputs_test.bzl b/third_party/rules_rust/test/unit/transitive_crate_outputs/transitive_crate_outputs_test.bzl
index 8662185..031f83e 100644
--- a/third_party/rules_rust/test/unit/transitive_crate_outputs/transitive_crate_outputs_test.bzl
+++ b/third_party/rules_rust/test/unit/transitive_crate_outputs/transitive_crate_outputs_test.bzl
@@ -21,12 +21,14 @@
     rust_library(
         name = "foo",
         srcs = ["foo.rs"],
+        edition = "2018",
         deps = [":bar", ":baz"],
     )
 
     rust_library(
         name = "bar",
         srcs = ["bar.rs"],
+        edition = "2018",
     )
 
     # buildifier: disable=native-cc
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/BUILD.bazel b/third_party/rules_rust/test/unit/transitive_link_search_paths/BUILD.bazel
new file mode 100644
index 0000000..df20a92
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/BUILD.bazel
@@ -0,0 +1,4 @@
+load(":transitive_link_search_paths_test.bzl", "transitive_link_search_paths_test_suite")
+
+############################ UNIT TESTS #############################
+transitive_link_search_paths_test_suite(name = "transitive_link_search_paths_test_suite")
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/dep.rs b/third_party/rules_rust/test/unit/transitive_link_search_paths/dep.rs
new file mode 100644
index 0000000..cf74a9a
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/dep.rs
@@ -0,0 +1,3 @@
+pub fn f() -> i64 {
+    42
+}
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/dep_build.rs b/third_party/rules_rust/test/unit/transitive_link_search_paths/dep_build.rs
new file mode 100644
index 0000000..29fec91
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/dep_build.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("yolo");
+}
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro.rs b/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro.rs
new file mode 100644
index 0000000..2803ddb
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro.rs
@@ -0,0 +1,8 @@
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+
+#[proc_macro_attribute]
+pub fn yolo(args: TokenStream, _input: TokenStream) -> TokenStream {
+    args
+}
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro_build.rs b/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro_build.rs
new file mode 100644
index 0000000..29fec91
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/proc_macro_build.rs
@@ -0,0 +1,3 @@
+fn main() {
+    println!("yolo");
+}
diff --git a/third_party/rules_rust/test/unit/transitive_link_search_paths/transitive_link_search_paths_test.bzl b/third_party/rules_rust/test/unit/transitive_link_search_paths/transitive_link_search_paths_test.bzl
new file mode 100644
index 0000000..ac76547
--- /dev/null
+++ b/third_party/rules_rust/test/unit/transitive_link_search_paths/transitive_link_search_paths_test.bzl
@@ -0,0 +1,67 @@
+"""Unittests for rust rules."""
+
+load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts")
+load("//cargo:defs.bzl", "cargo_build_script")
+load("//rust:defs.bzl", "rust_common", "rust_library", "rust_proc_macro")
+
+def _transitive_link_search_paths_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    tut = analysistest.target_under_test(env)
+    link_search_path_files = tut[rust_common.dep_info].link_search_path_files.to_list()
+    link_search_path_basenames = [f.basename for f in link_search_path_files]
+
+    # Checks that this contains the dep build script, but not the build script
+    # of the dep of the proc_macro.
+    asserts.equals(env, link_search_path_basenames, ["dep_build_script.linksearchpaths"])
+
+    return analysistest.end(env)
+
+transitive_link_search_paths_test = analysistest.make(_transitive_link_search_paths_test_impl)
+
+def _transitive_link_search_paths_test():
+    cargo_build_script(
+        name = "proc_macro_build_script",
+        srcs = ["proc_macro_build.rs"],
+        edition = "2018",
+    )
+
+    rust_proc_macro(
+        name = "proc_macro",
+        srcs = ["proc_macro.rs"],
+        edition = "2018",
+        deps = [":proc_macro_build_script"],
+    )
+
+    cargo_build_script(
+        name = "dep_build_script",
+        srcs = ["dep_build.rs"],
+        edition = "2018",
+    )
+
+    rust_library(
+        name = "dep",
+        srcs = ["dep.rs"],
+        edition = "2018",
+        proc_macro_deps = [":proc_macro"],
+        deps = [":dep_build_script"],
+    )
+
+    transitive_link_search_paths_test(
+        name = "transitive_link_search_paths_test",
+        target_under_test = ":dep",
+    )
+
+def transitive_link_search_paths_test_suite(name):
+    """Entry-point macro called from the BUILD file.
+
+    Args:
+        name: Name of the macro.
+    """
+    _transitive_link_search_paths_test()
+
+    native.test_suite(
+        name = name,
+        tests = [
+            ":transitive_link_search_paths_test",
+        ],
+    )
diff --git a/third_party/rules_rust/test/unit/use_libtest_harness/use_libtest_harness_test.bzl b/third_party/rules_rust/test/unit/use_libtest_harness/use_libtest_harness_test.bzl
index fd7907d..87296a5 100644
--- a/third_party/rules_rust/test/unit/use_libtest_harness/use_libtest_harness_test.bzl
+++ b/third_party/rules_rust/test/unit/use_libtest_harness/use_libtest_harness_test.bzl
@@ -31,11 +31,13 @@
     rust_test(
         name = "mytest",
         srcs = ["mytest.rs"],
+        edition = "2018",
     )
 
     rust_test(
         name = "mytest_noharness",
         srcs = ["mytest_noharness.rs"],
+        edition = "2018",
         use_libtest_harness = False,
     )
 
diff --git a/third_party/rules_rust/test/unit/utils/utils_test.bzl b/third_party/rules_rust/test/unit/utils/utils_test.bzl
index dd7bbe5..7e995a1 100644
--- a/third_party/rules_rust/test/unit/utils/utils_test.bzl
+++ b/third_party/rules_rust/test/unit/utils/utils_test.bzl
@@ -3,7 +3,7 @@
 load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:utils.bzl", "decode_crate_name_as_label_for_testing", "encode_label_as_crate_name", "should_encode_label_in_crate_name")
+load("//rust/private:utils.bzl", "decode_crate_name_as_label_for_testing", "encode_label_as_crate_name", "encode_raw_string_for_testing", "should_encode_label_in_crate_name", "substitutions_for_testing")
 
 def _encode_label_as_crate_name_test_impl(ctx):
     env = unittest.begin(ctx)
@@ -11,50 +11,88 @@
     # Typical cases.
     asserts.equals(
         env,
-        "x_slash_y_colon_z",
+        "x_y_y_x_z",
         encode_label_as_crate_name("x/y", "z"),
     )
     asserts.equals(
         env,
-        "some_slash_package_colon_target",
+        "some_y_package_x_target",
         encode_label_as_crate_name("some/package", "target"),
     )
 
     # Target name includes a character illegal in crate names.
     asserts.equals(
         env,
-        "some_slash_package_colon_foo_slash_target",
+        "some_y_package_x_foo_y_target",
         encode_label_as_crate_name("some/package", "foo/target"),
     )
 
     # Package/target includes some of the encodings.
     asserts.equals(
         env,
-        "some_quoteslash__slash_package_colon_target_quotedot_foo",
-        encode_label_as_crate_name("some_slash_/package", "target_dot_foo"),
+        "some_zy__y_package_x_target_zpd_foo",
+        encode_label_as_crate_name("some_y_/package", "target_pd_foo"),
     )
 
     # Some pathological cases: test that round-tripping the encoding works as
     # expected.
 
     # Label includes a quoted encoding.
-    package = "_quotedot_"
+    package = "_zpd_"
     target = "target"
-    asserts.equals(env, "_quotequote_dot__colon_target", encode_label_as_crate_name(package, target))
+    asserts.equals(env, "_zz_pd__x_target", encode_label_as_crate_name(package, target))
     asserts.equals(env, package + ":" + target, decode_crate_name_as_label_for_testing(encode_label_as_crate_name(package, target)))
 
-    package = "x_slash_y"
+    package = "x_y_y"
     target = "z"
-    asserts.equals(env, "x_quoteslash_y_colon_z", encode_label_as_crate_name(package, target))
+    asserts.equals(env, "x_zy_y_x_z", encode_label_as_crate_name(package, target))
     asserts.equals(env, package + ":" + target, decode_crate_name_as_label_for_testing(encode_label_as_crate_name(package, target)))
 
     # Package is identical to a valid encoding already.
-    package = "_quotequote_dot__colon_target"
+    package = "_zz_pd__x_target"
     target = "target"
-    asserts.equals(env, "_quotequote_quote_quotedot__quotecolon_target_colon_target", encode_label_as_crate_name(package, target))
+    asserts.equals(env, "_zz_z_zpd__zx_target_x_target", encode_label_as_crate_name(package, target))
     asserts.equals(env, package + ":" + target, decode_crate_name_as_label_for_testing(encode_label_as_crate_name(package, target)))
     return unittest.end(env)
 
+def _substitutions_concatenate_test_impl(ctx):
+    env = unittest.begin(ctx)
+
+    # Every combination of orig + orig, orig + encoded, encoded + orig, and
+    # encoded + encoded round trips the encoding successfully.
+    all_symbols = [s for pair in substitutions_for_testing for s in pair]
+    for s in all_symbols:
+        for t in all_symbols:
+            concatenated = s + t
+            asserts.equals(env, decode_crate_name_as_label_for_testing(encode_raw_string_for_testing(concatenated)), concatenated)
+
+    return unittest.end(env)
+
+def _encode_raw_string_test_impl(ctx):
+    env = unittest.begin(ctx)
+    asserts.equals(env, encode_raw_string_for_testing("some_project:utils"), "some_project_x_utils")
+    asserts.equals(env, encode_raw_string_for_testing("_zpd_"), "_zz_pd_")
+
+    # No surprises in the application of the substitutions, everything is
+    # encoded as expected.
+    for (orig, encoded) in substitutions_for_testing:
+        asserts.equals(env, encode_raw_string_for_testing(orig), encoded)
+
+    return unittest.end(env)
+
+#
+def _decode_test_impl(ctx):
+    env = unittest.begin(ctx)
+    asserts.equals(env, decode_crate_name_as_label_for_testing("some_project_x_utils"), "some_project:utils")
+    asserts.equals(env, decode_crate_name_as_label_for_testing("_zz_pd_"), "_zpd_")
+
+    # No surprises in the application of the substitutions, everything is
+    # decoded as expected.
+    for (orig, encoded) in substitutions_for_testing:
+        asserts.equals(env, decode_crate_name_as_label_for_testing(encoded), orig)
+
+    return unittest.end(env)
+
 def _is_third_party_crate_test_impl(ctx):
     env = unittest.begin(ctx)
 
@@ -79,10 +117,16 @@
 
 encode_label_as_crate_name_test = unittest.make(_encode_label_as_crate_name_test_impl)
 is_third_party_crate_test = unittest.make(_is_third_party_crate_test_impl)
+substitutions_concatenate_test = unittest.make(_substitutions_concatenate_test_impl)
+encode_raw_string_test = unittest.make(_encode_raw_string_test_impl)
+decode_test = unittest.make(_decode_test_impl)
 
 def utils_test_suite(name):
     unittest.suite(
         name,
         encode_label_as_crate_name_test,
         is_third_party_crate_test,
+        substitutions_concatenate_test,
+        encode_raw_string_test,
+        decode_test,
     )
diff --git a/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_analysis_test.bzl b/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_analysis_test.bzl
index f31d390..4545b14 100644
--- a/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_analysis_test.bzl
+++ b/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_analysis_test.bzl
@@ -45,6 +45,7 @@
     rust_shared_library(
         name = "linux_no_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_libsterling.so"],
         target_compatible_with = ["@platforms//os:linux"],
     )
@@ -66,6 +67,7 @@
     rust_shared_library(
         name = "linux_suffix_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_libcheryl.so.3.8", ":import_libcheryl.so"],
         target_compatible_with = ["@platforms//os:linux"],
     )
@@ -102,6 +104,7 @@
     rust_shared_library(
         name = "no_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_liblana.dylib"],
         target_compatible_with = ["@platforms//os:macos"],
     )
@@ -123,6 +126,7 @@
     rust_shared_library(
         name = "prefix_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_libpam3.8.dylib"],
         target_compatible_with = ["@platforms//os:macos"],
     )
@@ -150,6 +154,7 @@
     rust_shared_library(
         name = "windows_no_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_malory.dll"],
         target_compatible_with = ["@platforms//os:windows"],
     )
@@ -182,6 +187,7 @@
     rust_shared_library(
         name = "windows_prefix_version",
         srcs = ["a.rs"],
+        edition = "2018",
         deps = [":import_cyril3.8.dll"],
         target_compatible_with = ["@platforms//os:windows"],
     )
diff --git a/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_unit_test.bzl b/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_unit_test.bzl
index 0a30525..1ede046 100644
--- a/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_unit_test.bzl
+++ b/third_party/rules_rust/test/unit/versioned_libs/versioned_libs_unit_test.bzl
@@ -3,32 +3,32 @@
 load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:utils.bzl", "get_lib_name")
+load("//rust/private:utils.bzl", "get_lib_name_default", "get_lib_name_for_windows")
 
 def _produced_expected_lib_name_test_impl(ctx):
     env = unittest.begin(ctx)
 
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.dylib")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.so")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.a")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "python.dll")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "python.lib")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.dylib")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a")))
+    asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.dll")))
+    asserts.equals(env, "python", get_lib_name_for_windows(struct(basename = "python.lib")))
 
-    asserts.equals(env, "python3", get_lib_name(struct(basename = "libpython3.dylib")))
-    asserts.equals(env, "python3.8", get_lib_name(struct(basename = "libpython3.8.dylib")))
-    asserts.equals(env, "python3", get_lib_name(struct(basename = "libpython3.a")))
-    asserts.equals(env, "python3.8", get_lib_name(struct(basename = "libpython3.8.a")))
+    asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.dylib")))
+    asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.dylib")))
+    asserts.equals(env, "python3", get_lib_name_default(struct(basename = "libpython3.a")))
+    asserts.equals(env, "python3.8", get_lib_name_default(struct(basename = "libpython3.8.a")))
 
-    asserts.equals(env, "python38", get_lib_name(struct(basename = "python38.dll")))
-    asserts.equals(env, "python38m", get_lib_name(struct(basename = "python38m.dll")))
+    asserts.equals(env, "python38", get_lib_name_for_windows(struct(basename = "python38.dll")))
+    asserts.equals(env, "python38m", get_lib_name_for_windows(struct(basename = "python38m.dll")))
 
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.so.3")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.so.3.8")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.so.3.8.0")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.a.3")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.a.3.8")))
-    asserts.equals(env, "python", get_lib_name(struct(basename = "libpython.a.3.8.0")))
-    asserts.equals(env, "python-3.8.0", get_lib_name(struct(basename = "libpython-3.8.0.so.3.8.0")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.so.3.8.0")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8")))
+    asserts.equals(env, "python", get_lib_name_default(struct(basename = "libpython.a.3.8.0")))
+    asserts.equals(env, "python-3.8.0", get_lib_name_default(struct(basename = "libpython-3.8.0.so.3.8.0")))
 
     return unittest.end(env)
 
diff --git a/third_party/rules_rust/test/unit/win_interface_library/bin.cc b/third_party/rules_rust/test/unit/win_interface_library/bin.cc
index a3c073a..b8bd84e 100644
--- a/third_party/rules_rust/test/unit/win_interface_library/bin.cc
+++ b/third_party/rules_rust/test/unit/win_interface_library/bin.cc
@@ -1,6 +1,6 @@
 extern "C" void hello(void);
 
 int main(int argc, char **argv) {
-    hello();
-    return 0;
+  hello();
+  return 0;
 }
diff --git a/third_party/rules_rust/test/unit/win_interface_library/win_interface_library_analysis_test.bzl b/third_party/rules_rust/test/unit/win_interface_library/win_interface_library_analysis_test.bzl
index fef00f2..69072fa 100644
--- a/third_party/rules_rust/test/unit/win_interface_library/win_interface_library_analysis_test.bzl
+++ b/third_party/rules_rust/test/unit/win_interface_library/win_interface_library_analysis_test.bzl
@@ -33,6 +33,7 @@
     rust_shared_library(
         name = "mylib",
         srcs = ["lib.rs"],
+        edition = "2018",
         target_compatible_with = ["@platforms//os:windows"],
     )
 
@@ -46,6 +47,7 @@
     rust_binary(
         name = "myrustbin",
         srcs = ["main.rs"],
+        edition = "2018",
         target_compatible_with = ["@platforms//os:windows"],
     )
 
diff --git a/third_party/rules_rust/test/versioned_dylib/BUILD.bazel b/third_party/rules_rust/test/versioned_dylib/BUILD.bazel
index a8804e4..fd0298f 100644
--- a/third_party/rules_rust/test/versioned_dylib/BUILD.bazel
+++ b/third_party/rules_rust/test/versioned_dylib/BUILD.bazel
@@ -7,6 +7,7 @@
     srcs = [
         "src/main.rs",
     ],
+    edition = "2018",
     tags = ["manual"],
     deps = [
         "//test/versioned_dylib/c:libreturn_zero",
@@ -17,5 +18,6 @@
 rust_test(
     name = "versioned_dylib_test",
     crate = "versioned_dylib",
+    edition = "2018",
     tags = ["manual"],
 )
diff --git a/third_party/rules_rust/test/versioned_dylib/c/return_zero.c b/third_party/rules_rust/test/versioned_dylib/c/return_zero.c
index ea3e6d8..ef72eaa 100644
--- a/third_party/rules_rust/test/versioned_dylib/c/return_zero.c
+++ b/third_party/rules_rust/test/versioned_dylib/c/return_zero.c
@@ -1,5 +1,3 @@
 #include "return_zero.h"
 
-int return_zero() {
-    return 0;
-}
\ No newline at end of file
+int return_zero() { return 0; }
diff --git a/third_party/rules_rust/test/versioned_dylib/c/return_zero.h b/third_party/rules_rust/test/versioned_dylib/c/return_zero.h
index 4e7cb4a..5f55f77 100644
--- a/third_party/rules_rust/test/versioned_dylib/c/return_zero.h
+++ b/third_party/rules_rust/test/versioned_dylib/c/return_zero.h
@@ -1,6 +1,6 @@
 #ifndef versioned_lib_h__
 #define versioned_lib_h__
- 
+
 extern int return_zero();
- 
-#endif  // versioned_lib_h__
\ No newline at end of file
+
+#endif  // versioned_lib_h__
diff --git a/third_party/rules_rust/tools/runfiles/BUILD.bazel b/third_party/rules_rust/tools/runfiles/BUILD.bazel
index 7a2eceb..aa3414d 100644
--- a/third_party/rules_rust/tools/runfiles/BUILD.bazel
+++ b/third_party/rules_rust/tools/runfiles/BUILD.bazel
@@ -8,6 +8,7 @@
 rust_library(
     name = "runfiles",
     srcs = ["runfiles.rs"],
+    edition = "2018",
     visibility = ["//visibility:public"],
 )
 
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/BUILD.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..b642169
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/BUILD.bazel
@@ -0,0 +1,47 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    cargo_lockfile = "Cargo.Bazel.lock",
+    mode = "remote",
+    packages = {
+        "anyhow": crate.spec(
+            version = "1.0.58",
+        ),
+        "clap": crate.spec(
+            features = [
+                "derive",
+                "env",
+            ],
+            version = "3.2.12",
+        ),
+        "env_logger": crate.spec(
+            version = "0.9.0",
+        ),
+        "itertools": crate.spec(
+            version = "0.10.3",
+        ),
+        "log": crate.spec(
+            version = "0.4.17",
+        ),
+        "serde": crate.spec(
+            features = ["derive"],
+            version = "1.0.139",
+        ),
+        "serde_json": crate.spec(
+            version = "1.0.82",
+        ),
+    },
+    repository_name = "rules_rust_rust_analyzer",
+    tags = ["manual"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//tools/rust_analyzer/3rdparty/crates:defs.bzl",
+        "//tools/rust_analyzer/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//tools/rust_analyzer:__pkg__"],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/tools/rust_analyzer/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..cf953a7
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,374 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clap"
+version = "3.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d"
+dependencies = [
+ "atty",
+ "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "indexmap",
+ "once_cell",
+ "strsim",
+ "termcolor",
+ "textwrap",
+]
+
+[[package]]
+name = "clap_derive"
+version = "3.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "anyhow",
+ "clap",
+ "env_logger",
+ "itertools",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "either"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "env_logger"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "indexmap"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
+dependencies = [
+ "autocfg",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "ryu"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
+[[package]]
+name = "serde"
+version = "1.0.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
new file mode 100644
index 0000000..27abe22
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "aho_corasick",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
new file mode 100644
index 0000000..7ddb72a
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "anyhow",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.58",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__anyhow-1.0.58//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "anyhow_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.58",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "anyhow_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel
new file mode 100644
index 0000000..5735d73
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.atty-0.2.14.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "atty",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.14",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "hermit")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "hermit")'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..bcf233a
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..d89f0ea
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,77 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "anyhow",
+    actual = "@rules_rust_rust_analyzer__anyhow-1.0.58//:anyhow",
+    tags = ["manual"],
+)
+
+alias(
+    name = "clap",
+    actual = "@rules_rust_rust_analyzer__clap-3.2.12//:clap",
+    tags = ["manual"],
+)
+
+alias(
+    name = "env_logger",
+    actual = "@rules_rust_rust_analyzer__env_logger-0.9.0//:env_logger",
+    tags = ["manual"],
+)
+
+alias(
+    name = "itertools",
+    actual = "@rules_rust_rust_analyzer__itertools-0.10.3//:itertools",
+    tags = ["manual"],
+)
+
+alias(
+    name = "log",
+    actual = "@rules_rust_rust_analyzer__log-0.4.17//:log",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde",
+    actual = "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde_json",
+    actual = "@rules_rust_rust_analyzer__serde_json-1.0.82//:serde_json",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "clap__stdio-fixture",
+    actual = "@rules_rust_rust_analyzer__clap-3.2.12//:stdio-fixture__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..7c25f32
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..20256bf
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel
new file mode 100644
index 0000000..852e149
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap-3.2.12.bazel
@@ -0,0 +1,197 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__bitflags-1.3.2//:bitflags",
+            "@rules_rust_rust_analyzer__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:indexmap",
+            "@rules_rust_rust_analyzer__once_cell-1.13.0//:once_cell",
+            "@rules_rust_rust_analyzer__strsim-0.10.0//:strsim",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+            "@rules_rust_rust_analyzer__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "stdio-fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "clap_derive",
+        "color",
+        "default",
+        "derive",
+        "env",
+        "once_cell",
+        "std",
+        "strsim",
+        "suggestions",
+        "termcolor",
+    ],
+    crate_root = "src/bin/stdio-fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__clap_derive-3.2.7//:clap_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.12",
+    deps = [
+        ":clap",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__bitflags-1.3.2//:bitflags",
+            "@rules_rust_rust_analyzer__clap_lex-0.2.4//:clap_lex",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:indexmap",
+            "@rules_rust_rust_analyzer__once_cell-1.13.0//:once_cell",
+            "@rules_rust_rust_analyzer__strsim-0.10.0//:strsim",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+            "@rules_rust_rust_analyzer__textwrap-0.15.0//:textwrap",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
new file mode 100644
index 0000000..128996e
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_derive-3.2.7.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "clap_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.2.7",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__heck-0.4.0//:heck",
+            "@rules_rust_rust_analyzer__proc-macro-error-1.0.4//:proc_macro_error",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
new file mode 100644
index 0000000..f7c5b04
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.clap_lex-0.2.4.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "clap_lex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__os_str_bytes-6.2.0//:os_str_bytes",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel
new file mode 100644
index 0000000..ea68aca
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.either-1.7.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "either",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
new file mode 100644
index 0000000..5067e58
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.env_logger-0.9.0.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "env_logger",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "default",
+        "humantime",
+        "regex",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__atty-0.2.14//:atty",
+            "@rules_rust_rust_analyzer__humantime-2.1.0//:humantime",
+            "@rules_rust_rust_analyzer__log-0.4.17//:log",
+            "@rules_rust_rust_analyzer__regex-1.6.0//:regex",
+            "@rules_rust_rust_analyzer__termcolor-1.1.3//:termcolor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
new file mode 100644
index 0000000..69925a1
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hashbrown-0.12.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "hashbrown",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.12.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel
new file mode 100644
index 0000000..2098d03
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.heck-0.4.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "heck",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..1bbda72
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel
new file mode 100644
index 0000000..af2f5ef
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.humantime-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "humantime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
new file mode 100644
index 0000000..790ccd9
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.indexmap-1.9.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "indexmap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__hashbrown-0.12.3//:hashbrown",
+            "@rules_rust_rust_analyzer__indexmap-1.9.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "indexmap_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "indexmap_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel
new file mode 100644
index 0000000..e671062
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itertools-0.10.3.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "itertools",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_alloc",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__either-1.7.0//:either",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel
new file mode 100644
index 0000000..18cf467
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.itoa-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..3b30254
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..ef5fcb9
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_rust_analyzer__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..8e71063
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..4f4b425
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
new file mode 100644
index 0000000..a53f242
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.os_str_bytes-6.2.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "os_str_bytes",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "raw_os_str",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "6.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
new file mode 100644
index 0000000..030a606
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-1.0.4.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro_error",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4//:proc_macro_error_attr",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-1.0.4//:build_script_build",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "syn",
+        "syn-error",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
new file mode 100644
index 0000000..45a9cb5
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro-error-attr-1.0.4.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "proc_macro_error_attr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4//:build_script_build",
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro-error-attr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro-error-attr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..9544ed2
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:build_script_build",
+            "@rules_rust_rust_analyzer__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..9b5f548
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..84fba50
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__aho-corasick-0.7.18//:aho_corasick",
+            "@rules_rust_rust_analyzer__memchr-2.5.0//:memchr",
+            "@rules_rust_rust_analyzer__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..edd66d7
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel
new file mode 100644
index 0000000..ea6e126
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.ryu-1.0.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel
new file mode 100644
index 0000000..d31617e
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde-1.0.139.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__serde_derive-1.0.139//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__serde-1.0.139//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
new file mode 100644
index 0000000..3be28ca
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "serde_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__serde_derive-1.0.139//:build_script_build",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_derive_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_derive_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
new file mode 100644
index 0000000..9039e2b
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__itoa-1.0.2//:itoa",
+            "@rules_rust_rust_analyzer__ryu-1.0.10//:ryu",
+            "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+            "@rules_rust_rust_analyzer__serde_json-1.0.82//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel
new file mode 100644
index 0000000..7cfa3f3
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "strsim",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..f4c648f
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,193 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_rust_analyzer__quote-1.0.20//:quote",
+            "@rules_rust_rust_analyzer__syn-1.0.98//:build_script_build",
+            "@rules_rust_rust_analyzer__unicode-ident-1.0.2//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
new file mode 100644
index 0000000..09ff98b
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "termcolor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-util-0.1.5//:winapi_util",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
new file mode 100644
index 0000000..1205a91
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.textwrap-0.15.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "textwrap",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.15.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
new file mode 100644
index 0000000..fec6cf6
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.unicode-ident-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel
new file mode 100644
index 0000000..d277e71
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.version_check-0.9.4.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "version_check",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..310c379
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,206 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "winbase",
+        "wincon",
+        "winerror",
+        "winnt",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..a6680ab
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-i686-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-i686-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
new file mode 100644
index 0000000..4c0fd1a
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "winapi_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_rust_analyzer__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..a62ba1e
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_rust_analyzer__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-x86_64-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-x86_64-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/crates.bzl b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..db27807
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//tools/rust_analyzer/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_rust_analyzer",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/defs.bzl b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..f7e6b3c
--- /dev/null
+++ b/third_party/rules_rust/tools/rust_analyzer/3rdparty/crates/defs.bzl
@@ -0,0 +1,802 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //tools/rust_analyzer/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "anyhow": "@rules_rust_rust_analyzer__anyhow-1.0.58//:anyhow",
+            "clap": "@rules_rust_rust_analyzer__clap-3.2.12//:clap",
+            "env_logger": "@rules_rust_rust_analyzer__env_logger-0.9.0//:env_logger",
+            "itertools": "@rules_rust_rust_analyzer__itertools-0.10.3//:itertools",
+            "log": "@rules_rust_rust_analyzer__log-0.4.17//:log",
+            "serde": "@rules_rust_rust_analyzer__serde-1.0.139//:serde",
+            "serde_json": "@rules_rust_rust_analyzer__serde_json-1.0.82//:serde_json",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "x86_64-pc-windows-gnu": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__aho-corasick-0.7.18",
+        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.18/download"],
+        strip_prefix = "aho-corasick-0.7.18",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.aho-corasick-0.7.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__anyhow-1.0.58",
+        sha256 = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.58/download"],
+        strip_prefix = "anyhow-1.0.58",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.anyhow-1.0.58.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__atty-0.2.14",
+        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
+        strip_prefix = "atty-0.2.14",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.atty-0.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap-3.2.12",
+        sha256 = "ab8b79fe3946ceb4a0b1c080b4018992b8d27e9ff363644c1c9b6387c854614d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap/3.2.12/download"],
+        strip_prefix = "clap-3.2.12",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap-3.2.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap_derive-3.2.7",
+        sha256 = "759bf187376e1afa7b85b959e6a664a3e7a95203415dba952ad19139e798f902",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_derive/3.2.7/download"],
+        strip_prefix = "clap_derive-3.2.7",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap_derive-3.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__clap_lex-0.2.4",
+        sha256 = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/clap_lex/0.2.4/download"],
+        strip_prefix = "clap_lex-0.2.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.clap_lex-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__either-1.7.0",
+        sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/either/1.7.0/download"],
+        strip_prefix = "either-1.7.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.either-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__env_logger-0.9.0",
+        sha256 = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/env_logger/0.9.0/download"],
+        strip_prefix = "env_logger-0.9.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.env_logger-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__hashbrown-0.12.3",
+        sha256 = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hashbrown/0.12.3/download"],
+        strip_prefix = "hashbrown-0.12.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.hashbrown-0.12.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__heck-0.4.0",
+        sha256 = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/heck/0.4.0/download"],
+        strip_prefix = "heck-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.heck-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__humantime-2.1.0",
+        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/humantime/2.1.0/download"],
+        strip_prefix = "humantime-2.1.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.humantime-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__indexmap-1.9.1",
+        sha256 = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/indexmap/1.9.1/download"],
+        strip_prefix = "indexmap-1.9.1",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.indexmap-1.9.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__itertools-0.10.3",
+        sha256 = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itertools/0.10.3/download"],
+        strip_prefix = "itertools-0.10.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.itertools-0.10.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__itoa-1.0.2",
+        sha256 = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itoa/1.0.2/download"],
+        strip_prefix = "itoa-1.0.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.itoa-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.once_cell-1.13.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__os_str_bytes-6.2.0",
+        sha256 = "648001efe5d5c0102d8cea768e348da85d90af8ba91f0bea908f157951493cd4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/os_str_bytes/6.2.0/download"],
+        strip_prefix = "os_str_bytes-6.2.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.os_str_bytes-6.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro-error-1.0.4",
+        sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download"],
+        strip_prefix = "proc-macro-error-1.0.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro-error-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro-error-attr-1.0.4",
+        sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download"],
+        strip_prefix = "proc-macro-error-attr-1.0.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro-error-attr-1.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.proc-macro2-1.0.40.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.quote-1.0.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.regex-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__ryu-1.0.10",
+        sha256 = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ryu/1.0.10/download"],
+        strip_prefix = "ryu-1.0.10",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.ryu-1.0.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde-1.0.139",
+        sha256 = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.139/download"],
+        strip_prefix = "serde-1.0.139",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde_derive-1.0.139",
+        sha256 = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.139/download"],
+        strip_prefix = "serde_derive-1.0.139",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde_derive-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__serde_json-1.0.82",
+        sha256 = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.82/download"],
+        strip_prefix = "serde_json-1.0.82",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.serde_json-1.0.82.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.syn-1.0.98.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__termcolor-1.1.3",
+        sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
+        strip_prefix = "termcolor-1.1.3",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.termcolor-1.1.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__textwrap-0.15.0",
+        sha256 = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/textwrap/0.15.0/download"],
+        strip_prefix = "textwrap-0.15.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.textwrap-0.15.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__unicode-ident-1.0.2",
+        sha256 = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.2/download"],
+        strip_prefix = "unicode-ident-1.0.2",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.unicode-ident-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__version_check-0.9.4",
+        sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
+        strip_prefix = "version_check-0.9.4",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.version_check-0.9.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-util-0.1.5",
+        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        strip_prefix = "winapi-util-0.1.5",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_rust_analyzer__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//tools/rust_analyzer/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
diff --git a/third_party/rules_rust/tools/rust_analyzer/BUILD.bazel b/third_party/rules_rust/tools/rust_analyzer/BUILD.bazel
index d73ea63..54f5436 100644
--- a/third_party/rules_rust/tools/rust_analyzer/BUILD.bazel
+++ b/third_party/rules_rust/tools/rust_analyzer/BUILD.bazel
@@ -1,3 +1,4 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
 load("//rust:defs.bzl", "rust_binary", "rust_clippy", "rust_library", "rust_test")
 load("//tools:tool_utils.bzl", "aspect_repository")
 
@@ -11,10 +12,10 @@
     visibility = ["//visibility:public"],
     deps = [
         ":gen_rust_project_lib",
-        "//tools/rust_analyzer/raze:anyhow",
-        "//tools/rust_analyzer/raze:env_logger",
-        "//tools/rust_analyzer/raze:log",
-        "//tools/rust_analyzer/raze:structopt",
+        "//tools/rust_analyzer/3rdparty/crates:anyhow",
+        "//tools/rust_analyzer/3rdparty/crates:clap",
+        "//tools/rust_analyzer/3rdparty/crates:env_logger",
+        "//tools/rust_analyzer/3rdparty/crates:log",
         "//util/label",
     ],
 )
@@ -31,10 +32,10 @@
     edition = "2018",
     deps = [
         "//tools/runfiles",
-        "//tools/rust_analyzer/raze:anyhow",
-        "//tools/rust_analyzer/raze:log",
-        "//tools/rust_analyzer/raze:serde",
-        "//tools/rust_analyzer/raze:serde_json",
+        "//tools/rust_analyzer/3rdparty/crates:anyhow",
+        "//tools/rust_analyzer/3rdparty/crates:log",
+        "//tools/rust_analyzer/3rdparty/crates:serde",
+        "//tools/rust_analyzer/3rdparty/crates:serde_json",
     ],
 )
 
@@ -42,7 +43,7 @@
     name = "gen_rust_project_lib_test",
     crate = ":gen_rust_project_lib",
     deps = [
-        "//tools/rust_analyzer/raze:itertools",
+        "//tools/rust_analyzer/3rdparty/crates:itertools",
     ],
 )
 
@@ -54,3 +55,10 @@
         ":gen_rust_project",
     ],
 )
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]),
+    visibility = ["//visibility:public"],
+    deps = ["//tools/rust_analyzer/3rdparty:bzl_lib"],
+)
diff --git a/third_party/rules_rust/tools/rust_analyzer/aquery.rs b/third_party/rules_rust/tools/rust_analyzer/aquery.rs
index 12164ab..7a04599 100644
--- a/third_party/rules_rust/tools/rust_analyzer/aquery.rs
+++ b/third_party/rules_rust/tools/rust_analyzer/aquery.rs
@@ -164,11 +164,14 @@
 /// a rust_test depends on a rust_library, for example.
 fn consolidate_crate_specs(crate_specs: Vec<CrateSpec>) -> anyhow::Result<BTreeSet<CrateSpec>> {
     let mut consolidated_specs: BTreeMap<String, CrateSpec> = BTreeMap::new();
-    for spec in crate_specs.into_iter() {
+    for mut spec in crate_specs.into_iter() {
         log::debug!("{:?}", spec);
         if let Some(existing) = consolidated_specs.get_mut(&spec.crate_id) {
             existing.deps.extend(spec.deps);
 
+            spec.cfg.retain(|cfg| !existing.cfg.contains(cfg));
+            existing.cfg.extend(spec.cfg);
+
             // display_name should match the library's crate name because Rust Analyzer
             // seems to use display_name for matching crate entries in rust-project.json
             // against symbols in source files. For more details, see
diff --git a/third_party/rules_rust/tools/rust_analyzer/deps.bzl b/third_party/rules_rust/tools/rust_analyzer/deps.bzl
index 0d2b4a5..c957340 100644
--- a/third_party/rules_rust/tools/rust_analyzer/deps.bzl
+++ b/third_party/rules_rust/tools/rust_analyzer/deps.bzl
@@ -2,10 +2,12 @@
 The dependencies for running the gen_rust_project binary.
 """
 
-load("//tools/rust_analyzer/raze:crates.bzl", "rules_rust_tools_rust_analyzer_fetch_remote_crates")
+load("//tools/rust_analyzer/3rdparty/crates:defs.bzl", "crate_repositories")
 
-def rust_analyzer_deps():
-    rules_rust_tools_rust_analyzer_fetch_remote_crates()
+def rust_analyzer_dependencies():
+    """Define dependencies of the `rust_analyzer` Bazel tools"""
+    crate_repositories()
 
 # For legacy support
-gen_rust_project_dependencies = rust_analyzer_deps
+gen_rust_project_dependencies = rust_analyzer_dependencies
+rust_analyzer_deps = rust_analyzer_dependencies
diff --git a/third_party/rules_rust/tools/rust_analyzer/lib.rs b/third_party/rules_rust/tools/rust_analyzer/lib.rs
index 68db7e0..61f9688 100644
--- a/third_party/rules_rust/tools/rust_analyzer/lib.rs
+++ b/third_party/rules_rust/tools/rust_analyzer/lib.rs
@@ -45,6 +45,7 @@
     rules_rust_name: &impl AsRef<str>,
     targets: &[String],
     execution_root: impl AsRef<Path>,
+    output_base: impl AsRef<Path>,
     rust_project_path: impl AsRef<Path>,
 ) -> anyhow::Result<()> {
     let crate_specs = aquery::get_crate_specs(
@@ -72,6 +73,7 @@
     rust_project::write_rust_project(
         rust_project_path.as_ref(),
         execution_root.as_ref(),
+        output_base.as_ref(),
         &rust_project,
     )?;
 
diff --git a/third_party/rules_rust/tools/rust_analyzer/main.rs b/third_party/rules_rust/tools/rust_analyzer/main.rs
index 2bad0e9..6f13d91 100644
--- a/third_party/rules_rust/tools/rust_analyzer/main.rs
+++ b/third_party/rules_rust/tools/rust_analyzer/main.rs
@@ -4,9 +4,9 @@
 use std::process::Command;
 
 use anyhow::anyhow;
+use clap::Parser;
 use gen_rust_project_lib::generate_crate_info;
 use gen_rust_project_lib::write_rust_project;
-use structopt::StructOpt;
 
 // TODO(david): This shells out to an expected rule in the workspace root //:rust_analyzer that the user must define.
 // It would be more convenient if it could automatically discover all the rust code in the workspace if this target
@@ -26,6 +26,11 @@
         .as_ref()
         .expect("failed to find execution root, is --execution-root set correctly?");
 
+    let output_base = config
+        .output_base
+        .as_ref()
+        .expect("failed to find output base, is -output-base set correctly?");
+
     let rules_rust_name = env!("ASPECT_REPOSITORY");
 
     // Generate the crate specs.
@@ -43,6 +48,7 @@
         &rules_rust_name,
         &config.targets,
         &execution_root,
+        &output_base,
         &workspace_root.join("rust-project.json"),
     )?;
 
@@ -51,15 +57,7 @@
 
 // Parse the configuration flags and supplement with bazel info as needed.
 fn parse_config() -> anyhow::Result<Config> {
-    let mut config = Config::from_args();
-
-    // Ensure we know the workspace. If we are under `bazel run`, the
-    // BUILD_WORKSPACE_DIR environment variable will be present.
-    if config.workspace.is_none() {
-        if let Some(ws_dir) = env::var_os("BUILD_WORKSPACE_DIRECTORY") {
-            config.workspace = Some(PathBuf::from(ws_dir));
-        }
-    }
+    let mut config = Config::parse();
 
     if config.workspace.is_some() && config.execution_root.is_some() {
         return Ok(config);
@@ -97,24 +95,32 @@
     if config.execution_root.is_none() {
         config.execution_root = bazel_info.get("execution_root").map(Into::into);
     }
+    if config.output_base.is_none() {
+        config.output_base = bazel_info.get("output_base").map(Into::into);
+    }
 
     Ok(config)
 }
 
-#[derive(Debug, StructOpt)]
+#[derive(Debug, Parser)]
 struct Config {
-    // If not specified, uses the result of `bazel info workspace`.
-    #[structopt(long)]
+    /// The path to the Bazel workspace directory. If not specified, uses the result of `bazel info workspace`.
+    #[clap(long, env = "BUILD_WORKSPACE_DIRECTORY")]
     workspace: Option<PathBuf>,
 
-    // If not specified, uses the result of `bazel info execution_root`.
-    #[structopt(long)]
+    /// The path to the Bazel execution root. If not specified, uses the result of `bazel info execution_root`.
+    #[clap(long)]
     execution_root: Option<PathBuf>,
 
-    #[structopt(long, default_value = "bazel")]
+    /// The path to the Bazel output user root. If not specified, uses the result of `bazel info output_base`.
+    #[clap(long, env = "OUTPUT_BASE")]
+    output_base: Option<PathBuf>,
+
+    /// The path to a Bazel binary
+    #[clap(long, default_value = "bazel")]
     bazel: PathBuf,
 
-    // Space separated list of target patterns that comes after all other args.
-    #[structopt(default_value = "@//...")]
+    /// Space separated list of target patterns that comes after all other args.
+    #[clap(default_value = "@//...")]
     targets: Vec<String>,
 }
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/BUILD.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/BUILD.bazel
deleted file mode 100644
index a494da4..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/BUILD.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "anyhow",
-    actual = "@rules_rust_tools_rust_analyzer__anyhow__1_0_45//:anyhow",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "env_logger",
-    actual = "@rules_rust_tools_rust_analyzer__env_logger__0_9_0//:env_logger",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "itertools",
-    actual = "@rules_rust_tools_rust_analyzer__itertools__0_10_1//:itertools",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "log",
-    actual = "@rules_rust_tools_rust_analyzer__log__0_4_14//:log",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde",
-    actual = "@rules_rust_tools_rust_analyzer__serde__1_0_130//:serde",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde_json",
-    actual = "@rules_rust_tools_rust_analyzer__serde_json__1_0_69//:serde_json",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "structopt",
-    actual = "@rules_rust_tools_rust_analyzer__structopt__0_3_25//:structopt",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.raze.lock b/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.raze.lock
deleted file mode 100644
index d78e906..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.raze.lock
+++ /dev/null
@@ -1,377 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "clap"
-version = "2.33.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "compile_with_bazel"
-version = "0.0.0"
-dependencies = [
- "anyhow",
- "env_logger",
- "itertools",
- "log",
- "serde",
- "serde_json",
- "structopt",
-]
-
-[[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
-name = "env_logger"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "itertools"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "memchr"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-
-[[package]]
-name = "proc-macro-error"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-dependencies = [
- "proc-macro-error-attr",
- "proc-macro2",
- "quote",
- "syn",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro-error-attr"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-dependencies = [
- "proc-macro2",
- "quote",
- "version_check",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "regex"
-version = "1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "ryu"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-
-[[package]]
-name = "serde"
-version = "1.0.130"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.130"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "structopt"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c"
-dependencies = [
- "clap",
- "lazy_static",
- "structopt-derive",
-]
-
-[[package]]
-name = "structopt-derive"
-version = "0.4.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0"
-dependencies = [
- "heck",
- "proc-macro-error",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "syn"
-version = "1.0.81"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "version_check"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.toml b/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.toml
deleted file mode 100644
index 4a9b0ee..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/Cargo.toml
+++ /dev/null
@@ -1,26 +0,0 @@
-[package]
-name = "compile_with_bazel"
-version = "0.0.0"
-edition="2018"
-
-[lib]
-path = "fake_lib.rs"
-
-[dependencies]
-anyhow = "1.0"
-log = "0.4"
-env_logger = "0.9"
-serde = { version = "1.0", features = ["derive"] } 
-serde_json = "1.0"
-structopt = "0.3"
-
-[dev-dependencies]
-itertools = "0.10"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//tools/rust_analyzer/raze"
-gen_workspace_prefix = "rules_rust_tools_rust_analyzer"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = true
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/crates.bzl b/third_party/rules_rust/tools/rust_analyzer/raze/crates.bzl
deleted file mode 100644
index 336972e..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/crates.bzl
+++ /dev/null
@@ -1,442 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_tools_rust_analyzer_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__aho_corasick__0_7_18",
-        url = "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-        type = "tar.gz",
-        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
-        strip_prefix = "aho-corasick-0.7.18",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.aho-corasick-0.7.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__ansi_term__0_11_0",
-        url = "https://crates.io/api/v1/crates/ansi_term/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b",
-        strip_prefix = "ansi_term-0.11.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.ansi_term-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__anyhow__1_0_45",
-        url = "https://crates.io/api/v1/crates/anyhow/1.0.45/download",
-        type = "tar.gz",
-        sha256 = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7",
-        strip_prefix = "anyhow-1.0.45",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.anyhow-1.0.45.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__atty__0_2_14",
-        url = "https://crates.io/api/v1/crates/atty/0.2.14/download",
-        type = "tar.gz",
-        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
-        strip_prefix = "atty-0.2.14",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.atty-0.2.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__bitflags__1_3_2",
-        url = "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-        type = "tar.gz",
-        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
-        strip_prefix = "bitflags-1.3.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.bitflags-1.3.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__clap__2_33_3",
-        url = "https://crates.io/api/v1/crates/clap/2.33.3/download",
-        type = "tar.gz",
-        sha256 = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002",
-        strip_prefix = "clap-2.33.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.clap-2.33.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__either__1_6_1",
-        url = "https://crates.io/api/v1/crates/either/1.6.1/download",
-        type = "tar.gz",
-        sha256 = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457",
-        strip_prefix = "either-1.6.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.either-1.6.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__env_logger__0_9_0",
-        url = "https://crates.io/api/v1/crates/env_logger/0.9.0/download",
-        type = "tar.gz",
-        sha256 = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3",
-        strip_prefix = "env_logger-0.9.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.env_logger-0.9.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__heck__0_3_3",
-        url = "https://crates.io/api/v1/crates/heck/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c",
-        strip_prefix = "heck-0.3.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.heck-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__hermit_abi__0_1_19",
-        url = "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
-        strip_prefix = "hermit-abi-0.1.19",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.hermit-abi-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__humantime__2_1_0",
-        url = "https://crates.io/api/v1/crates/humantime/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
-        strip_prefix = "humantime-2.1.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.humantime-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__itertools__0_10_1",
-        url = "https://crates.io/api/v1/crates/itertools/0.10.1/download",
-        type = "tar.gz",
-        sha256 = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf",
-        strip_prefix = "itertools-0.10.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.itertools-0.10.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__itoa__0_4_8",
-        url = "https://crates.io/api/v1/crates/itoa/0.4.8/download",
-        type = "tar.gz",
-        sha256 = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4",
-        strip_prefix = "itoa-0.4.8",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.itoa-0.4.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__libc__0_2_107",
-        url = "https://crates.io/api/v1/crates/libc/0.2.107/download",
-        type = "tar.gz",
-        sha256 = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219",
-        strip_prefix = "libc-0.2.107",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.libc-0.2.107.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__memchr__2_4_1",
-        url = "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-        type = "tar.gz",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.memchr-2.4.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro_error__1_0_4",
-        url = "https://crates.io/api/v1/crates/proc-macro-error/1.0.4/download",
-        type = "tar.gz",
-        sha256 = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c",
-        strip_prefix = "proc-macro-error-1.0.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro-error-1.0.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro_error_attr__1_0_4",
-        url = "https://crates.io/api/v1/crates/proc-macro-error-attr/1.0.4/download",
-        type = "tar.gz",
-        sha256 = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869",
-        strip_prefix = "proc-macro-error-attr-1.0.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro-error-attr-1.0.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__proc_macro2__1_0_32",
-        url = "https://crates.io/api/v1/crates/proc-macro2/1.0.32/download",
-        type = "tar.gz",
-        sha256 = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43",
-        strip_prefix = "proc-macro2-1.0.32",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.proc-macro2-1.0.32.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__quote__1_0_10",
-        url = "https://crates.io/api/v1/crates/quote/1.0.10/download",
-        type = "tar.gz",
-        sha256 = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05",
-        strip_prefix = "quote-1.0.10",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.quote-1.0.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__regex__1_5_4",
-        url = "https://crates.io/api/v1/crates/regex/1.5.4/download",
-        type = "tar.gz",
-        sha256 = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461",
-        strip_prefix = "regex-1.5.4",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.regex-1.5.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__regex_syntax__0_6_25",
-        url = "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-        type = "tar.gz",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.regex-syntax-0.6.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__ryu__1_0_5",
-        url = "https://crates.io/api/v1/crates/ryu/1.0.5/download",
-        type = "tar.gz",
-        sha256 = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e",
-        strip_prefix = "ryu-1.0.5",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.ryu-1.0.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913",
-        strip_prefix = "serde-1.0.130",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde_derive__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde_derive/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b",
-        strip_prefix = "serde_derive-1.0.130",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde_derive-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__serde_json__1_0_69",
-        url = "https://crates.io/api/v1/crates/serde_json/1.0.69/download",
-        type = "tar.gz",
-        sha256 = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8",
-        strip_prefix = "serde_json-1.0.69",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.serde_json-1.0.69.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__strsim__0_8_0",
-        url = "https://crates.io/api/v1/crates/strsim/0.8.0/download",
-        type = "tar.gz",
-        sha256 = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a",
-        strip_prefix = "strsim-0.8.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.strsim-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__structopt__0_3_25",
-        url = "https://crates.io/api/v1/crates/structopt/0.3.25/download",
-        type = "tar.gz",
-        sha256 = "40b9788f4202aa75c240ecc9c15c65185e6a39ccdeb0fd5d008b98825464c87c",
-        strip_prefix = "structopt-0.3.25",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.structopt-0.3.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__structopt_derive__0_4_18",
-        url = "https://crates.io/api/v1/crates/structopt-derive/0.4.18/download",
-        type = "tar.gz",
-        sha256 = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0",
-        strip_prefix = "structopt-derive-0.4.18",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.structopt-derive-0.4.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__syn__1_0_81",
-        url = "https://crates.io/api/v1/crates/syn/1.0.81/download",
-        type = "tar.gz",
-        sha256 = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966",
-        strip_prefix = "syn-1.0.81",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.syn-1.0.81.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__termcolor__1_1_2",
-        url = "https://crates.io/api/v1/crates/termcolor/1.1.2/download",
-        type = "tar.gz",
-        sha256 = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4",
-        strip_prefix = "termcolor-1.1.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.termcolor-1.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__textwrap__0_11_0",
-        url = "https://crates.io/api/v1/crates/textwrap/0.11.0/download",
-        type = "tar.gz",
-        sha256 = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060",
-        strip_prefix = "textwrap-0.11.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.textwrap-0.11.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_segmentation__1_8_0",
-        url = "https://crates.io/api/v1/crates/unicode-segmentation/1.8.0/download",
-        type = "tar.gz",
-        sha256 = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b",
-        strip_prefix = "unicode-segmentation-1.8.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-segmentation-1.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_width__0_1_9",
-        url = "https://crates.io/api/v1/crates/unicode-width/0.1.9/download",
-        type = "tar.gz",
-        sha256 = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973",
-        strip_prefix = "unicode-width-0.1.9",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-width-0.1.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__unicode_xid__0_2_2",
-        url = "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__vec_map__0_8_2",
-        url = "https://crates.io/api/v1/crates/vec_map/0.8.2/download",
-        type = "tar.gz",
-        sha256 = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191",
-        strip_prefix = "vec_map-0.8.2",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.vec_map-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__version_check__0_9_3",
-        url = "https://crates.io/api/v1/crates/version_check/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe",
-        strip_prefix = "version_check-0.9.3",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.version_check-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi__0_3_9",
-        url = "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-        type = "tar.gz",
-        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
-        strip_prefix = "winapi-0.3.9",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-0.3.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_i686_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
-        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_util__0_1_5",
-        url = "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-        type = "tar.gz",
-        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
-        strip_prefix = "winapi-util-0.1.5",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-util-0.1.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_tools_rust_analyzer__winapi_x86_64_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
-        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
-        build_file = Label("//tools/rust_analyzer/raze/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
-    )
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel
deleted file mode 100644
index d0d1788..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.aho-corasick-0.7.18.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "aho_corasick",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__memchr__2_4_1//:memchr",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel
deleted file mode 100644
index e742b36..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ansi_term-0.11.0.bazel
+++ /dev/null
@@ -1,66 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "colours" with type "example" omitted
-
-rust_library(
-    name = "ansi_term",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(target_os = "windows")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel
deleted file mode 100644
index 737d7df..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.anyhow-1.0.45.bazel
+++ /dev/null
@@ -1,113 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "anyhow_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "anyhow",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    # buildifier: leave-alone
-    deps = [
-        ":anyhow_build_script",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test_autotrait" with type "test" omitted
-
-# Unsupported target "test_backtrace" with type "test" omitted
-
-# Unsupported target "test_boxed" with type "test" omitted
-
-# Unsupported target "test_chain" with type "test" omitted
-
-# Unsupported target "test_context" with type "test" omitted
-
-# Unsupported target "test_convert" with type "test" omitted
-
-# Unsupported target "test_downcast" with type "test" omitted
-
-# Unsupported target "test_ffi" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
-
-# Unsupported target "test_macros" with type "test" omitted
-
-# Unsupported target "test_repr" with type "test" omitted
-
-# Unsupported target "test_source" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel
deleted file mode 100644
index c8b5efa..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.atty-0.2.14.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "atty" with type "example" omitted
-
-rust_library(
-    name = "atty",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_tools_rust_analyzer__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel
deleted file mode 100644
index 417aee7..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.bitflags-1.3.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "basic" with type "test" omitted
-
-# Unsupported target "compile" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index 84595a6..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel
deleted file mode 100644
index 0ecdf7a..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.clap-2.33.3.bazel
+++ /dev/null
@@ -1,93 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "clap",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "ansi_term",
-        "atty",
-        "color",
-        "default",
-        "strsim",
-        "suggestions",
-        "vec_map",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.33.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__atty__0_2_14//:atty",
-        "@rules_rust_tools_rust_analyzer__bitflags__1_3_2//:bitflags",
-        "@rules_rust_tools_rust_analyzer__strsim__0_8_0//:strsim",
-        "@rules_rust_tools_rust_analyzer__textwrap__0_11_0//:textwrap",
-        "@rules_rust_tools_rust_analyzer__unicode_width__0_1_9//:unicode_width",
-        "@rules_rust_tools_rust_analyzer__vec_map__0_8_2//:vec_map",
-    ] + selects.with_or({
-        # cfg(not(windows))
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-unknown-unknown",
-            "@rules_rust//rust/platform:wasm32-wasi",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_tools_rust_analyzer__ansi_term__0_11_0//:ansi_term",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel
deleted file mode 100644
index 0af0135..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.either-1.6.1.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "either",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.6.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel
deleted file mode 100644
index 4d35482..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.env_logger-0.9.0.bazel
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "env_logger",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "atty",
-        "default",
-        "humantime",
-        "regex",
-        "termcolor",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__atty__0_2_14//:atty",
-        "@rules_rust_tools_rust_analyzer__humantime__2_1_0//:humantime",
-        "@rules_rust_tools_rust_analyzer__log__0_4_14//:log",
-        "@rules_rust_tools_rust_analyzer__regex__1_5_4//:regex",
-        "@rules_rust_tools_rust_analyzer__termcolor__1_1_2//:termcolor",
-    ],
-)
-
-# Unsupported target "init-twice-retains-filter" with type "test" omitted
-
-# Unsupported target "log-in-log" with type "test" omitted
-
-# Unsupported target "log_tls_dtors" with type "test" omitted
-
-# Unsupported target "regexp_filter" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel
deleted file mode 100644
index 7aac083..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.heck-0.3.3.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "heck",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__unicode_segmentation__1_8_0//:unicode_segmentation",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel
deleted file mode 100644
index 99cba1b..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.hermit-abi-0.1.19.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "hermit_abi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__libc__0_2_107//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel
deleted file mode 100644
index 9905a0d..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.humantime-2.1.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "datetime_format" with type "bench" omitted
-
-# Unsupported target "datetime_parse" with type "bench" omitted
-
-rust_library(
-    name = "humantime",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel
deleted file mode 100644
index 20935bf..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itertools-0.10.1.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench1" with type "bench" omitted
-
-# Unsupported target "combinations" with type "bench" omitted
-
-# Unsupported target "combinations_with_replacement" with type "bench" omitted
-
-# Unsupported target "fold_specialization" with type "bench" omitted
-
-# Unsupported target "powerset" with type "bench" omitted
-
-# Unsupported target "tree_fold1" with type "bench" omitted
-
-# Unsupported target "tuple_combinations" with type "bench" omitted
-
-# Unsupported target "tuples" with type "bench" omitted
-
-# Unsupported target "iris" with type "example" omitted
-
-rust_library(
-    name = "itertools",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_alloc",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__either__1_6_1//:either",
-    ],
-)
-
-# Unsupported target "adaptors_no_collect" with type "test" omitted
-
-# Unsupported target "flatten_ok" with type "test" omitted
-
-# Unsupported target "fold_specialization" with type "test" omitted
-
-# Unsupported target "macros_hygiene" with type "test" omitted
-
-# Unsupported target "merge_join" with type "test" omitted
-
-# Unsupported target "peeking_take_while" with type "test" omitted
-
-# Unsupported target "quick" with type "test" omitted
-
-# Unsupported target "specializations" with type "test" omitted
-
-# Unsupported target "test_core" with type "test" omitted
-
-# Unsupported target "test_std" with type "test" omitted
-
-# Unsupported target "tuples" with type "test" omitted
-
-# Unsupported target "zip" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel
deleted file mode 100644
index 27868c7..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.itoa-0.4.8.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "itoa",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index ba88ed7..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel
deleted file mode 100644
index bfb4b82..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.libc-0.2.107.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libc_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    # buildifier: leave-alone
-    deps = [
-        ":libc_build_script",
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index 79cad4d..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,92 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "log_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "value" with type "bench" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        ":log_build_script",
-        "@rules_rust_tools_rust_analyzer__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index 2016ce4..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "memchr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "memchr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    # buildifier: leave-alone
-    deps = [
-        ":memchr_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel
deleted file mode 100644
index c6c622c..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-1.0.4.bazel
+++ /dev/null
@@ -1,102 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro_error_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "syn",
-        "syn-error",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_tools_rust_analyzer__version_check__0_9_3//:version_check",
-    ],
-)
-
-rust_library(
-    name = "proc_macro_error",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "syn",
-        "syn-error",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__proc_macro_error_attr__1_0_4//:proc_macro_error_attr",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro_error_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
-
-# Unsupported target "macro-errors" with type "test" omitted
-
-# Unsupported target "ok" with type "test" omitted
-
-# Unsupported target "runtime-errors" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel
deleted file mode 100644
index ba807a8..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro-error-attr-1.0.4.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro_error_attr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_tools_rust_analyzer__version_check__0_9_3//:version_check",
-    ],
-)
-
-rust_proc_macro(
-    name = "proc_macro_error_attr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro_error_attr_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel
deleted file mode 100644
index 9252841..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.proc-macro2-1.0.32.bazel
+++ /dev/null
@@ -1,98 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro2_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro2_build_script",
-        "@rules_rust_tools_rust_analyzer__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "features" with type "test" omitted
-
-# Unsupported target "marker" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel
deleted file mode 100644
index 77f5236..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.quote-1.0.10.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "quote",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel
deleted file mode 100644
index 8ba41a8..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-1.5.4.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "shootout-regex-dna" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-bytes" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-cheat" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-replace" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single-cheat" with type "example" omitted
-
-rust_library(
-    name = "regex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "aho-corasick",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__aho_corasick__0_7_18//:aho_corasick",
-        "@rules_rust_tools_rust_analyzer__memchr__2_4_1//:memchr",
-        "@rules_rust_tools_rust_analyzer__regex_syntax__0_6_25//:regex_syntax",
-    ],
-)
-
-# Unsupported target "backtrack" with type "test" omitted
-
-# Unsupported target "backtrack-bytes" with type "test" omitted
-
-# Unsupported target "backtrack-utf8bytes" with type "test" omitted
-
-# Unsupported target "crates-regex" with type "test" omitted
-
-# Unsupported target "default" with type "test" omitted
-
-# Unsupported target "default-bytes" with type "test" omitted
-
-# Unsupported target "nfa" with type "test" omitted
-
-# Unsupported target "nfa-bytes" with type "test" omitted
-
-# Unsupported target "nfa-utf8bytes" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index d4e0b56..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.25",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel
deleted file mode 100644
index d4df380..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.ryu-1.0.5.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR BSL-1.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "ryu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "bench" with type "bench" omitted
-
-# Unsupported target "upstream_benchmark" with type "example" omitted
-
-rust_library(
-    name = "ryu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    # buildifier: leave-alone
-    deps = [
-        ":ryu_build_script",
-    ],
-)
-
-# Unsupported target "common_test" with type "test" omitted
-
-# Unsupported target "d2s_table_test" with type "test" omitted
-
-# Unsupported target "d2s_test" with type "test" omitted
-
-# Unsupported target "exhaustive" with type "test" omitted
-
-# Unsupported target "f2s_test" with type "test" omitted
-
-# Unsupported target "s2d_test" with type "test" omitted
-
-# Unsupported target "s2f_test" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel
deleted file mode 100644
index 7b5cb8c..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde-1.0.130.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel
deleted file mode 100644
index 2d84e1d..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_derive-1.0.130.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_derive_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_proc_macro(
-    name = "serde_derive",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_derive_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel
deleted file mode 100644
index 2f4105f..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.serde_json-1.0.69.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_json_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_json_build_script",
-        "@rules_rust_tools_rust_analyzer__itoa__0_4_8//:itoa",
-        "@rules_rust_tools_rust_analyzer__ryu__1_0_5//:ryu",
-        "@rules_rust_tools_rust_analyzer__serde__1_0_130//:serde",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel
deleted file mode 100644
index a4df21a..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.strsim-0.8.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-rust_library(
-    name = "strsim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "lib" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel
deleted file mode 100644
index 24b86f7..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-0.3.25.bazel
+++ /dev/null
@@ -1,155 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "after_help" with type "example" omitted
-
-# Unsupported target "at_least_two" with type "example" omitted
-
-# Unsupported target "basic" with type "example" omitted
-
-# Unsupported target "deny_missing_docs" with type "example" omitted
-
-# Unsupported target "doc_comments" with type "example" omitted
-
-# Unsupported target "enum_in_args" with type "example" omitted
-
-# Unsupported target "enum_in_args_with_strum" with type "example" omitted
-
-# Unsupported target "enum_tuple" with type "example" omitted
-
-# Unsupported target "env" with type "example" omitted
-
-# Unsupported target "example" with type "example" omitted
-
-# Unsupported target "flatten" with type "example" omitted
-
-# Unsupported target "gen_completions" with type "example" omitted
-
-# Unsupported target "git" with type "example" omitted
-
-# Unsupported target "group" with type "example" omitted
-
-# Unsupported target "keyvalue" with type "example" omitted
-
-# Unsupported target "negative_flag" with type "example" omitted
-
-# Unsupported target "no_version" with type "example" omitted
-
-# Unsupported target "rename_all" with type "example" omitted
-
-# Unsupported target "required_if" with type "example" omitted
-
-# Unsupported target "skip" with type "example" omitted
-
-# Unsupported target "subcommand_aliases" with type "example" omitted
-
-# Unsupported target "true_or_false" with type "example" omitted
-
-rust_library(
-    name = "structopt",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_tools_rust_analyzer__structopt_derive__0_4_18//:structopt_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.25",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__clap__2_33_3//:clap",
-        "@rules_rust_tools_rust_analyzer__lazy_static__1_4_0//:lazy_static",
-    ],
-)
-
-# Unsupported target "argument_naming" with type "test" omitted
-
-# Unsupported target "arguments" with type "test" omitted
-
-# Unsupported target "author_version_about" with type "test" omitted
-
-# Unsupported target "custom-string-parsers" with type "test" omitted
-
-# Unsupported target "default_value" with type "test" omitted
-
-# Unsupported target "deny-warnings" with type "test" omitted
-
-# Unsupported target "doc-comments-help" with type "test" omitted
-
-# Unsupported target "explicit_name_no_renaming" with type "test" omitted
-
-# Unsupported target "flags" with type "test" omitted
-
-# Unsupported target "flatten" with type "test" omitted
-
-# Unsupported target "generics" with type "test" omitted
-
-# Unsupported target "issues" with type "test" omitted
-
-# Unsupported target "macro-errors" with type "test" omitted
-
-# Unsupported target "nested-subcommands" with type "test" omitted
-
-# Unsupported target "non_literal_attributes" with type "test" omitted
-
-# Unsupported target "options" with type "test" omitted
-
-# Unsupported target "privacy" with type "test" omitted
-
-# Unsupported target "raw_bool_literal" with type "test" omitted
-
-# Unsupported target "raw_idents" with type "test" omitted
-
-# Unsupported target "regressions" with type "test" omitted
-
-# Unsupported target "rename_all_env" with type "test" omitted
-
-# Unsupported target "skip" with type "test" omitted
-
-# Unsupported target "special_types" with type "test" omitted
-
-# Unsupported target "subcommands" with type "test" omitted
-
-# Unsupported target "utils" with type "test" omitted
-
-# Unsupported target "we_need_syn_full" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel
deleted file mode 100644
index 8c8dfd8..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.structopt-derive-0.4.18.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_proc_macro(
-    name = "structopt_derive",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__heck__0_3_3//:heck",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__proc_macro_error__1_0_4//:proc_macro_error",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__syn__1_0_81//:syn",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel
deleted file mode 100644
index efd5cfe..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.syn-1.0.81.bazel
+++ /dev/null
@@ -1,158 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "syn_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "file" with type "bench" omitted
-
-# Unsupported target "rust" with type "bench" omitted
-
-rust_library(
-    name = "syn",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    # buildifier: leave-alone
-    deps = [
-        ":syn_build_script",
-        "@rules_rust_tools_rust_analyzer__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_tools_rust_analyzer__quote__1_0_10//:quote",
-        "@rules_rust_tools_rust_analyzer__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "test_asyncness" with type "test" omitted
-
-# Unsupported target "test_attribute" with type "test" omitted
-
-# Unsupported target "test_derive_input" with type "test" omitted
-
-# Unsupported target "test_expr" with type "test" omitted
-
-# Unsupported target "test_generics" with type "test" omitted
-
-# Unsupported target "test_grouping" with type "test" omitted
-
-# Unsupported target "test_ident" with type "test" omitted
-
-# Unsupported target "test_item" with type "test" omitted
-
-# Unsupported target "test_iterators" with type "test" omitted
-
-# Unsupported target "test_lit" with type "test" omitted
-
-# Unsupported target "test_meta" with type "test" omitted
-
-# Unsupported target "test_parse_buffer" with type "test" omitted
-
-# Unsupported target "test_parse_stream" with type "test" omitted
-
-# Unsupported target "test_pat" with type "test" omitted
-
-# Unsupported target "test_path" with type "test" omitted
-
-# Unsupported target "test_precedence" with type "test" omitted
-
-# Unsupported target "test_receiver" with type "test" omitted
-
-# Unsupported target "test_round_trip" with type "test" omitted
-
-# Unsupported target "test_shebang" with type "test" omitted
-
-# Unsupported target "test_should_parse" with type "test" omitted
-
-# Unsupported target "test_size" with type "test" omitted
-
-# Unsupported target "test_stmt" with type "test" omitted
-
-# Unsupported target "test_token_trees" with type "test" omitted
-
-# Unsupported target "test_ty" with type "test" omitted
-
-# Unsupported target "test_visibility" with type "test" omitted
-
-# Unsupported target "zzz_stable" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel
deleted file mode 100644
index 7605e0c..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.termcolor-1.1.2.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "termcolor",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi_util__0_1_5//:winapi_util",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel
deleted file mode 100644
index 38a4138..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.textwrap-0.11.0.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "linear" with type "bench" omitted
-
-# Unsupported target "layout" with type "example" omitted
-
-# Unsupported target "termwidth" with type "example" omitted
-
-rust_library(
-    name = "textwrap",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.11.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_tools_rust_analyzer__unicode_width__0_1_9//:unicode_width",
-    ],
-)
-
-# Unsupported target "version-numbers" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
deleted file mode 100644
index 126a432..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "graphemes" with type "bench" omitted
-
-# Unsupported target "unicode_words" with type "bench" omitted
-
-# Unsupported target "word_bounds" with type "bench" omitted
-
-rust_library(
-    name = "unicode_segmentation",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel
deleted file mode 100644
index 1b1b356..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-width-0.1.9.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unicode_width",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.9",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 9b7936d..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "xid" with type "bench" omitted
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "exhaustive_tests" with type "test" omitted
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel
deleted file mode 100644
index a9ca9b9..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.vec_map-0.8.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "vec_map",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel
deleted file mode 100644
index 2d24b1f..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.version_check-0.9.3.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "version_check",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel
deleted file mode 100644
index 89fc3a8..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-0.3.9.bazel
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "std",
-        "winbase",
-        "wincon",
-        "winerror",
-        "winnt",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "std",
-        "winbase",
-        "wincon",
-        "winerror",
-        "winnt",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 0920950..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_i686_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_i686_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_i686_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel
deleted file mode 100644
index d72f51f..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-util-0.1.5.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "winapi_util",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.5",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_tools_rust_analyzer__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index b6b2804..0000000
--- a/third_party/rules_rust/tools/rust_analyzer/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//tools/rust_analyzer/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_x86_64_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_x86_64_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_x86_64_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/tools/rust_analyzer/rust_project.rs b/third_party/rules_rust/tools/rust_analyzer/rust_project.rs
index 0cc9378..30bb377 100644
--- a/third_party/rules_rust/tools/rust_analyzer/rust_project.rs
+++ b/third_party/rules_rust/tools/rust_analyzer/rust_project.rs
@@ -177,12 +177,17 @@
 pub fn write_rust_project(
     rust_project_path: &Path,
     execution_root: &Path,
+    output_base: &Path,
     rust_project: &RustProject,
 ) -> anyhow::Result<()> {
     let execution_root = execution_root
         .to_str()
         .ok_or_else(|| anyhow!("execution_root is not valid UTF-8"))?;
 
+    let output_base = output_base
+        .to_str()
+        .ok_or_else(|| anyhow!("output_base is not valid UTF-8"))?;
+
     // Try to remove the existing rust-project.json. It's OK if the file doesn't exist.
     match std::fs::remove_file(rust_project_path) {
         Ok(_) => {}
@@ -197,8 +202,9 @@
 
     // Render the `rust-project.json` file and replace the exec root
     // placeholders with the path to the local exec root.
-    let rust_project_content =
-        serde_json::to_string(rust_project)?.replace("__EXEC_ROOT__", execution_root);
+    let rust_project_content = serde_json::to_string(rust_project)?
+        .replace("__EXEC_ROOT__", execution_root)
+        .replace("__OUTPUT_BASE__", output_base);
 
     // Write the new rust-project.json file.
     std::fs::write(rust_project_path, rust_project_content)?;
diff --git a/third_party/rules_rust/tools/rustdoc/rustdoc_test_writer.rs b/third_party/rules_rust/tools/rustdoc/rustdoc_test_writer.rs
index 6803e8b..0920c74 100644
--- a/third_party/rules_rust/tools/rustdoc/rustdoc_test_writer.rs
+++ b/third_party/rules_rust/tools/rustdoc/rustdoc_test_writer.rs
@@ -6,6 +6,7 @@
 use std::collections::{BTreeMap, BTreeSet};
 use std::env;
 use std::fs;
+use std::io::{BufRead, BufReader};
 use std::path::{Path, PathBuf};
 
 #[derive(Debug)]
@@ -19,6 +20,10 @@
     /// The path where the script should be written.
     output: PathBuf,
 
+    /// If Bazel generated a params file, we may need to strip roots from it.
+    /// This is the path where we will output our stripped params file.
+    optional_output_params_file: PathBuf,
+
     /// The `argv` of the configured rustdoc build action.
     action_argv: Vec<String>,
 }
@@ -50,6 +55,13 @@
         .map(PathBuf::from)
         .expect("Missing `--output` argument");
 
+    let optional_output_params_file = writer_args
+        .iter()
+        .find(|arg| arg.starts_with("--optional_test_params="))
+        .and_then(|arg| arg.splitn(2, '=').last())
+        .map(PathBuf::from)
+        .expect("Missing `--optional_test_params` argument");
+
     let (strip_substring_args, writer_args): (Vec<String>, Vec<String>) = writer_args
         .into_iter()
         .partition(|arg| arg.starts_with("--strip_substring="));
@@ -85,10 +97,73 @@
         env_keys,
         strip_substrings,
         output,
+        optional_output_params_file,
         action_argv,
     }
 }
 
+/// Expand the Bazel Arg file and write it into our manually defined params file
+fn expand_params_file(mut options: Options) -> Options {
+    let params_extension = if cfg!(target_family = "windows") {
+        ".rustdoc_test.bat-0.params"
+    } else {
+        ".rustdoc_test.sh-0.params"
+    };
+
+    // We always need to produce the params file, we might overwrite this later though
+    fs::write(&options.optional_output_params_file, b"unused")
+        .expect("Failed to write params file");
+
+    // extract the path for the params file, if it exists
+    let params_path = match options.action_argv.pop() {
+        // Found the params file!
+        Some(arg) if arg.starts_with('@') && arg.ends_with(params_extension) => {
+            let path_str = arg
+                .strip_prefix('@')
+                .expect("Checked that there is an @ prefix");
+            PathBuf::from(path_str)
+        }
+        // No params file present, exit early
+        Some(arg) => {
+            options.action_argv.push(arg);
+            return options;
+        }
+        None => return options,
+    };
+
+    // read the params file
+    let params_file = fs::File::open(params_path).expect("Failed to read the rustdoc params file");
+    let content: Vec<_> = BufReader::new(params_file)
+        .lines()
+        .map(|line| line.expect("failed to parse param as String"))
+        // Remove any substrings found in the argument
+        .map(|arg| {
+            let mut stripped_arg = arg;
+            options
+                .strip_substrings
+                .iter()
+                .for_each(|substring| stripped_arg = stripped_arg.replace(substring, ""));
+            stripped_arg
+        })
+        .collect();
+
+    // add all arguments
+    fs::write(&options.optional_output_params_file, content.join("\n"))
+        .expect("Failed to write test runner");
+
+    // append the path of our new params file
+    let formatted_params_path = format!(
+        "@{}",
+        options
+            .optional_output_params_file
+            .to_str()
+            .expect("invalid UTF-8")
+    );
+    options.action_argv.push(formatted_params_path);
+
+    options
+}
+
 /// Write a unix compatible test runner
 fn write_test_runner_unix(
     path: &Path,
@@ -195,6 +270,7 @@
 
 fn main() {
     let opt = parse_args();
+    let opt = expand_params_file(opt);
 
     let env: BTreeMap<String, String> = env::vars()
         .into_iter()
diff --git a/third_party/rules_rust/tools/rustfmt/BUILD.bazel b/third_party/rules_rust/tools/rustfmt/BUILD.bazel
index 1456eb1..1721301 100644
--- a/third_party/rules_rust/tools/rustfmt/BUILD.bazel
+++ b/third_party/rules_rust/tools/rustfmt/BUILD.bazel
@@ -11,24 +11,33 @@
 rust_library(
     name = "rustfmt_lib",
     srcs = glob(
-        ["srcs/**/*.rs"],
-        exclude = ["srcs/**/*main.rs"],
+        include = ["src/**/*.rs"],
+        exclude = [
+            "src/**/*main.rs",
+            "src/bin/**",
+        ],
     ),
     data = [
         "//:rustfmt.toml",
-        "//rust/toolchain:current_exec_rustfmt_files",
+        "//rust/toolchain:current_rustfmt_files",
     ],
     edition = "2018",
     rustc_env = {
-        "RUSTFMT": "$(rootpath //rust/toolchain:current_exec_rustfmt_files)",
+        "RUSTFMT": "$(rootpath //rust/toolchain:current_rustfmt_files)",
         "RUSTFMT_CONFIG": "$(rootpath //:rustfmt.toml)",
     },
+    rustc_env_files = [
+        "@rules_rust//rust/private:rustfmt_workspace_name",
+    ],
+    deps = [
+        "//tools/runfiles",
+    ],
 )
 
 rust_binary(
     name = "rustfmt",
     srcs = [
-        "srcs/main.rs",
+        "src/main.rs",
     ],
     data = [
         "//:rustfmt.toml",
@@ -36,7 +45,11 @@
     edition = "2018",
     rustc_env = {
         "ASPECT_REPOSITORY": aspect_repository(),
+        "RUST_DEFAULT_EDITION": "$(RUST_DEFAULT_EDITION)",
     },
+    toolchains = [
+        "@rules_rust//rust/toolchain:current_rust_toolchain",
+    ],
     deps = [
         ":rustfmt_lib",
         "//util/label",
@@ -46,7 +59,7 @@
 rust_binary(
     name = "rustfmt_test",
     srcs = [
-        "srcs/test_main.rs",
+        "src/bin/test_main.rs",
     ],
     edition = "2018",
     deps = [
diff --git a/third_party/rules_rust/tools/rustfmt/src/bin/test_main.rs b/third_party/rules_rust/tools/rustfmt/src/bin/test_main.rs
new file mode 100644
index 0000000..57cd203
--- /dev/null
+++ b/third_party/rules_rust/tools/rustfmt/src/bin/test_main.rs
@@ -0,0 +1,72 @@
+use std::path::PathBuf;
+use std::process::Command;
+
+fn main() {
+    // Gather all and environment settings
+    let options = parse_args();
+
+    // Perform rustfmt for each manifest available
+    run_rustfmt(&options);
+}
+
+/// Run rustfmt on a set of Bazel targets
+fn run_rustfmt(options: &Config) {
+    // In order to ensure the test parses all sources, we separately
+    // track whether or not a failure has occured when checking formatting.
+    let mut is_failure: bool = false;
+
+    for manifest in options.manifests.iter() {
+        // Ignore any targets which do not have source files. This can
+        // occur in cases where all source files are generated.
+        if manifest.sources.is_empty() {
+            continue;
+        }
+
+        // Run rustfmt
+        let status = Command::new(&options.rustfmt_config.rustfmt)
+            .arg("--check")
+            .arg("--edition")
+            .arg(&manifest.edition)
+            .arg("--config-path")
+            .arg(&options.rustfmt_config.config)
+            .args(&manifest.sources)
+            .status()
+            .expect("Failed to run rustfmt");
+
+        if !status.success() {
+            is_failure = true;
+        }
+    }
+
+    if is_failure {
+        std::process::exit(1);
+    }
+}
+
+/// A struct containing details used for executing rustfmt.
+#[derive(Debug)]
+struct Config {
+    /// Information about the current rustfmt binary to run.
+    pub rustfmt_config: rustfmt_lib::RustfmtConfig,
+
+    /// A list of manifests containing information about sources
+    /// to check using rustfmt.
+    pub manifests: Vec<rustfmt_lib::RustfmtManifest>,
+}
+
+/// Parse settings from the environment into a config struct
+fn parse_args() -> Config {
+    let manifests: Vec<PathBuf> = rustfmt_lib::find_manifests();
+
+    if manifests.is_empty() {
+        panic!("No manifests were found");
+    }
+
+    Config {
+        rustfmt_config: rustfmt_lib::parse_rustfmt_config(),
+        manifests: manifests
+            .iter()
+            .map(|manifest| rustfmt_lib::parse_rustfmt_manifest(manifest))
+            .collect(),
+    }
+}
diff --git a/third_party/rules_rust/tools/rustfmt/src/lib.rs b/third_party/rules_rust/tools/rustfmt/src/lib.rs
new file mode 100644
index 0000000..2d8accc
--- /dev/null
+++ b/third_party/rules_rust/tools/rustfmt/src/lib.rs
@@ -0,0 +1,102 @@
+use std::env;
+use std::fs;
+use std::path::{Path, PathBuf};
+
+/// The expected extension of rustfmt manifest files generated by `rustfmt_aspect`.
+pub const RUSTFMT_MANIFEST_EXTENSION: &str = "rustfmt";
+
+/// A struct containing details used for executing rustfmt.
+#[derive(Debug)]
+pub struct RustfmtConfig {
+    /// The rustfmt binary from the currently active toolchain
+    pub rustfmt: PathBuf,
+
+    /// The rustfmt config file containing rustfmt settings.
+    /// https://rust-lang.github.io/rustfmt/
+    pub config: PathBuf,
+}
+
+/// Parse command line arguments and environment variables to
+/// produce config data for running rustfmt.
+pub fn parse_rustfmt_config() -> RustfmtConfig {
+    let runfiles = runfiles::Runfiles::create().unwrap();
+
+    let rustfmt = runfiles.rlocation(concat!(env!("RUSTFMT_WORKSPACE"), "/", env!("RUSTFMT")));
+    if !rustfmt.exists() {
+        panic!("rustfmt does not exist at: {}", rustfmt.display());
+    }
+
+    let config = runfiles.rlocation(concat!(
+        env!("RUSTFMT_WORKSPACE"),
+        "/",
+        env!("RUSTFMT_CONFIG")
+    ));
+    if !config.exists() {
+        panic!(
+            "rustfmt config file does not exist at: {}",
+            config.display()
+        );
+    }
+
+    RustfmtConfig { rustfmt, config }
+}
+
+/// A struct of target specific information for use in running `rustfmt`.
+#[derive(Debug)]
+pub struct RustfmtManifest {
+    /// The Rust edition of the Bazel target
+    pub edition: String,
+
+    /// A list of all (non-generated) source files for formatting.
+    pub sources: Vec<PathBuf>,
+}
+
+/// Parse rustfmt flags from a manifest generated by builds using `rustfmt_aspect`.
+pub fn parse_rustfmt_manifest(manifest: &Path) -> RustfmtManifest {
+    let content = fs::read_to_string(manifest)
+        .unwrap_or_else(|_| panic!("Failed to read rustfmt manifest: {}", manifest.display()));
+
+    let mut lines: Vec<String> = content
+        .split('\n')
+        .into_iter()
+        .filter(|s| !s.is_empty())
+        .map(|s| s.to_owned())
+        .collect();
+
+    let edition = lines
+        .pop()
+        .expect("There should always be at least 1 line in the manifest");
+    edition
+        .parse::<i32>()
+        .expect("The edition should be a numeric value. eg `2018`.");
+
+    let runfiles = runfiles::Runfiles::create().unwrap();
+
+    RustfmtManifest {
+        edition,
+        sources: lines
+            .into_iter()
+            .map(|src| runfiles.rlocation(format!("{}/{}", env!("RUSTFMT_WORKSPACE"), src)))
+            .collect(),
+    }
+}
+
+#[cfg(target_family = "windows")]
+const PATH_ENV_SEP: &str = ";";
+
+#[cfg(target_family = "unix")]
+const PATH_ENV_SEP: &str = ":";
+
+/// Parse the runfiles of the current executable for manifests generated
+/// by the `rustfmt_aspect` aspect.
+pub fn find_manifests() -> Vec<PathBuf> {
+    let runfiles = runfiles::Runfiles::create().unwrap();
+
+    std::env::var("RUSTFMT_MANIFESTS")
+        .map(|var| {
+            var.split(PATH_ENV_SEP)
+                .map(|path| runfiles.rlocation(format!("{}/{}", env!("RUSTFMT_WORKSPACE"), path)))
+                .collect()
+        })
+        .unwrap_or_default()
+}
diff --git a/third_party/rules_rust/tools/rustfmt/src/main.rs b/third_party/rules_rust/tools/rustfmt/src/main.rs
new file mode 100644
index 0000000..5ca10f8
--- /dev/null
+++ b/third_party/rules_rust/tools/rustfmt/src/main.rs
@@ -0,0 +1,195 @@
+//! A tool for querying Rust source files wired into Bazel and running Rustfmt on them.
+
+use std::collections::HashMap;
+use std::env;
+use std::path::{Path, PathBuf};
+use std::process::{Command, Stdio};
+use std::str;
+
+/// The Bazel Rustfmt tool entry point
+fn main() {
+    // Gather all command line and environment settings
+    let options = parse_args();
+
+    // Gather a list of all formattable targets
+    let targets = query_rustfmt_targets(&options);
+
+    // Run rustfmt on these targets
+    apply_rustfmt(&options, &targets);
+}
+
+/// The edition to use in cases where the default edition is unspecified by Bazel
+const FALLBACK_EDITION: &str = "2018";
+
+/// Determine the Rust edition to use in cases where a target has not explicitly
+/// specified the edition via an `edition` attribute.
+fn get_default_edition() -> &'static str {
+    if !env!("RUST_DEFAULT_EDITION").is_empty() {
+        env!("RUST_DEFAULT_EDITION")
+    } else {
+        FALLBACK_EDITION
+    }
+}
+
+/// Get a list of all editions to run formatting for
+fn get_editions() -> Vec<String> {
+    vec!["2015".to_owned(), "2018".to_owned(), "2021".to_owned()]
+}
+
+/// Run a bazel command, capturing stdout while streaming stderr to surface errors
+fn bazel_command(bazel_bin: &Path, args: &[String], current_dir: &Path) -> Vec<String> {
+    let child = Command::new(bazel_bin)
+        .current_dir(current_dir)
+        .args(args)
+        .stdout(Stdio::piped())
+        .stderr(Stdio::inherit())
+        .spawn()
+        .expect("Failed to spawn bazel command");
+
+    let output = child
+        .wait_with_output()
+        .expect("Failed to wait on spawned command");
+
+    if !output.status.success() {
+        eprintln!("Failed to perform `bazel query` command.");
+        std::process::exit(output.status.code().unwrap_or(1));
+    }
+
+    str::from_utf8(&output.stdout)
+        .expect("Invalid stream from command")
+        .split('\n')
+        .filter(|line| !line.is_empty())
+        .map(|line| line.to_string())
+        .collect()
+}
+
+/// The regex representation of an empty `edition` attribute
+const EMPTY_EDITION: &str = "^$";
+
+/// Query for all `*.rs` files in a workspace that are dependencies of targets with the requested edition.
+fn edition_query(bazel_bin: &Path, edition: &str, scope: &str, current_dir: &Path) -> Vec<String> {
+    let query_args = vec![
+        "query".to_owned(),
+        // Query explanation:
+        // Filter all local targets ending in `*.rs`.
+        //     Get all source files.
+        //         Get direct dependencies.
+        //             Get all targets with the specified `edition` attribute.
+        //             Except for targets tagged with `norustfmt`.
+        //             And except for targets with a populated `crate` attribute since `crate` defines edition for this target
+        format!(
+            r#"let scope = set({scope}) in filter("^//.*\.rs$", kind("source file", deps(attr(edition, "{edition}", $scope) except attr(tags, "(^\[|, )(no-format|no-rustfmt|norustfmt)(, |\]$)", $scope) + attr(crate, ".*", $scope), 1)))"#,
+            edition = edition,
+            scope = scope,
+        ),
+        "--keep_going".to_owned(),
+        "--noimplicit_deps".to_owned(),
+    ];
+
+    bazel_command(bazel_bin, &query_args, current_dir)
+}
+
+/// Perform a `bazel` query to determine all source files which are to be
+/// formatted for particular Rust editions.
+fn query_rustfmt_targets(options: &Config) -> HashMap<String, Vec<String>> {
+    let scope = options
+        .packages
+        .clone()
+        .into_iter()
+        .reduce(|acc, item| acc + " " + &item)
+        .unwrap_or_else(|| "//...:all".to_owned());
+
+    let editions = get_editions();
+    let default_edition = get_default_edition();
+
+    editions
+        .into_iter()
+        .map(|edition| {
+            let mut targets = edition_query(&options.bazel, &edition, &scope, &options.workspace);
+
+            // For all targets relying on the toolchain for it's edition,
+            // query anything with an unset edition
+            if edition == default_edition {
+                targets.extend(edition_query(
+                    &options.bazel,
+                    EMPTY_EDITION,
+                    &scope,
+                    &options.workspace,
+                ))
+            }
+
+            (edition, targets)
+        })
+        .collect()
+}
+
+/// Run rustfmt on a set of Bazel targets
+fn apply_rustfmt(options: &Config, editions_and_targets: &HashMap<String, Vec<String>>) {
+    // There is no work to do if the list of targets is empty
+    if editions_and_targets.is_empty() {
+        return;
+    }
+
+    for (edition, targets) in editions_and_targets.iter() {
+        if targets.is_empty() {
+            continue;
+        }
+
+        // Get paths to all formattable sources
+        let sources: Vec<String> = targets
+            .iter()
+            .map(|target| target.replace(':', "/").trim_start_matches('/').to_owned())
+            .collect();
+
+        // Run rustfmt
+        let status = Command::new(&options.rustfmt_config.rustfmt)
+            .current_dir(&options.workspace)
+            .arg("--edition")
+            .arg(edition)
+            .arg("--config-path")
+            .arg(&options.rustfmt_config.config)
+            .args(sources)
+            .status()
+            .expect("Failed to run rustfmt");
+
+        if !status.success() {
+            std::process::exit(status.code().unwrap_or(1));
+        }
+    }
+}
+
+/// A struct containing details used for executing rustfmt.
+#[derive(Debug)]
+struct Config {
+    /// The path of the Bazel workspace root.
+    pub workspace: PathBuf,
+
+    /// The Bazel executable to use for builds and queries.
+    pub bazel: PathBuf,
+
+    /// Information about the current rustfmt binary to run.
+    pub rustfmt_config: rustfmt_lib::RustfmtConfig,
+
+    /// Optionally, users can pass a list of targets/packages/scopes
+    /// (eg `//my:target` or `//my/pkg/...`) to control the targets
+    /// to be formatted. If empty, all targets in the workspace will
+    /// be formatted.
+    pub packages: Vec<String>,
+}
+
+/// Parse command line arguments and environment variables to
+/// produce config data for running rustfmt.
+fn parse_args() -> Config {
+    Config{
+        workspace: PathBuf::from(
+            env::var("BUILD_WORKSPACE_DIRECTORY")
+            .expect("The environment variable BUILD_WORKSPACE_DIRECTORY is required for finding the workspace root")
+        ),
+        bazel: PathBuf::from(
+            env::var("BAZEL_REAL")
+            .unwrap_or_else(|_| "bazel".to_owned())
+        ),
+        rustfmt_config: rustfmt_lib::parse_rustfmt_config(),
+        packages: env::args().skip(1).collect(),
+    }
+}
diff --git a/third_party/rules_rust/tools/rustfmt/srcs/lib.rs b/third_party/rules_rust/tools/rustfmt/srcs/lib.rs
deleted file mode 100644
index ad2e86a..0000000
--- a/third_party/rules_rust/tools/rustfmt/srcs/lib.rs
+++ /dev/null
@@ -1,74 +0,0 @@
-use std::env;
-use std::fs;
-use std::path::{Path, PathBuf};
-
-/// The expected extension of rustfmt manifest files generated by `rustfmt_aspect`.
-pub const RUSTFMT_MANIFEST_EXTENSION: &str = "rustfmt";
-
-/// Generate an absolute path to a file without resolving symlinks
-fn absolutify_existing<T: AsRef<Path>>(path: &T) -> std::io::Result<PathBuf> {
-    let absolute_path = if path.as_ref().is_absolute() {
-        path.as_ref().to_owned()
-    } else {
-        std::env::current_dir()
-            .expect("Failed to get working directory")
-            .join(path)
-    };
-    std::fs::metadata(&absolute_path).map(|_| absolute_path)
-}
-
-/// A struct containing details used for executing rustfmt.
-#[derive(Debug)]
-pub struct RustfmtConfig {
-    /// The rustfmt binary from the currently active toolchain
-    pub rustfmt: PathBuf,
-
-    /// The rustfmt config file containing rustfmt settings.
-    /// https://rust-lang.github.io/rustfmt/
-    pub config: PathBuf,
-}
-
-/// Parse command line arguments and environment variables to
-/// produce config data for running rustfmt.
-pub fn parse_rustfmt_config() -> RustfmtConfig {
-    RustfmtConfig {
-        rustfmt: absolutify_existing(&env!("RUSTFMT")).expect("Unable to find rustfmt binary"),
-        config: absolutify_existing(&env!("RUSTFMT_CONFIG"))
-            .expect("Unable to find rustfmt config file"),
-    }
-}
-
-/// A struct of target specific information for use in running `rustfmt`.
-#[derive(Debug)]
-pub struct RustfmtManifest {
-    /// The Rust edition of the Bazel target
-    pub edition: String,
-
-    /// A list of all (non-generated) source files for formatting.
-    pub sources: Vec<String>,
-}
-
-/// Parse rustfmt flags from a manifest generated by builds using `rustfmt_aspect`.
-pub fn parse_rustfmt_manifest(manifest: &Path) -> RustfmtManifest {
-    let content = fs::read_to_string(manifest)
-        .unwrap_or_else(|_| panic!("Failed to read rustfmt manifest: {}", manifest.display()));
-
-    let mut lines: Vec<String> = content
-        .split('\n')
-        .into_iter()
-        .filter(|s| !s.is_empty())
-        .map(|s| s.to_owned())
-        .collect();
-
-    let edition = lines
-        .pop()
-        .expect("There should always be at least 1 line in the manifest");
-    edition
-        .parse::<i32>()
-        .expect("The edition should be a numeric value. eg `2018`.");
-
-    RustfmtManifest {
-        edition,
-        sources: lines,
-    }
-}
diff --git a/third_party/rules_rust/tools/rustfmt/srcs/main.rs b/third_party/rules_rust/tools/rustfmt/srcs/main.rs
deleted file mode 100644
index 4e4419f..0000000
--- a/third_party/rules_rust/tools/rustfmt/srcs/main.rs
+++ /dev/null
@@ -1,185 +0,0 @@
-use std::env;
-use std::path::PathBuf;
-use std::process::{Command, Stdio};
-use std::str;
-
-fn main() {
-    // Gather all command line and environment settings
-    let options = parse_args();
-
-    // Gather a list of all formattable targets
-    let targets = query_rustfmt_targets(&options);
-
-    // Run rustfmt on these targets
-    apply_rustfmt(&options, &targets);
-}
-
-/// Perform a `bazel` query to determine a list of Bazel targets which are to be formatted.
-fn query_rustfmt_targets(options: &Config) -> Vec<String> {
-    // Determine what packages to query
-    let scope = match options.packages.is_empty() {
-        true => "//...:all".to_owned(),
-        false => {
-            // Check to see if all the provided packages are actually targets
-            let is_all_targets = options
-                .packages
-                .iter()
-                .all(|pkg| match label::analyze(pkg) {
-                    Ok(tgt) => tgt.name != "all",
-                    Err(_) => false,
-                });
-
-            // Early return if a list of targets and not packages were provided
-            if is_all_targets {
-                return options.packages.clone();
-            }
-
-            options.packages.join(" + ")
-        }
-    };
-
-    let query_args = vec![
-        "query".to_owned(),
-        format!(
-            r#"kind('{types}', {scope}) except attr(tags, 'norustfmt', kind('{types}', {scope}))"#,
-            types = "^rust_",
-            scope = scope
-        ),
-    ];
-
-    let child = Command::new(&options.bazel)
-        .current_dir(&options.workspace)
-        .args(query_args)
-        .stdout(Stdio::piped())
-        .stderr(Stdio::inherit())
-        .spawn()
-        .expect("Failed to spawn bazel query command");
-
-    let output = child
-        .wait_with_output()
-        .expect("Failed to wait on spawned command");
-
-    if !output.status.success() {
-        std::process::exit(output.status.code().unwrap_or(1));
-    }
-
-    str::from_utf8(&output.stdout)
-        .expect("Invalid stream from command")
-        .split('\n')
-        .filter(|line| !line.is_empty())
-        .map(|line| line.to_string())
-        .collect()
-}
-
-/// Build a list of Bazel targets using the `rustfmt_aspect` to produce the
-/// arguments to use when formatting the sources of those targets.
-fn generate_rustfmt_target_manifests(options: &Config, targets: &[String]) {
-    let build_args = vec![
-        "build".to_owned(),
-        format!(
-            "--aspects={}//rust:defs.bzl%rustfmt_aspect",
-            env!("ASPECT_REPOSITORY")
-        ),
-        "--output_groups=rustfmt_manifest".to_owned(),
-    ];
-
-    let child = Command::new(&options.bazel)
-        .current_dir(&options.workspace)
-        .args(build_args)
-        .args(targets)
-        .stdout(Stdio::piped())
-        .stderr(Stdio::inherit())
-        .spawn()
-        .expect("Failed to spawn command");
-
-    let output = child
-        .wait_with_output()
-        .expect("Failed to wait on spawned command");
-
-    if !output.status.success() {
-        std::process::exit(output.status.code().unwrap_or(1));
-    }
-}
-
-/// Run rustfmt on a set of Bazel targets
-fn apply_rustfmt(options: &Config, targets: &[String]) {
-    // Ensure the targets are first built and a manifest containing `rustfmt`
-    // arguments are generated before formatting source files.
-    generate_rustfmt_target_manifests(options, targets);
-
-    for target in targets.iter() {
-        // Replace any `:` characters and strip leading slashes
-        let target_path = target.replace(':', "/").trim_start_matches('/').to_owned();
-
-        // Find a manifest for the current target. Not all targets will have one
-        let manifest = options.workspace.join("bazel-bin").join(format!(
-            "{}.{}",
-            &target_path,
-            rustfmt_lib::RUSTFMT_MANIFEST_EXTENSION,
-        ));
-
-        if !manifest.exists() {
-            continue;
-        }
-
-        // Load the manifest containing rustfmt arguments
-        let rustfmt_config = rustfmt_lib::parse_rustfmt_manifest(&manifest);
-
-        // Ignore any targets which do not have source files. This can
-        // occur in cases where all source files are generated.
-        if rustfmt_config.sources.is_empty() {
-            continue;
-        }
-
-        // Run rustfmt
-        let status = Command::new(&options.rustfmt_config.rustfmt)
-            .current_dir(&options.workspace)
-            .arg("--edition")
-            .arg(rustfmt_config.edition)
-            .arg("--config-path")
-            .arg(&options.rustfmt_config.config)
-            .args(rustfmt_config.sources)
-            .status()
-            .expect("Failed to run rustfmt");
-
-        if !status.success() {
-            std::process::exit(status.code().unwrap_or(1));
-        }
-    }
-}
-
-/// A struct containing details used for executing rustfmt.
-#[derive(Debug)]
-struct Config {
-    /// The path of the Bazel workspace root.
-    pub workspace: PathBuf,
-
-    /// The Bazel executable to use for builds and queries.
-    pub bazel: PathBuf,
-
-    /// Information about the current rustfmt binary to run.
-    pub rustfmt_config: rustfmt_lib::RustfmtConfig,
-
-    /// Optionally, users can pass a list of targets/packages/scopes
-    /// (eg `//my:target` or `//my/pkg/...`) to control the targets
-    /// to be formatted. If empty, all targets in the workspace will
-    /// be formatted.
-    pub packages: Vec<String>,
-}
-
-/// Parse command line arguments and environment variables to
-/// produce config data for running rustfmt.
-fn parse_args() -> Config {
-    Config{
-        workspace: PathBuf::from(
-            env::var("BUILD_WORKSPACE_DIRECTORY")
-            .expect("The environment variable BUILD_WORKSPACE_DIRECTORY is required for finding the workspace root")
-        ),
-        bazel: PathBuf::from(
-            env::var("BAZEL_REAL")
-            .unwrap_or_else(|_| "bazel".to_owned())
-        ),
-        rustfmt_config: rustfmt_lib::parse_rustfmt_config(),
-        packages: env::args().skip(1).collect(),
-    }
-}
diff --git a/third_party/rules_rust/tools/rustfmt/srcs/test_main.rs b/third_party/rules_rust/tools/rustfmt/srcs/test_main.rs
deleted file mode 100644
index ea2adba..0000000
--- a/third_party/rules_rust/tools/rustfmt/srcs/test_main.rs
+++ /dev/null
@@ -1,95 +0,0 @@
-use std::fs;
-use std::path::{Path, PathBuf};
-use std::process::Command;
-
-fn main() {
-    // Gather all and environment settings
-    let options = parse_args();
-
-    // Perform rustfmt for each manifest available
-    run_rustfmt(&options);
-}
-
-/// Run rustfmt on a set of Bazel targets
-fn run_rustfmt(options: &Config) {
-    // In order to ensure the test parses all sources, we separately
-    // track whether or not a failure has occured when checking formatting.
-    let mut is_failure: bool = false;
-
-    for manifest in options.manifests.iter() {
-        // Ignore any targets which do not have source files. This can
-        // occur in cases where all source files are generated.
-        if manifest.sources.is_empty() {
-            continue;
-        }
-
-        // Run rustfmt
-        let status = Command::new(&options.rustfmt_config.rustfmt)
-            .arg("--check")
-            .arg("--edition")
-            .arg(&manifest.edition)
-            .arg("--config-path")
-            .arg(&options.rustfmt_config.config)
-            .args(&manifest.sources)
-            .status()
-            .expect("Failed to run rustfmt");
-
-        if !status.success() {
-            is_failure = true;
-        }
-    }
-
-    if is_failure {
-        std::process::exit(1);
-    }
-}
-
-/// A struct containing details used for executing rustfmt.
-#[derive(Debug)]
-struct Config {
-    /// Information about the current rustfmt binary to run.
-    pub rustfmt_config: rustfmt_lib::RustfmtConfig,
-
-    /// A list of manifests containing information about sources
-    /// to check using rustfmt.
-    pub manifests: Vec<rustfmt_lib::RustfmtManifest>,
-}
-
-/// Parse the runfiles of the current executable for manifests generated
-/// but the `rustfmt_aspect` aspect.
-fn find_manifests(dir: &Path, manifests: &mut Vec<PathBuf>) {
-    if dir.is_dir() {
-        for entry in fs::read_dir(dir).expect("Failed to read directory contents") {
-            let entry = entry.expect("Failed to read directory entry");
-            let path = entry.path();
-            if path.is_dir() {
-                find_manifests(&path, manifests);
-            } else if let Some(ext) = path.extension() {
-                if ext == rustfmt_lib::RUSTFMT_MANIFEST_EXTENSION {
-                    manifests.extend(vec![path]);
-                }
-            }
-        }
-    }
-}
-
-/// Parse settings from the environment into a config struct
-fn parse_args() -> Config {
-    let mut manifests: Vec<PathBuf> = Vec::new();
-    find_manifests(
-        &runfiles::find_runfiles_dir().expect("Failed to find runfiles directory"),
-        &mut manifests,
-    );
-
-    if manifests.is_empty() {
-        panic!("No manifests were found");
-    }
-
-    Config {
-        rustfmt_config: rustfmt_lib::parse_rustfmt_config(),
-        manifests: manifests
-            .iter()
-            .map(|manifest| rustfmt_lib::parse_rustfmt_manifest(manifest))
-            .collect(),
-    }
-}
diff --git a/third_party/rules_rust/util/BUILD.bazel b/third_party/rules_rust/util/BUILD.bazel
index 217f1db..8502870 100644
--- a/third_party/rules_rust/util/BUILD.bazel
+++ b/third_party/rules_rust/util/BUILD.bazel
@@ -1,4 +1,11 @@
 sh_binary(
     name = "fetch_shas",
     srcs = ["fetch_shas.sh"],
+    tags = ["manual"],
+)
+
+filegroup(
+    name = "collect_coverage",
+    srcs = ["collect_coverage.sh"],
+    visibility = ["//visibility:public"],
 )
diff --git a/third_party/rules_rust/util/collect_coverage.sh b/third_party/rules_rust/util/collect_coverage.sh
new file mode 100755
index 0000000..328a5c6
--- /dev/null
+++ b/third_party/rules_rust/util/collect_coverage.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+if [[ -n "${VERBOSE_COVERAGE:-}" ]]; then
+  set -x
+fi
+
+readonly profdata_file=$COVERAGE_DIR/coverage.profdata
+
+"$RUNFILES_DIR/$TEST_WORKSPACE/$RUST_LLVM_PROFDATA" \
+  merge \
+  --sparse "$COVERAGE_DIR"/*.profraw \
+  -output "$profdata_file"
+
+"$RUNFILES_DIR/$TEST_WORKSPACE/$RUST_LLVM_COV" \
+  export \
+  -format=lcov \
+  -instr-profile "$profdata_file" \
+  -ignore-filename-regex='.*external/.+' \
+  -ignore-filename-regex='/tmp/.+' \
+  -path-equivalence=.,"$ROOT" \
+  "$RUNFILES_DIR/$TEST_WORKSPACE/$TEST_BINARY" \
+  @"$COVERAGE_MANIFEST" \
+  | sed 's#/proc/self/cwd/##' > "$COVERAGE_OUTPUT_FILE"
diff --git a/third_party/rules_rust/util/fetch_shas.sh b/third_party/rules_rust/util/fetch_shas.sh
index 2a538c1..50fe137 100755
--- a/third_party/rules_rust/util/fetch_shas.sh
+++ b/third_party/rules_rust/util/fetch_shas.sh
@@ -18,7 +18,12 @@
 BETA_ISO_DATES="$(cat "${BUILD_WORKSPACE_DIRECTORY}/util/fetch_shas_BETA_ISO_DATES.txt")"
 NIGHTLY_ISO_DATES="$(cat "${BUILD_WORKSPACE_DIRECTORY}/util/fetch_shas_NIGHTLY_ISO_DATES.txt")"
 
-enumerate_keys() {
+EXTENSIONS=(
+   tar.gz
+   tar.xz
+)
+
+function enumerate_keys() {
   for TOOL in $TOOLS
   do
     for TARGET in $TARGETS
@@ -49,12 +54,29 @@
   done
 }
 
-emit_bzl_file_contents() {
-  echo "$@" \
-    | parallel --trim lr -d ' ' --will-cite 'printf "%s %s\n", {}, $(curl --fail https://static.rust-lang.org/dist/{}.tar.gz.sha256 | cut -f1 -d" ")' \
-    | sed "s/,//g" \
-    | grep -v " $" \
-    > /tmp/reload_shas_shalist.txt
+function emit_bzl_file_contents() {
+  local out_dir="${TMPDIR}/outs"
+  mkdir "${out_dir}"
+
+  echo "--parallel" >> "${TMPDIR}/curl_config"
+  echo "--fail" >> "${TMPDIR}/curl_config"
+  echo "--silent" >> "${TMPDIR}/curl_config"
+  echo "--create-dirs" >> "${TMPDIR}/curl_config"
+  for key in "$@"; do
+    for ext in "${EXTENSIONS[@]}"; do
+      echo "--output ${out_dir}/${key}.${ext}" >> "${TMPDIR}/curl_config"
+      echo "--url https://static.rust-lang.org/dist/${key}.${ext}.sha256" >> "${TMPDIR}/curl_config"
+    done
+  done
+  curl --config "${TMPDIR}/curl_config"
+
+  pushd "${out_dir}" > /dev/null
+  for file in $(find . -type f)
+  do
+    echo "$(echo ${file} | sed 's|./||') $(cat ${file} | awk '{ print $1 }')" >> "${TMPDIR}/shas.txt"
+  done
+  
+  popd > /dev/null
 
   echo "\"\"\"A module containing a mapping of Rust tools to checksums"
   echo ""
@@ -62,9 +84,12 @@
   echo "\"\"\""
   echo ""
   echo "FILE_KEY_TO_SHA = {"
-  cat /tmp/reload_shas_shalist.txt | sed '/^[[:space:]]*$/d' | sort | awk '{print "    \"" $1 "\": \"" $2 "\","}'
+  cat "${TMPDIR}/shas.txt" | sed '/^[[:space:]]*$/d' | sort | awk '{print "    \"" $1 "\": \"" $2 "\","}'
   echo "}"
-  rm /tmp/reload_shas_shalist.txt
 }
 
+export TMPDIR="$(mktemp -d -t bazel_reload_shas_shalists)"
+echo "Fetching known shas..."
 echo "$(emit_bzl_file_contents $(enumerate_keys))" > "${BUILD_WORKSPACE_DIRECTORY}/rust/known_shas.bzl"
+echo "Done"
+rm -rf "${TMPDIR}"
diff --git a/third_party/rules_rust/util/fetch_shas_NIGHTLY_ISO_DATES.txt b/third_party/rules_rust/util/fetch_shas_NIGHTLY_ISO_DATES.txt
index 2d9a94e..ce46ada 100644
--- a/third_party/rules_rust/util/fetch_shas_NIGHTLY_ISO_DATES.txt
+++ b/third_party/rules_rust/util/fetch_shas_NIGHTLY_ISO_DATES.txt
@@ -12,3 +12,7 @@
 2022-01-12
 2022-01-19
 2022-02-23
+2022-04-06
+2022-05-19
+2022-06-30
+2022-07-18
diff --git a/third_party/rules_rust/util/fetch_shas_VERSIONS.txt b/third_party/rules_rust/util/fetch_shas_VERSIONS.txt
index 18ad30c..26ef26d 100644
--- a/third_party/rules_rust/util/fetch_shas_VERSIONS.txt
+++ b/third_party/rules_rust/util/fetch_shas_VERSIONS.txt
@@ -43,3 +43,7 @@
 1.58.0
 1.58.1
 1.59.0
+1.60.0
+1.61.0
+1.62.0
+1.62.1
diff --git a/third_party/rules_rust/util/import/3rdparty/BUILD.bazel b/third_party/rules_rust/util/import/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..cb29b20
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/BUILD.bazel
@@ -0,0 +1,40 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+
+crates_vendor(
+    name = "crates_vendor",
+    cargo_lockfile = "Cargo.Bazel.lock",
+    generate_build_scripts = True,
+    mode = "remote",
+    packages = {
+        "aho-corasick": crate.spec(
+            version = "=0.7.15",
+        ),
+        "lazy_static": crate.spec(
+            version = "=1.4.0",
+        ),
+        "proc-macro2": crate.spec(
+            version = "=1.0.33",
+        ),
+        "quickcheck": crate.spec(
+            version = "=1.0.3",
+        ),
+        "quote": crate.spec(
+            version = "=1.0.10",
+        ),
+        "syn": crate.spec(
+            version = "=1.0.82",
+        ),
+    },
+    repository_name = "rules_rust_util_import",
+    tags = ["manual"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//util/import/3rdparty/crates:defs.bzl",
+        "//util/import/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//util/import:__pkg__"],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/util/import/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..102e136
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,165 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "direct-cargo-bazel-deps"
+version = "0.0.1"
+dependencies = [
+ "aho-corasick",
+ "lazy_static",
+ "proc-macro2",
+ "quickcheck",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+dependencies = [
+ "log",
+ "regex",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb37d2df5df740e582f28f8560cf425f52bb267d872fe58358eadb554909f07a"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quickcheck"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
+dependencies = [
+ "env_logger",
+ "log",
+ "rand",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "regex"
+version = "1.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "syn"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.aho-corasick-0.7.15.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.aho-corasick-0.7.15.bazel
new file mode 100644
index 0000000..e502cde
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.aho-corasick-0.7.15.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "aho_corasick",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..4674880
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,66 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "aho-corasick",
+    actual = "@rules_rust_util_import__aho-corasick-0.7.15//:aho_corasick",
+    tags = ["manual"],
+)
+
+alias(
+    name = "lazy_static",
+    actual = "@rules_rust_util_import__lazy_static-1.4.0//:lazy_static",
+    tags = ["manual"],
+)
+
+alias(
+    name = "proc-macro2",
+    actual = "@rules_rust_util_import__proc-macro2-1.0.33//:proc_macro2",
+    tags = ["manual"],
+)
+
+alias(
+    name = "quickcheck",
+    actual = "@rules_rust_util_import__quickcheck-1.0.3//:quickcheck",
+    tags = ["manual"],
+)
+
+alias(
+    name = "quote",
+    actual = "@rules_rust_util_import__quote-1.0.10//:quote",
+    tags = ["manual"],
+)
+
+alias(
+    name = "syn",
+    actual = "@rules_rust_util_import__syn-1.0.82//:syn",
+    tags = ["manual"],
+)
+
+# Binaries
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..33352ad
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.env_logger-0.8.4.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
new file mode 100644
index 0000000..4bab83f
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "env_logger",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "regex",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__log-0.4.17//:log",
+            "@rules_rust_util_import__regex-1.4.6//:regex",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.getrandom-0.2.7.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
new file mode 100644
index 0000000..533dc8c
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
@@ -0,0 +1,129 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "getrandom",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.7",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "wasi")
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@rules_rust_util_import__wasi-0.11.0-wasi-snapshot-preview1//:wasi",
+
+            # Common Deps
+            "@rules_rust_util_import__cfg-if-1.0.0//:cfg_if",
+        ],
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_util_import__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_util_import__cfg-if-1.0.0//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@rules_rust_util_import__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
new file mode 100644
index 0000000..9c7761e
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "lazy_static",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..723908e
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..a9f2f72
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_util_import__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..4880289
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,180 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "use_std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.proc-macro2-1.0.33.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.proc-macro2-1.0.33.bazel
new file mode 100644
index 0000000..85ab9a4
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.proc-macro2-1.0.33.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.33",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__proc-macro2-1.0.33//:build_script_build",
+            "@rules_rust_util_import__unicode-xid-0.2.3//:unicode_xid",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.33",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quickcheck-1.0.3.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quickcheck-1.0.3.bazel
new file mode 100644
index 0000000..d516d60
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quickcheck-1.0.3.bazel
@@ -0,0 +1,98 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "quickcheck",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "env_logger",
+        "log",
+        "regex",
+        "use_logging",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__env_logger-0.8.4//:env_logger",
+            "@rules_rust_util_import__log-0.4.17//:log",
+            "@rules_rust_util_import__rand-0.8.5//:rand",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quote-1.0.10.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quote-1.0.10.bazel
new file mode 100644
index 0000000..c94b5b5
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.quote-1.0.10.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__proc-macro2-1.0.33//:proc_macro2",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand-0.8.5.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand-0.8.5.bazel
new file mode 100644
index 0000000..890cfd6
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand-0.8.5.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "getrandom",
+        "small_rng",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__rand_core-0.6.3//:rand_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
new file mode 100644
index 0000000..6376096
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "getrandom",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__getrandom-0.2.7//:getrandom",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-1.4.6.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-1.4.6.bazel
new file mode 100644
index 0000000..4968002
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-1.4.6.bazel
@@ -0,0 +1,101 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.6",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__aho-corasick-0.7.15//:aho_corasick",
+            "@rules_rust_util_import__memchr-2.5.0//:memchr",
+            "@rules_rust_util_import__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..cadf7fe
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.syn-1.0.82.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.syn-1.0.82.bazel
new file mode 100644
index 0000000..c2cc5c8
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.syn-1.0.82.bazel
@@ -0,0 +1,191 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_util_import__proc-macro2-1.0.33//:proc_macro2",
+            "@rules_rust_util_import__quote-1.0.10//:quote",
+            "@rules_rust_util_import__syn-1.0.82//:build_script_build",
+            "@rules_rust_util_import__unicode-xid-0.2.3//:unicode_xid",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.unicode-xid-0.2.3.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.unicode-xid-0.2.3.bazel
new file mode 100644
index 0000000..5405857
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.unicode-xid-0.2.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_xid",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
new file mode 100644
index 0000000..02de946
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "wasi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.0+wasi-snapshot-preview1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/crates.bzl b/third_party/rules_rust/util/import/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..fc608af
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//util/import/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_util_import",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//util/import/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/util/import/3rdparty/crates/defs.bzl b/third_party/rules_rust/util/import/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..8bf2778
--- /dev/null
+++ b/third_party/rules_rust/util/import/3rdparty/crates/defs.bzl
@@ -0,0 +1,548 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //util/import/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "aho-corasick": "@rules_rust_util_import__aho-corasick-0.7.15//:aho_corasick",
+            "lazy_static": "@rules_rust_util_import__lazy_static-1.4.0//:lazy_static",
+            "proc-macro2": "@rules_rust_util_import__proc-macro2-1.0.33//:proc_macro2",
+            "quickcheck": "@rules_rust_util_import__quickcheck-1.0.3//:quickcheck",
+            "quote": "@rules_rust_util_import__quote-1.0.10//:quote",
+            "syn": "@rules_rust_util_import__syn-1.0.82//:syn",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "cfg(target_os = \"wasi\")": ["wasm32-wasi"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__aho-corasick-0.7.15",
+        sha256 = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.15/download"],
+        strip_prefix = "aho-corasick-0.7.15",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.aho-corasick-0.7.15.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__env_logger-0.8.4",
+        sha256 = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/env_logger/0.8.4/download"],
+        strip_prefix = "env_logger-0.8.4",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.env_logger-0.8.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__getrandom-0.2.7",
+        sha256 = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.7/download"],
+        strip_prefix = "getrandom-0.2.7",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.getrandom-0.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__lazy_static-1.4.0",
+        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        strip_prefix = "lazy_static-1.4.0",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__proc-macro2-1.0.33",
+        sha256 = "fb37d2df5df740e582f28f8560cf425f52bb267d872fe58358eadb554909f07a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.33/download"],
+        strip_prefix = "proc-macro2-1.0.33",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.proc-macro2-1.0.33.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__quickcheck-1.0.3",
+        sha256 = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quickcheck/1.0.3/download"],
+        strip_prefix = "quickcheck-1.0.3",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.quickcheck-1.0.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__quote-1.0.10",
+        sha256 = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.10/download"],
+        strip_prefix = "quote-1.0.10",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.quote-1.0.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__rand-0.8.5",
+        sha256 = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand/0.8.5/download"],
+        strip_prefix = "rand-0.8.5",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.rand-0.8.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__rand_core-0.6.3",
+        sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand_core/0.6.3/download"],
+        strip_prefix = "rand_core-0.6.3",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.rand_core-0.6.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__regex-1.4.6",
+        sha256 = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.4.6/download"],
+        strip_prefix = "regex-1.4.6",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.regex-1.4.6.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__syn-1.0.82",
+        sha256 = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.82/download"],
+        strip_prefix = "syn-1.0.82",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.syn-1.0.82.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__unicode-xid-0.2.3",
+        sha256 = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-xid/0.2.3/download"],
+        strip_prefix = "unicode-xid-0.2.3",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.unicode-xid-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_util_import__wasi-0.11.0-wasi-snapshot-preview1",
+        sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
+        build_file = Label("@rules_rust//util/import/3rdparty/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
+    )
diff --git a/third_party/rules_rust/util/import/BUILD.bazel b/third_party/rules_rust/util/import/BUILD.bazel
index 7cb0395..898a82f 100644
--- a/third_party/rules_rust/util/import/BUILD.bazel
+++ b/third_party/rules_rust/util/import/BUILD.bazel
@@ -1,11 +1,12 @@
+load("@rules_cc//cc:defs.bzl", "cc_binary")
 load("//rust:defs.bzl", "rust_library", "rust_proc_macro", "rust_test")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:transitions.bzl", "with_import_macro_bootstrapping_mode")
+load("//rust/private:transitions.bzl", "alias_with_import_macro_bootstrapping_mode")
 
-with_import_macro_bootstrapping_mode(
+alias_with_import_macro_bootstrapping_mode(
     name = "import_macro",
-    target = "import_macro_impl",
+    actual = ":import_macro_impl",
 )
 
 rust_proc_macro(
@@ -14,9 +15,10 @@
         "import.rs",
     ],
     crate_name = "import",
+    edition = "2018",
     deps = [
         ":import_internal",
-        "//util/import/raze:syn",
+        "//util/import/3rdparty/crates:syn",
     ],
 )
 
@@ -25,12 +27,13 @@
     srcs = [
         "import_internal.rs",
     ],
+    edition = "2018",
     deps = [
-        "//util/import/raze:aho_corasick",
-        "//util/import/raze:lazy_static",
-        "//util/import/raze:proc_macro2",
-        "//util/import/raze:quote",
-        "//util/import/raze:syn",
+        "//util/import/3rdparty/crates:aho-corasick",
+        "//util/import/3rdparty/crates:lazy_static",
+        "//util/import/3rdparty/crates:proc-macro2",
+        "//util/import/3rdparty/crates:quote",
+        "//util/import/3rdparty/crates:syn",
         "//util/label",
     ],
 )
@@ -38,8 +41,9 @@
 rust_test(
     name = "import_internal_test",
     crate = ":import_internal",
+    edition = "2018",
     deps = [
-        "//util/import/raze:quickcheck",
+        "//util/import/3rdparty/crates:quickcheck",
     ],
 )
 
@@ -67,7 +71,7 @@
     },
 )
 
-sh_binary(
+cc_binary(
     name = "fake_import_macro_impl",
-    srcs = ["fake_import_macro_impl.sh"],
+    srcs = ["fake_import_macro_impl.cc"],
 )
diff --git a/third_party/rules_rust/util/import/deps.bzl b/third_party/rules_rust/util/import/deps.bzl
index be49b06..ffce2b3 100644
--- a/third_party/rules_rust/util/import/deps.bzl
+++ b/third_party/rules_rust/util/import/deps.bzl
@@ -2,10 +2,10 @@
 The dependencies for running the gen_rust_project binary.
 """
 
-load("//util/import/raze:crates.bzl", "rules_rust_util_import_fetch_remote_crates")
+load("//util/import/3rdparty/crates:defs.bzl", "crate_repositories")
 
 def import_deps():
-    rules_rust_util_import_fetch_remote_crates()
+    crate_repositories()
 
 # For legacy support
 gen_rust_project_dependencies = import_deps
diff --git a/third_party/rules_rust/util/import/fake_import_macro_impl.cc b/third_party/rules_rust/util/import/fake_import_macro_impl.cc
new file mode 100755
index 0000000..5b0b32a
--- /dev/null
+++ b/third_party/rules_rust/util/import/fake_import_macro_impl.cc
@@ -0,0 +1,3 @@
+//! A noop import macro handler.
+
+int main(int argc, char** argv) { return 0; }
diff --git a/third_party/rules_rust/util/import/fake_import_macro_impl.sh b/third_party/rules_rust/util/import/fake_import_macro_impl.sh
deleted file mode 100755
index 1fa77d8..0000000
--- a/third_party/rules_rust/util/import/fake_import_macro_impl.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-# Does nothing.
\ No newline at end of file
diff --git a/third_party/rules_rust/util/import/import_internal.rs b/third_party/rules_rust/util/import/import_internal.rs
index 1d44fe6..8b6e061 100644
--- a/third_party/rules_rust/util/import/import_internal.rs
+++ b/third_party/rules_rust/util/import/import_internal.rs
@@ -73,6 +73,43 @@
 }
 
 lazy_static! {
+    // The (unencoded, encoded) pairings here must match those in
+    // //rust/private/utils.bzl exactly.
+    static ref ENCODINGS: Vec<(&'static str, &'static str)> =
+            vec![
+                    (":", "x"),
+                    ("!", "excl"),
+                    ("%", "prc"),
+                    ("@", "ao"),
+                    ("^", "caret"),
+                    ("`", "bt"),
+                    (" ", "sp"),
+                    ("\"", "dq"),
+                    ("#", "octo"),
+                    ("$", "dllr"),
+                    ("&", "amp"),
+                    ("'", "sq"),
+                    ("(", "lp"),
+                    (")", "rp"),
+                    ("*", "astr"),
+                    ("-", "d"),
+                    ("+", "pl"),
+                    (",", "cm"),
+                    (";", "sm"),
+                    ("<", "la"),
+                    ("=", "eq"),
+                    (">", "ra"),
+                    ("?", "qm"),
+                    ("[", "lbk"),
+                    ("]", "rbk"),
+                    ("{", "lbe"),
+                    ("|", "pp"),
+                    ("}", "rbe"),
+                    ("~", "td"),
+                    ("/", "y"),
+                    (".", "pd"),
+            ];
+
     // Transformations are stored as "(unencoded, encoded)" tuples.
     // Target names can include:
     // !%-@^_` "#$&'()*-+,;<=>?[]{|}~/.
@@ -81,44 +118,11 @@
     //
     // Packages and targets are separated by colons.
     static ref SUBSTITUTIONS: (Vec<String>, Vec<String>) =
-        iter::once(("_quote".to_string(), "_quotequote_".to_string()))
-        .chain(
-            vec![
-                    (":", "colon"),
-                    ("!", "bang"),
-                    ("%", "percent"),
-                    ("@", "at"),
-                    ("^", "caret"),
-                    ("`", "backtick"),
-                    (" ", "space"),
-                    ("\"", "quote"),
-                    ("#", "hash"),
-                    ("$", "dollar"),
-                    ("&", "ampersand"),
-                    ("'", "backslash"),
-                    ("(", "lparen"),
-                    (")", "rparen"),
-                    ("*", "star"),
-                    ("-", "dash"),
-                    ("+", "plus"),
-                    (",", "comma"),
-                    (";", "semicolon"),
-                    ("<", "langle"),
-                    ("=", "equal"),
-                    (">", "rangle"),
-                    ("?", "question"),
-                    ("[", "lbracket"),
-                    ("]", "rbracket"),
-                    ("{", "lbrace"),
-                    ("|", "pipe"),
-                    ("}", "rbrace"),
-                    ("~", "tilde"),
-                    ("/", "slash"),
-                    (".", "dot"),
-            ].into_iter()
+        iter::once(("_z".to_string(), "_zz_".to_string()))
+        .chain(ENCODINGS.iter()
             .flat_map(|pair| {
                 vec![
-                    (format!("_{}_", &pair.1), format!("_quote{}_", &pair.1)),
+                    (format!("_{}_", &pair.1), format!("_z{}_", &pair.1)),
                     (pair.0.to_string(), format!("_{}_", &pair.1)),
                 ].into_iter()
             })
@@ -307,42 +311,42 @@
         let expanded = expand_imports(parse_quote! { "//some_project:utils"; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_utils as utils ;"
+            "extern crate some_project_x_utils as utils ;"
         );
 
         // Package and a target, with a no-op alias.
         let expanded = expand_imports(parse_quote! { "//some_project:utils" as utils; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_utils as utils ;"
+            "extern crate some_project_x_utils as utils ;"
         );
 
         // Package and a target, with an alias.
         let expanded = expand_imports(parse_quote! { "//some_project:utils" as my_utils; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_utils as my_utils ;"
+            "extern crate some_project_x_utils as my_utils ;"
         );
 
         // Package and an implicit target.
         let expanded = expand_imports(parse_quote! { "//some_project/utils"; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_slash_utils_colon_utils as utils ;"
+            "extern crate some_project_y_utils_x_utils as utils ;"
         );
 
         // Package and an implicit target, with a no-op alias.
         let expanded = expand_imports(parse_quote! { "//some_project/utils" as utils; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_slash_utils_colon_utils as utils ;"
+            "extern crate some_project_y_utils_x_utils as utils ;"
         );
 
         // Package and an implicit target, with an alias.
         let expanded = expand_imports(parse_quote! { "//some_project/utils" as my_utils; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_slash_utils_colon_utils as my_utils ;"
+            "extern crate some_project_y_utils_x_utils as my_utils ;"
         );
 
         // A third-party target.
@@ -371,14 +375,14 @@
         )?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_utils as utils ; extern crate serde ;"
+            "extern crate some_project_x_utils as utils ; extern crate serde ;"
         );
 
         // Problematic target name.
         let expanded = expand_imports(parse_quote! { "//some_project:thing-types"; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_thing_dash_types as thing_dash_types ;"
+            "extern crate some_project_x_thing_d_types as thing_d_types ;"
         );
 
         // Problematic target name with alias.
@@ -388,14 +392,14 @@
         )?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_colon_thing_dash_types as types ;"
+            "extern crate some_project_x_thing_d_types as types ;"
         );
 
         // Problematic package name.
         let expanded = expand_imports(parse_quote! { "//some_project-prototype:utils"; }, &mode)?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_dash_prototype_colon_utils as utils ;"
+            "extern crate some_project_d_prototype_x_utils as utils ;"
         );
 
         // Problematic package and target names.
@@ -405,7 +409,7 @@
         )?;
         assert_eq!(
             expanded.to_string(),
-            "extern crate some_project_dash_prototype_colon_thing_dash_types as thing_dash_types ;"
+            "extern crate some_project_d_prototype_x_thing_d_types as thing_d_types ;"
         );
 
         Ok(())
@@ -522,17 +526,41 @@
     }
 
     #[test]
+    fn test_substitutions_concatenate() -> Result<()> {
+        // Every combination of orig + orig, orig + encoded, encoded + orig, and
+        // encoded + encoded round trips the encoding successfully.
+        for s in SUBSTITUTIONS.0.iter().chain(SUBSTITUTIONS.1.iter()) {
+            for t in SUBSTITUTIONS.0.iter().chain(SUBSTITUTIONS.1.iter()) {
+                let concatenated = format!("{}{}", s, t);
+                assert_eq!(&decode(&encode(&concatenated)), &concatenated);
+            }
+        }
+
+        Ok(())
+    }
+
+    #[test]
     fn test_encode() -> Result<()> {
-        assert_eq!(encode("some_project:utils"), "some_project_colon_utils");
-        assert_eq!(&encode("_quotedot_"), "_quotequote_dot_");
+        assert_eq!(encode("some_project:utils"), "some_project_x_utils");
+        assert_eq!(&encode("_zpd_"), "_zz_pd_");
+
+        // All the encodings should be what we expect.
+        for (orig, encoded) in SUBSTITUTIONS.0.iter().zip(SUBSTITUTIONS.1.iter()) {
+            assert_eq!(&encode(orig), encoded);
+        }
 
         Ok(())
     }
 
     #[test]
     fn test_decode() -> Result<()> {
-        assert_eq!(decode("some_project_colon_utils"), "some_project:utils");
-        assert_eq!(decode("_quotequote_dot_"), "_quotedot_");
+        assert_eq!(decode("some_project_x_utils"), "some_project:utils");
+        assert_eq!(decode("_zz_pd_"), "_zpd_");
+
+        // All the decodings should be what we expect.
+        for (orig, encoded) in SUBSTITUTIONS.0.iter().zip(SUBSTITUTIONS.1.iter()) {
+            assert_eq!(&decode(encoded), orig);
+        }
 
         Ok(())
     }
diff --git a/third_party/rules_rust/util/import/raze/BUILD.bazel b/third_party/rules_rust/util/import/raze/BUILD.bazel
deleted file mode 100644
index 2f14d0e..0000000
--- a/third_party/rules_rust/util/import/raze/BUILD.bazel
+++ /dev/null
@@ -1,75 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "aho_corasick",
-    actual = "@rules_rust_util_import__aho_corasick__0_7_15//:aho_corasick",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "lazy_static",
-    actual = "@rules_rust_util_import__lazy_static__1_4_0//:lazy_static",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "proc_macro2",
-    actual = "@rules_rust_util_import__proc_macro2__1_0_33//:proc_macro2",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "quickcheck",
-    actual = "@rules_rust_util_import__quickcheck__1_0_3//:quickcheck",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "quote",
-    actual = "@rules_rust_util_import__quote__1_0_10//:quote",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "syn",
-    actual = "@rules_rust_util_import__syn__1_0_82//:syn",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/util/import/raze/Cargo.raze.lock b/third_party/rules_rust/util/import/raze/Cargo.raze.lock
deleted file mode 100644
index 72b143b..0000000
--- a/third_party/rules_rust/util/import/raze/Cargo.raze.lock
+++ /dev/null
@@ -1,163 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "aho-corasick"
-version = "0.7.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "compile_with_bazel"
-version = "0.0.0"
-dependencies = [
- "aho-corasick",
- "lazy_static",
- "proc-macro2",
- "quickcheck",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-dependencies = [
- "log",
- "regex",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.112"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "memchr"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb37d2df5df740e582f28f8560cf425f52bb267d872fe58358eadb554909f07a"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quickcheck"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
-dependencies = [
- "env_logger",
- "log",
- "rand",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "regex"
-version = "1.4.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "syn"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
diff --git a/third_party/rules_rust/util/import/raze/Cargo.toml b/third_party/rules_rust/util/import/raze/Cargo.toml
deleted file mode 100644
index b942944..0000000
--- a/third_party/rules_rust/util/import/raze/Cargo.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-[package]
-name = "compile_with_bazel"
-version = "0.0.0"
-
-# Mandatory (or Cargo tooling is unhappy)
-[lib]
-path = "fake_lib.rs"
-
-[dependencies]
-aho-corasick = "=0.7.15"
-lazy_static = "=1.4.0"
-proc-macro2 = "=1.0.33"
-quote = "=1.0.10"
-syn = "=1.0.82"
-
-[dev-dependencies]
-quickcheck = "=1.0.3"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//util/import/raze"
-gen_workspace_prefix = "rules_rust_util_import"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = true
\ No newline at end of file
diff --git a/third_party/rules_rust/util/import/raze/crates.bzl b/third_party/rules_rust/util/import/raze/crates.bzl
deleted file mode 100644
index 7da9f98..0000000
--- a/third_party/rules_rust/util/import/raze/crates.bzl
+++ /dev/null
@@ -1,192 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_util_import_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__aho_corasick__0_7_15",
-        url = "https://crates.io/api/v1/crates/aho-corasick/0.7.15/download",
-        type = "tar.gz",
-        sha256 = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5",
-        strip_prefix = "aho-corasick-0.7.15",
-        build_file = Label("//util/import/raze/remote:BUILD.aho-corasick-0.7.15.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//util/import/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__env_logger__0_8_4",
-        url = "https://crates.io/api/v1/crates/env_logger/0.8.4/download",
-        type = "tar.gz",
-        sha256 = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3",
-        strip_prefix = "env_logger-0.8.4",
-        build_file = Label("//util/import/raze/remote:BUILD.env_logger-0.8.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__getrandom__0_2_3",
-        url = "https://crates.io/api/v1/crates/getrandom/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753",
-        strip_prefix = "getrandom-0.2.3",
-        build_file = Label("//util/import/raze/remote:BUILD.getrandom-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//util/import/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__libc__0_2_112",
-        url = "https://crates.io/api/v1/crates/libc/0.2.112/download",
-        type = "tar.gz",
-        sha256 = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125",
-        strip_prefix = "libc-0.2.112",
-        build_file = Label("//util/import/raze/remote:BUILD.libc-0.2.112.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//util/import/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__memchr__2_4_1",
-        url = "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-        type = "tar.gz",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("//util/import/raze/remote:BUILD.memchr-2.4.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__proc_macro2__1_0_33",
-        url = "https://crates.io/api/v1/crates/proc-macro2/1.0.33/download",
-        type = "tar.gz",
-        sha256 = "fb37d2df5df740e582f28f8560cf425f52bb267d872fe58358eadb554909f07a",
-        strip_prefix = "proc-macro2-1.0.33",
-        build_file = Label("//util/import/raze/remote:BUILD.proc-macro2-1.0.33.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__quickcheck__1_0_3",
-        url = "https://crates.io/api/v1/crates/quickcheck/1.0.3/download",
-        type = "tar.gz",
-        sha256 = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6",
-        strip_prefix = "quickcheck-1.0.3",
-        build_file = Label("//util/import/raze/remote:BUILD.quickcheck-1.0.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__quote__1_0_10",
-        url = "https://crates.io/api/v1/crates/quote/1.0.10/download",
-        type = "tar.gz",
-        sha256 = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05",
-        strip_prefix = "quote-1.0.10",
-        build_file = Label("//util/import/raze/remote:BUILD.quote-1.0.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__rand__0_8_4",
-        url = "https://crates.io/api/v1/crates/rand/0.8.4/download",
-        type = "tar.gz",
-        sha256 = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8",
-        strip_prefix = "rand-0.8.4",
-        build_file = Label("//util/import/raze/remote:BUILD.rand-0.8.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__rand_core__0_6_3",
-        url = "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
-        type = "tar.gz",
-        sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
-        strip_prefix = "rand_core-0.6.3",
-        build_file = Label("//util/import/raze/remote:BUILD.rand_core-0.6.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__regex__1_4_6",
-        url = "https://crates.io/api/v1/crates/regex/1.4.6/download",
-        type = "tar.gz",
-        sha256 = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759",
-        strip_prefix = "regex-1.4.6",
-        build_file = Label("//util/import/raze/remote:BUILD.regex-1.4.6.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__regex_syntax__0_6_25",
-        url = "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-        type = "tar.gz",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("//util/import/raze/remote:BUILD.regex-syntax-0.6.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__syn__1_0_82",
-        url = "https://crates.io/api/v1/crates/syn/1.0.82/download",
-        type = "tar.gz",
-        sha256 = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59",
-        strip_prefix = "syn-1.0.82",
-        build_file = Label("//util/import/raze/remote:BUILD.syn-1.0.82.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__unicode_xid__0_2_2",
-        url = "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("//util/import/raze/remote:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_util_import__wasi__0_10_2_wasi_snapshot_preview1",
-        url = "https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download",
-        type = "tar.gz",
-        sha256 = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6",
-        strip_prefix = "wasi-0.10.2+wasi-snapshot-preview1",
-        build_file = Label("//util/import/raze/remote:BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel"),
-    )
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.aho-corasick-0.7.15.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.aho-corasick-0.7.15.bazel
deleted file mode 100644
index 4fc8c0d..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.aho-corasick-0.7.15.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "aho_corasick",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=aho_corasick",
-        "manual",
-    ],
-    version = "0.7.15",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__memchr__2_4_1//:memchr",
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index 1a5adcf..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=cfg-if",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.env_logger-0.8.4.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.env_logger-0.8.4.bazel
deleted file mode 100644
index a04b02c..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.env_logger-0.8.4.bazel
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "env_logger",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "regex",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=env_logger",
-        "manual",
-    ],
-    version = "0.8.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__log__0_4_14//:log",
-        "@rules_rust_util_import__regex__1_4_6//:regex",
-    ],
-)
-
-# Unsupported target "init-twice-retains-filter" with type "test" omitted
-
-# Unsupported target "log-in-log" with type "test" omitted
-
-# Unsupported target "log_tls_dtors" with type "test" omitted
-
-# Unsupported target "regexp_filter" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.getrandom-0.2.3.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.getrandom-0.2.3.bazel
deleted file mode 100644
index 8333757..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.getrandom-0.2.3.bazel
+++ /dev/null
@@ -1,96 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "mod" with type "bench" omitted
-
-rust_library(
-    name = "getrandom",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=getrandom",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__cfg_if__1_0_0//:cfg_if",
-    ] + selects.with_or({
-        # cfg(target_os = "wasi")
-        (
-            "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            "@rules_rust_util_import__wasi__0_10_2_wasi_snapshot_preview1//:wasi",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_util_import__libc__0_2_112//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "custom" with type "test" omitted
-
-# Unsupported target "normal" with type "test" omitted
-
-# Unsupported target "rdrand" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index 5542226..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=lazy_static",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.libc-0.2.112.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.libc-0.2.112.bazel
deleted file mode 100644
index 2d8a3fe..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.libc-0.2.112.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libc_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.112",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=libc",
-        "manual",
-    ],
-    version = "0.2.112",
-    # buildifier: leave-alone
-    deps = [
-        ":libc_build_script",
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.log-0.4.14.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index 02efe53..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,93 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "log_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "value" with type "bench" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=log",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        ":log_build_script",
-        "@rules_rust_util_import__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index c8e37c3..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "memchr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-        "use_std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "memchr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=memchr",
-        "manual",
-    ],
-    version = "2.4.1",
-    # buildifier: leave-alone
-    deps = [
-        ":memchr_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.proc-macro2-1.0.33.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.proc-macro2-1.0.33.bazel
deleted file mode 100644
index 0e479f2..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.proc-macro2-1.0.33.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro2_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.33",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=proc-macro2",
-        "manual",
-    ],
-    version = "1.0.33",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro2_build_script",
-        "@rules_rust_util_import__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "features" with type "test" omitted
-
-# Unsupported target "marker" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.quickcheck-1.0.3.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.quickcheck-1.0.3.bazel
deleted file mode 100644
index a9db2b4..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.quickcheck-1.0.3.bazel
+++ /dev/null
@@ -1,74 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "btree_set_range" with type "example" omitted
-
-# Unsupported target "out_of_bounds" with type "example" omitted
-
-# Unsupported target "reverse" with type "example" omitted
-
-# Unsupported target "reverse_single" with type "example" omitted
-
-# Unsupported target "sieve" with type "example" omitted
-
-# Unsupported target "sort" with type "example" omitted
-
-rust_library(
-    name = "quickcheck",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "env_logger",
-        "log",
-        "regex",
-        "use_logging",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=quickcheck",
-        "manual",
-    ],
-    version = "1.0.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__env_logger__0_8_4//:env_logger",
-        "@rules_rust_util_import__log__0_4_14//:log",
-        "@rules_rust_util_import__rand__0_8_4//:rand",
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.quote-1.0.10.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.quote-1.0.10.bazel
deleted file mode 100644
index 040d8cb..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.quote-1.0.10.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "quote",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=quote",
-        "manual",
-    ],
-    version = "1.0.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__proc_macro2__1_0_33//:proc_macro2",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.rand-0.8.4.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.rand-0.8.4.bazel
deleted file mode 100644
index ebbb9e3..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.rand-0.8.4.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "getrandom",
-        "small_rng",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=rand",
-        "manual",
-    ],
-    version = "0.8.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__rand_core__0_6_3//:rand_core",
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.rand_core-0.6.3.bazel
deleted file mode 100644
index 1cc93d3..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.rand_core-0.6.3.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand_core",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "getrandom",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=rand_core",
-        "manual",
-    ],
-    version = "0.6.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__getrandom__0_2_3//:getrandom",
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.regex-1.4.6.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.regex-1.4.6.bazel
deleted file mode 100644
index 0957c94..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.regex-1.4.6.bazel
+++ /dev/null
@@ -1,95 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "shootout-regex-dna" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-bytes" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-cheat" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-replace" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single-cheat" with type "example" omitted
-
-rust_library(
-    name = "regex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "aho-corasick",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=regex",
-        "manual",
-    ],
-    version = "1.4.6",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_util_import__aho_corasick__0_7_15//:aho_corasick",
-        "@rules_rust_util_import__memchr__2_4_1//:memchr",
-        "@rules_rust_util_import__regex_syntax__0_6_25//:regex_syntax",
-    ],
-)
-
-# Unsupported target "backtrack" with type "test" omitted
-
-# Unsupported target "backtrack-bytes" with type "test" omitted
-
-# Unsupported target "backtrack-utf8bytes" with type "test" omitted
-
-# Unsupported target "crates-regex" with type "test" omitted
-
-# Unsupported target "default" with type "test" omitted
-
-# Unsupported target "default-bytes" with type "test" omitted
-
-# Unsupported target "nfa" with type "test" omitted
-
-# Unsupported target "nfa-bytes" with type "test" omitted
-
-# Unsupported target "nfa-utf8bytes" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.regex-syntax-0.6.25.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index 71324e7..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=regex-syntax",
-        "manual",
-    ],
-    version = "0.6.25",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.syn-1.0.82.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.syn-1.0.82.bazel
deleted file mode 100644
index 8031e00..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.syn-1.0.82.bazel
+++ /dev/null
@@ -1,157 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "syn_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.82",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "file" with type "bench" omitted
-
-# Unsupported target "rust" with type "bench" omitted
-
-rust_library(
-    name = "syn",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=syn",
-        "manual",
-    ],
-    version = "1.0.82",
-    # buildifier: leave-alone
-    deps = [
-        ":syn_build_script",
-        "@rules_rust_util_import__proc_macro2__1_0_33//:proc_macro2",
-        "@rules_rust_util_import__quote__1_0_10//:quote",
-        "@rules_rust_util_import__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "test_asyncness" with type "test" omitted
-
-# Unsupported target "test_attribute" with type "test" omitted
-
-# Unsupported target "test_derive_input" with type "test" omitted
-
-# Unsupported target "test_expr" with type "test" omitted
-
-# Unsupported target "test_generics" with type "test" omitted
-
-# Unsupported target "test_grouping" with type "test" omitted
-
-# Unsupported target "test_ident" with type "test" omitted
-
-# Unsupported target "test_item" with type "test" omitted
-
-# Unsupported target "test_iterators" with type "test" omitted
-
-# Unsupported target "test_lit" with type "test" omitted
-
-# Unsupported target "test_meta" with type "test" omitted
-
-# Unsupported target "test_parse_buffer" with type "test" omitted
-
-# Unsupported target "test_parse_stream" with type "test" omitted
-
-# Unsupported target "test_pat" with type "test" omitted
-
-# Unsupported target "test_path" with type "test" omitted
-
-# Unsupported target "test_precedence" with type "test" omitted
-
-# Unsupported target "test_receiver" with type "test" omitted
-
-# Unsupported target "test_round_trip" with type "test" omitted
-
-# Unsupported target "test_shebang" with type "test" omitted
-
-# Unsupported target "test_should_parse" with type "test" omitted
-
-# Unsupported target "test_size" with type "test" omitted
-
-# Unsupported target "test_stmt" with type "test" omitted
-
-# Unsupported target "test_token_trees" with type "test" omitted
-
-# Unsupported target "test_ty" with type "test" omitted
-
-# Unsupported target "test_visibility" with type "test" omitted
-
-# Unsupported target "zzz_stable" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index a62237c..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "xid" with type "bench" omitted
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=unicode-xid",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "exhaustive_tests" with type "test" omitted
diff --git a/third_party/rules_rust/util/import/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel b/third_party/rules_rust/util/import/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
deleted file mode 100644
index f4229fe..0000000
--- a/third_party/rules_rust/util/import/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//util/import/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR (Apache-2.0 OR MIT)"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "crate-name=wasi",
-        "manual",
-    ],
-    version = "0.10.2+wasi-snapshot-preview1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/util/process_wrapper/BUILD.bazel b/third_party/rules_rust/util/process_wrapper/BUILD.bazel
index c26d9a6..c5276dd 100644
--- a/third_party/rules_rust/util/process_wrapper/BUILD.bazel
+++ b/third_party/rules_rust/util/process_wrapper/BUILD.bazel
@@ -1,45 +1,20 @@
-load("@rules_cc//cc:defs.bzl", "cc_binary")
-load("//rust:defs.bzl", "rust_binary", "rust_test")
+load("//rust:defs.bzl", "rust_test")
 
 # buildifier: disable=bzl-visibility
-load("//rust/private:transitions.bzl", "without_process_wrapper")
+load("//rust/private:rust.bzl", "rust_binary_without_process_wrapper")
 
-alias(
+rust_binary_without_process_wrapper(
     name = "process_wrapper",
-    actual = select({
-        # This will never get used, it's only here to break the circular dependency to allow building process_wrapper
-        ":use_fake_process_wrapper": ":process_wrapper_fake",
-        "//conditions:default": ":process_wrapper_impl",
-    }),
-    visibility = ["//visibility:public"],
-)
-
-cc_binary(
-    name = "process_wrapper_fake",
-    srcs = ["fake.cc"],
-)
-
-config_setting(
-    name = "use_fake_process_wrapper",
-    flag_values = {
-        "//rust/settings:use_process_wrapper": "False",
-    },
-)
-
-# Changing the name of this rule requires a corresponding
-# change in //rust/private/rustc.bzl:925
-without_process_wrapper(
-    name = "process_wrapper_impl",
-    target = ":process_wrapper_bin",
-    visibility = ["//visibility:public"],
-)
-
-rust_binary(
-    name = "process_wrapper_bin",
     srcs = glob(["*.rs"]),
+    edition = "2018",
+    visibility = ["//visibility:public"],
+    deps = [
+        "@rules_rust_tinyjson//:tinyjson",
+    ],
 )
 
 rust_test(
     name = "process_wrapper_test",
-    crate = ":process_wrapper_bin",
+    crate = ":process_wrapper",
+    edition = "2018",
 )
diff --git a/third_party/rules_rust/util/process_wrapper/BUILD.tinyjson.bazel b/third_party/rules_rust/util/process_wrapper/BUILD.tinyjson.bazel
new file mode 100644
index 0000000..31f9da2
--- /dev/null
+++ b/third_party/rules_rust/util/process_wrapper/BUILD.tinyjson.bazel
@@ -0,0 +1,9 @@
+# buildifier: disable=bzl-visibility
+load("@rules_rust//rust/private:rust.bzl", "rust_library_without_process_wrapper")
+
+rust_library_without_process_wrapper(
+    name = "tinyjson",
+    srcs = glob(["src/*.rs"]),
+    edition = "2018",
+    visibility = ["@rules_rust//util/process_wrapper:__pkg__"],
+)
diff --git a/third_party/rules_rust/util/process_wrapper/main.rs b/third_party/rules_rust/util/process_wrapper/main.rs
index 41140a3..6d985b3 100644
--- a/third_party/rules_rust/util/process_wrapper/main.rs
+++ b/third_party/rules_rust/util/process_wrapper/main.rs
@@ -14,50 +14,115 @@
 
 mod flags;
 mod options;
+mod output;
+mod rustc;
 mod util;
 
 use std::fs::{copy, OpenOptions};
-use std::process::{exit, Command, Stdio};
+use std::io;
+use std::process::{exit, Command, ExitStatus, Stdio};
 
 use crate::options::options;
+use crate::output::{process_output, LineOutput};
+
+#[cfg(windows)]
+fn status_code(status: ExitStatus, was_killed: bool) -> i32 {
+    // On windows, there's no good way to know if the process was killed by a signal.
+    // If we killed the process, we override the code to signal success.
+    if was_killed {
+        0
+    } else {
+        status.code().unwrap_or(1)
+    }
+}
+
+#[cfg(not(windows))]
+fn status_code(status: ExitStatus, was_killed: bool) -> i32 {
+    // On unix, if code is None it means that the process was killed by a signal.
+    // https://doc.rust-lang.org/std/process/struct.ExitStatus.html#method.success
+    match status.code() {
+        Some(code) => code,
+        // If we killed the process, we expect None here
+        None if was_killed => 0,
+        // Otherwise it's some unexpected signal
+        None => 1,
+    }
+}
 
 fn main() {
     let opts = match options() {
         Err(err) => panic!("process wrapper error: {}", err),
         Ok(v) => v,
     };
-    let stdout = if let Some(stdout_file) = opts.stdout_file {
-        OpenOptions::new()
-            .create(true)
-            .truncate(true)
-            .write(true)
-            .open(stdout_file)
-            .expect("process wrapper error: unable to open stdout file")
-            .into()
-    } else {
-        Stdio::inherit()
-    };
-    let stderr = if let Some(stderr_file) = opts.stderr_file {
-        OpenOptions::new()
-            .create(true)
-            .truncate(true)
-            .write(true)
-            .open(stderr_file)
-            .expect("process wrapper error: unable to open stderr file")
-            .into()
-    } else {
-        Stdio::inherit()
-    };
-    let status = Command::new(opts.executable)
+
+    let mut child = Command::new(opts.executable)
         .args(opts.child_arguments)
         .env_clear()
         .envs(opts.child_environment)
-        .stdout(stdout)
-        .stderr(stderr)
-        .status()
+        .stdout(if let Some(stdout_file) = opts.stdout_file {
+            OpenOptions::new()
+                .create(true)
+                .truncate(true)
+                .write(true)
+                .open(stdout_file)
+                .expect("process wrapper error: unable to open stdout file")
+                .into()
+        } else {
+            Stdio::inherit()
+        })
+        .stderr(Stdio::piped())
+        .spawn()
         .expect("process wrapper error: failed to spawn child process");
 
-    if status.success() {
+    let mut stderr: Box<dyn io::Write> = if let Some(stderr_file) = opts.stderr_file {
+        Box::new(
+            OpenOptions::new()
+                .create(true)
+                .truncate(true)
+                .write(true)
+                .open(stderr_file)
+                .expect("process wrapper error: unable to open stderr file"),
+        )
+    } else {
+        Box::new(io::stderr())
+    };
+
+    let mut child_stderr = child.stderr.take().unwrap();
+
+    let mut was_killed = false;
+    let result = if let Some(format) = opts.rustc_output_format {
+        let quit_on_rmeta = opts.rustc_quit_on_rmeta;
+        // Process json rustc output and kill the subprocess when we get a signal
+        // that we emitted a metadata file.
+        let mut me = false;
+        let metadata_emitted = &mut me;
+        let result = process_output(&mut child_stderr, stderr.as_mut(), move |line| {
+            if quit_on_rmeta {
+                rustc::stop_on_rmeta_completion(line, format, metadata_emitted)
+            } else {
+                rustc::process_json(line, format)
+            }
+        });
+        if me {
+            // If recv returns Ok(), a signal was sent in this channel so we should terminate the child process.
+            // We can safely ignore the Result from kill() as we don't care if the process already terminated.
+            let _ = child.kill();
+            was_killed = true;
+        }
+        result
+    } else {
+        // Process output normally by forwarding stderr
+        process_output(&mut child_stderr, stderr.as_mut(), LineOutput::Message)
+    };
+    result.expect("process wrapper error: failed to process stderr");
+
+    let status = child
+        .wait()
+        .expect("process wrapper error: failed to wait for child process");
+    // If the child process is rustc and is killed after metadata generation, that's also a success.
+    let code = status_code(status, was_killed);
+    let success = code == 0;
+    if success {
         if let Some(tf) = opts.touch_file {
             OpenOptions::new()
                 .create(true)
@@ -75,5 +140,5 @@
         }
     }
 
-    exit(status.code().unwrap())
+    exit(code)
 }
diff --git a/third_party/rules_rust/util/process_wrapper/options.rs b/third_party/rules_rust/util/process_wrapper/options.rs
index 24bba9f..869b5c3 100644
--- a/third_party/rules_rust/util/process_wrapper/options.rs
+++ b/third_party/rules_rust/util/process_wrapper/options.rs
@@ -4,6 +4,7 @@
 use std::process::exit;
 
 use crate::flags::{FlagParseError, Flags, ParseOutcome};
+use crate::rustc;
 use crate::util::*;
 
 #[derive(Debug)]
@@ -38,12 +39,19 @@
     pub(crate) stdout_file: Option<String>,
     // If set, redirects the child process stderr to this file.
     pub(crate) stderr_file: Option<String>,
+    // If set, it configures rustc to emit an rmeta file and then
+    // quit.
+    pub(crate) rustc_quit_on_rmeta: bool,
+    // If rustc_quit_on_rmeta is set to true, this controls the
+    // output format of rustc messages.
+    pub(crate) rustc_output_format: Option<rustc::ErrorFormat>,
 }
 
 pub(crate) fn options() -> Result<Options, OptionError> {
     // Process argument list until -- is encountered.
     // Everything after is sent to the child process.
     let mut subst_mapping_raw = None;
+    let mut stable_status_file_raw = None;
     let mut volatile_status_file_raw = None;
     let mut env_file_raw = None;
     let mut arg_file_raw = None;
@@ -51,8 +59,11 @@
     let mut copy_output_raw = None;
     let mut stdout_file = None;
     let mut stderr_file = None;
+    let mut rustc_quit_on_rmeta_raw = None;
+    let mut rustc_output_format_raw = None;
     let mut flags = Flags::new();
     flags.define_repeated_flag("--subst", "", &mut subst_mapping_raw);
+    flags.define_flag("--stable-status-file", "", &mut stable_status_file_raw);
     flags.define_flag("--volatile-status-file", "", &mut volatile_status_file_raw);
     flags.define_repeated_flag(
         "--env-file",
@@ -80,6 +91,19 @@
         "Redirect subprocess stderr in this file.",
         &mut stderr_file,
     );
+    flags.define_flag(
+        "--rustc-quit-on-rmeta",
+        "If enabled, this wrapper will terminate rustc after rmeta has been emitted.",
+        &mut rustc_quit_on_rmeta_raw,
+    );
+    flags.define_flag(
+        "--rustc-output-format",
+        "Controls the rustc output format if --rustc-quit-on-rmeta is set.\n\
+        'json' will cause the json output to be output, \
+        'rendered' will extract the rendered message and print that.\n\
+        Default: `rendered`",
+        &mut rustc_output_format_raw,
+    );
 
     let mut child_args = match flags
         .parse(env::args().collect())
@@ -112,9 +136,10 @@
             Ok((key.to_owned(), v))
         })
         .collect::<Result<Vec<(String, String)>, OptionError>>()?;
-    let stamp_mappings =
+    let stable_stamp_mappings =
+        stable_status_file_raw.map_or_else(Vec::new, |s| read_stamp_status_to_array(s).unwrap());
+    let volatile_stamp_mappings =
         volatile_status_file_raw.map_or_else(Vec::new, |s| read_stamp_status_to_array(s).unwrap());
-
     let environment_file_block = env_from_files(env_file_raw.unwrap_or_default())?;
     let mut file_arguments = args_from_file(arg_file_raw.unwrap_or_default())?;
     // Process --copy-output
@@ -138,9 +163,26 @@
         })
         .transpose()?;
 
+    let rustc_quit_on_rmeta = rustc_quit_on_rmeta_raw.map_or(false, |s| s == "true");
+    let rustc_output_format = rustc_output_format_raw
+        .map(|v| match v.as_str() {
+            "json" => Ok(rustc::ErrorFormat::Json),
+            "rendered" => Ok(rustc::ErrorFormat::Rendered),
+            _ => Err(OptionError::Generic(format!(
+                "invalid --rustc-output-format '{}'",
+                v
+            ))),
+        })
+        .transpose()?;
+
     // Prepare the environment variables, unifying those read from files with the ones
     // of the current process.
-    let vars = environment_block(environment_file_block, &stamp_mappings, &subst_mappings);
+    let vars = environment_block(
+        environment_file_block,
+        &stable_stamp_mappings,
+        &volatile_stamp_mappings,
+        &subst_mappings,
+    );
     // Append all the arguments fetched from files to those provided via command line.
     child_args.append(&mut file_arguments);
     let child_args = prepare_args(child_args, &subst_mappings);
@@ -159,13 +201,20 @@
         copy_output,
         stdout_file,
         stderr_file,
+        rustc_quit_on_rmeta,
+        rustc_output_format,
     })
 }
 
 fn args_from_file(paths: Vec<String>) -> Result<Vec<String>, OptionError> {
     let mut args = vec![];
-    for path in paths.into_iter() {
-        let mut lines = read_file_to_array(path).map_err(OptionError::Generic)?;
+    for path in paths.iter() {
+        let mut lines = read_file_to_array(path).map_err(|err| {
+            OptionError::Generic(format!(
+                "{} while processing args from file paths: {:?}",
+                err, &paths
+            ))
+        })?;
         args.append(&mut lines);
     }
     Ok(args)
@@ -174,7 +223,7 @@
 fn env_from_files(paths: Vec<String>) -> Result<HashMap<String, String>, OptionError> {
     let mut env_vars = HashMap::new();
     for path in paths.into_iter() {
-        let lines = read_file_to_array(path).map_err(OptionError::Generic)?;
+        let lines = read_file_to_array(&path).map_err(OptionError::Generic)?;
         for line in lines.into_iter() {
             let (k, v) = line
                 .split_once('=')
@@ -198,7 +247,8 @@
 
 fn environment_block(
     environment_file_block: HashMap<String, String>,
-    stamp_mappings: &[(String, String)],
+    stable_stamp_mappings: &[(String, String)],
+    volatile_stamp_mappings: &[(String, String)],
     subst_mappings: &[(String, String)],
 ) -> HashMap<String, String> {
     // Taking all environment variables from the current process
@@ -208,7 +258,7 @@
     // This is simpler than needing to track duplicates and explicitly override
     // them.
     environment_variables.extend(environment_file_block.into_iter());
-    for (f, replace_with) in stamp_mappings {
+    for (f, replace_with) in &[stable_stamp_mappings, volatile_stamp_mappings].concat() {
         for value in environment_variables.values_mut() {
             let from = format!("{{{}}}", f);
             let new = value.replace(from.as_str(), replace_with);
diff --git a/third_party/rules_rust/util/process_wrapper/output.rs b/third_party/rules_rust/util/process_wrapper/output.rs
new file mode 100644
index 0000000..84d61d9
--- /dev/null
+++ b/third_party/rules_rust/util/process_wrapper/output.rs
@@ -0,0 +1,56 @@
+// Copyright 2020 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.
+
+use std::io::{self, prelude::*};
+
+/// LineOutput tells process_output what to do when a line is processed.
+/// If a Message is returned, it will be written to write_end, if
+/// Skip is returned nothing will be printed and execution continues,
+/// if Terminate is returned, process_output returns immediately.
+/// Terminate is used to stop processing when we see an emit metadata
+/// message.
+#[derive(Debug)]
+pub(crate) enum LineOutput {
+    Message(String),
+    Skip,
+    Terminate,
+}
+
+/// process_output reads lines from read_end and invokes process_line on each.
+/// Depending on the result of process_line, the modified message may be written
+/// to write_end.
+pub(crate) fn process_output<F>(
+    read_end: &mut dyn Read,
+    write_end: &mut dyn Write,
+    mut process_line: F,
+) -> io::Result<()>
+where
+    F: FnMut(String) -> LineOutput,
+{
+    let mut reader = io::BufReader::new(read_end);
+    let mut writer = io::LineWriter::new(write_end);
+    loop {
+        let mut line = String::new();
+        let read_bytes = reader.read_line(&mut line)?;
+        if read_bytes == 0 {
+            break;
+        }
+        match process_line(line) {
+            LineOutput::Message(to_write) => writer.write_all(to_write.as_bytes())?,
+            LineOutput::Skip => {}
+            LineOutput::Terminate => return Ok(()),
+        };
+    }
+    Ok(())
+}
diff --git a/third_party/rules_rust/util/process_wrapper/rustc.rs b/third_party/rules_rust/util/process_wrapper/rustc.rs
new file mode 100644
index 0000000..ca79680
--- /dev/null
+++ b/third_party/rules_rust/util/process_wrapper/rustc.rs
@@ -0,0 +1,112 @@
+// Copyright 2020 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.
+
+use std::convert::{TryFrom, TryInto};
+
+use tinyjson::JsonValue;
+
+use crate::output::LineOutput;
+
+#[derive(Debug, Copy, Clone)]
+pub(crate) enum ErrorFormat {
+    Json,
+    Rendered,
+}
+
+impl Default for ErrorFormat {
+    fn default() -> Self {
+        Self::Rendered
+    }
+}
+
+fn get_key(value: &JsonValue, key: &str) -> Option<String> {
+    if let JsonValue::Object(map) = value {
+        if let JsonValue::String(s) = map.get(key)? {
+            Some(s.clone())
+        } else {
+            None
+        }
+    } else {
+        None
+    }
+}
+
+#[derive(Debug)]
+enum RustcMessage {
+    Emit(String),
+    Message(String),
+}
+
+impl TryFrom<JsonValue> for RustcMessage {
+    type Error = ();
+    fn try_from(val: JsonValue) -> Result<Self, Self::Error> {
+        if let Some(emit) = get_key(&val, "emit") {
+            return Ok(Self::Emit(emit));
+        }
+        if let Some(rendered) = get_key(&val, "rendered") {
+            return Ok(Self::Message(rendered));
+        }
+        Err(())
+    }
+}
+
+/// process_rustc_json takes an output line from rustc configured with
+/// --error-format=json, parses the json and returns the appropriate output
+/// according to the original --error-format supplied.
+/// Only messages are returned, emits are ignored.
+pub(crate) fn process_json(line: String, error_format: ErrorFormat) -> LineOutput {
+    let parsed: JsonValue = line
+        .parse()
+        .expect("process wrapper error: expected json messages in pipeline mode");
+    match parsed.try_into() {
+        Ok(RustcMessage::Message(msg)) => match error_format {
+            // If the output should be json, we just forward the messages as-is
+            // using `line`.
+            ErrorFormat::Json => LineOutput::Message(line),
+            // Otherwise we return the rendered field.
+            _ => LineOutput::Message(msg),
+        },
+        _ => LineOutput::Skip,
+    }
+}
+
+/// stop_on_rmeta_completion parses the json output of rustc in the same way process_rustc_json does.
+/// In addition, it will signal to stop when metadata is emitted
+/// so the compiler can be terminated.
+/// This is used to implement pipelining in rules_rust, please see
+/// https://internals.rust-lang.org/t/evaluating-pipelined-rustc-compilation/10199
+pub(crate) fn stop_on_rmeta_completion(
+    line: String,
+    error_format: ErrorFormat,
+    kill: &mut bool,
+) -> LineOutput {
+    let parsed: JsonValue = line
+        .parse()
+        .expect("process wrapper error: expected json messages in pipeline mode");
+
+    match parsed.try_into() {
+        Ok(RustcMessage::Emit(emit)) if emit == "metadata" => {
+            *kill = true;
+            LineOutput::Terminate
+        }
+        Ok(RustcMessage::Message(msg)) => match error_format {
+            // If the output should be json, we just forward the messages as-is
+            // using `line`.
+            ErrorFormat::Json => LineOutput::Message(line),
+            // Otherwise we return the rendered field.
+            _ => LineOutput::Message(msg),
+        },
+        _ => LineOutput::Skip,
+    }
+}
diff --git a/third_party/rules_rust/util/process_wrapper/util.rs b/third_party/rules_rust/util/process_wrapper/util.rs
index 4b3d6bb..89f2ded 100644
--- a/third_party/rules_rust/util/process_wrapper/util.rs
+++ b/third_party/rules_rust/util/process_wrapper/util.rs
@@ -15,8 +15,16 @@
 use std::fs::File;
 use std::io::{BufRead, BufReader, Read};
 
-pub(crate) fn read_file_to_array(path: String) -> Result<Vec<String>, String> {
-    let file = File::open(path).map_err(|e| e.to_string())?;
+pub(crate) fn read_file_to_array(path: &str) -> Result<Vec<String>, String> {
+    let file = File::open(path).map_err(|e| e.to_string()).map_err(|err| {
+        format!(
+            "{} reading path: {:?}, current directory: {:?}",
+            err,
+            path,
+            std::env::current_dir()
+        )
+    })?;
+
     read_to_array(file)
 }
 
diff --git a/third_party/rules_rust/version.bzl b/third_party/rules_rust/version.bzl
new file mode 100644
index 0000000..7e40f45
--- /dev/null
+++ b/third_party/rules_rust/version.bzl
@@ -0,0 +1,3 @@
+"""The version of rules_rust."""
+
+VERSION = "0.9.0"
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.bazel
new file mode 100644
index 0000000..16a627f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.bazel
@@ -0,0 +1,83 @@
+load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
+load("//crate_universe:defs.bzl", "crate", "crates_vendor")
+load("//wasm_bindgen:repositories.bzl", "WASM_BINDGEN_VERSION")
+
+exports_files([
+    "BUILD.wasm-bindgen-cli.bazel",
+])
+
+crates_vendor(
+    name = "crates_vendor",
+    annotations = {
+        "curl-sys": [crate.annotation(
+            gen_build_script = False,
+        )],
+        "log": [crate.annotation(
+            rustc_flags = [
+                "--cfg=atomic_cas",
+                "--cfg=use_std",
+            ],
+            version = "<5",
+        )],
+        "openssl-sys": [crate.annotation(
+            gen_build_script = False,
+            rustc_flags = [
+                # Vendored openssl is 1.0.2m
+                "--cfg=ossl101",
+                "--cfg=ossl102",
+                "--cfg=ossl102f",
+                "--cfg=ossl102h",
+                "--cfg=ossl110",
+                "--cfg=ossl110f",
+                "--cfg=ossl110g",
+                "--cfg=ossl111",
+                "--cfg=ossl111b",
+                "-l",
+                "dylib=ssl",
+                "-l",
+                "dylib=crypto",
+            ],
+        )],
+        "proc-macro2": [crate.annotation(
+            rustc_flags = ["--cfg=use_proc_macro"],
+        )],
+        "unicase": [crate.annotation(
+            rustc_flags = [
+                "--cfg=__unicase__iter_cmp",
+                "--cfg=__unicase__defauler_hasher",
+            ],
+        )],
+    },
+    cargo_lockfile = "Cargo.Bazel.lock",
+    manifests = ["@rules_rust_wasm_bindgen_cli//:Cargo.toml"],
+    mode = "remote",
+    packages = {
+        "wasm-bindgen": crate.spec(
+            version = WASM_BINDGEN_VERSION,
+        ),
+    },
+    repository_name = "rules_rust_wasm_bindgen",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasm_bindgen_cli",
+    actual = "@rules_rust_wasm_bindgen_cli",
+    tags = ["manual"],
+    visibility = ["//visibility:public"],
+)
+
+alias(
+    name = "wasm_bindgen",
+    actual = "//wasm_bindgen/3rdparty/crates:wasm-bindgen",
+    visibility = ["//visibility:public"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]) + [
+        "//wasm_bindgen/3rdparty/crates:defs.bzl",
+        "//wasm_bindgen/3rdparty/crates:crates.bzl",
+    ],
+    visibility = ["//wasm_bindgen:__pkg__"],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.wasm-bindgen-cli.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.wasm-bindgen-cli.bazel
new file mode 100644
index 0000000..7900817
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/BUILD.wasm-bindgen-cli.bazel
@@ -0,0 +1,34 @@
+load("@rules_rust//rust:defs.bzl", "rust_binary")
+load("@rules_rust//wasm_bindgen:repositories.bzl", "WASM_BINDGEN_VERSION")
+load("@rules_rust//wasm_bindgen/3rdparty/crates:defs.bzl", "aliases", "all_crate_deps")
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files([
+    "Cargo.toml",
+])
+
+# TODO: Comment on bootstrapping
+rust_binary(
+    name = "wasm-bindgen-cli",
+    srcs = glob(["**/*.rs"]),
+    aliases = aliases(),
+    crate_features = [
+    ],
+    crate_root = "src/bin/wasm-bindgen.rs",
+    data = [],
+    edition = "2018",
+    proc_macro_deps = all_crate_deps(proc_macro = True),
+    rustc_flags = [
+        # Don't produce warnings for this crate
+        "--cap-lints=allow",
+    ],
+    version = WASM_BINDGEN_VERSION,
+    deps = all_crate_deps(),
+)
+
+alias(
+    name = "rules_rust_wasm_bindgen_cli",
+    actual = ":wasm-bindgen-cli",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/Cargo.Bazel.lock b/third_party/rules_rust/wasm_bindgen/3rdparty/Cargo.Bazel.lock
new file mode 100644
index 0000000..3e11ceb
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/Cargo.Bazel.lock
@@ -0,0 +1,1451 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
+
+[[package]]
+name = "ascii"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109"
+
+[[package]]
+name = "assert_cmd"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe"
+dependencies = [
+ "bstr",
+ "doc-comment",
+ "predicates 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "base64"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "base64"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bstr"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
+dependencies = [
+ "lazy_static",
+ "memchr",
+ "regex-automata",
+]
+
+[[package]]
+name = "buf_redux"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
+dependencies = [
+ "memchr",
+ "safemem",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
+
+[[package]]
+name = "byteorder"
+version = "1.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+
+[[package]]
+name = "cc"
+version = "1.0.73"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
+dependencies = [
+ "libc",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "chunked_transfer"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+dependencies = [
+ "cfg-if",
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d"
+dependencies = [
+ "autocfg",
+ "cfg-if",
+ "crossbeam-utils",
+ "memoffset",
+ "once_cell",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.55+curl-7.83.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+
+[[package]]
+name = "difference"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+
+[[package]]
+name = "difflib"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "docopt"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "serde",
+ "strsim",
+]
+
+[[package]]
+name = "either"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be"
+
+[[package]]
+name = "env_logger"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
+dependencies = [
+ "atty",
+ "humantime",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "fastrand"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "windows-sys",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
+dependencies = [
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "httparse"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c"
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "id-arena"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "idna"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "itertools"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "leb128"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
+
+[[package]]
+name = "libc"
+version = "0.2.126"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+
+[[package]]
+name = "libz-sys"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "multipart"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
+dependencies = [
+ "buf_redux",
+ "httparse",
+ "log",
+ "mime",
+ "mime_guess",
+ "quick-error",
+ "rand",
+ "safemem",
+ "tempfile",
+ "twoway",
+]
+
+[[package]]
+name = "normalize-line-endings"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "num_threads"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "openssl"
+version = "0.10.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "618febf65336490dfcf20b73f885f5651a0c89c64c2d4a8c3662585a70bf5bd0"
+dependencies = [
+ "bitflags",
+ "cfg-if",
+ "foreign-types",
+ "libc",
+ "once_cell",
+ "openssl-macros",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "openssl-src"
+version = "111.22.0+1.1.1q"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f31f0d509d1c1ae9cada2f9539ff8f37933831fd5098879e482aa687d659853"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.75"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f"
+dependencies = [
+ "autocfg",
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+
+[[package]]
+name = "predicates"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df"
+dependencies = [
+ "difference",
+ "float-cmp",
+ "normalize-line-endings",
+ "predicates-core",
+ "regex",
+]
+
+[[package]]
+name = "predicates"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c"
+dependencies = [
+ "difflib",
+ "itertools",
+ "predicates-core",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032"
+dependencies = [
+ "predicates-core",
+ "termtree",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rayon"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
+dependencies = [
+ "autocfg",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-utils",
+ "num_cpus",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "regex"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "rouille"
+version = "3.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18b2380c42510ef4a28b5f228a174c801e0dec590103e215e60812e2e2f34d05"
+dependencies = [
+ "base64 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "chrono",
+ "filetime",
+ "multipart",
+ "num_cpus",
+ "percent-encoding",
+ "rand",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "threadpool",
+ "time",
+ "tiny_http",
+ "url",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
+
+[[package]]
+name = "ryu"
+version = "1.0.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "schannel"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2"
+dependencies = [
+ "lazy_static",
+ "windows-sys",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
+dependencies = [
+ "sha1_smol",
+]
+
+[[package]]
+name = "sha1_smol"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
+
+[[package]]
+name = "socket2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "libc",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "termtree"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b"
+
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "time"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217"
+dependencies = [
+ "libc",
+ "num_threads",
+]
+
+[[package]]
+name = "tiny_http"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39"
+dependencies = [
+ "ascii",
+ "chrono",
+ "chunked_transfer",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
+
+[[package]]
+name = "twoway"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "unicase"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
+
+[[package]]
+name = "url"
+version = "2.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "matches",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "walrus"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4eb08e48cde54c05f363d984bb54ce374f49e242def9468d2e1b6c2372d291f8"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "leb128",
+ "log",
+ "rayon",
+ "walrus-macro",
+ "wasmparser 0.77.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "walrus-macro"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-cli"
+version = "0.2.81"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "curl",
+ "diff",
+ "docopt",
+ "env_logger",
+ "log",
+ "openssl",
+ "predicates 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rayon",
+ "rouille",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen",
+ "wasm-bindgen-cli-support",
+ "wasm-bindgen-shared",
+ "wasmprinter",
+ "wit-printer",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-cli-support"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4016fbd42224de21aab2f009aeaec61067d278a298ba7f8f7f8d40fbffea0822"
+dependencies = [
+ "anyhow",
+ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log",
+ "rustc-demangle",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-externref-xform",
+ "wasm-bindgen-multi-value-xform",
+ "wasm-bindgen-shared",
+ "wasm-bindgen-threads-xform",
+ "wasm-bindgen-wasm-conventions",
+ "wasm-bindgen-wasm-interpreter",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-externref-xform"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f33c8e2d3f3b6f6647f982911eb4cb44998c8cca97a4fe7afc99f616ebb33a73"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-multi-value-xform"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7015b54357604811162710d5cf274ab85d974fe1e324222dd5b2133afdefe9b9"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be"
+
+[[package]]
+name = "wasm-bindgen-threads-xform"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6961b838d9a9c121ba4a1eea1628014cc759469e3defb42bbac9c5ed0f65be14"
+dependencies = [
+ "anyhow",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-conventions"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0a0eca38fe89471f57d6903f3e17e732d2d6f995a7af5b23f27df7fee0f0d18"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-interpreter"
+version = "0.2.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1c9fb7f71137840932bbb853ef1f83d68c88584b716c9bbae38675c9fb8b86"
+dependencies = [
+ "anyhow",
+ "log",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+
+[[package]]
+name = "wasmparser"
+version = "0.77.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b35c86d22e720a07d954ebbed772d01180501afe7d03d464f413bb5f8914a8d6"
+
+[[package]]
+name = "wasmparser"
+version = "0.83.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a"
+
+[[package]]
+name = "wasmprinter"
+version = "0.2.33"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f973822fb3ca7e03ab421910274514b405df19a3d53acb131ae4df3a2fc4eb58"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.83.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "wast"
+version = "21.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
+[[package]]
+name = "wit-parser"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
+dependencies = [
+ "anyhow",
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-printer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
+dependencies = [
+ "anyhow",
+ "wasmprinter",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-schema-version"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
+
+[[package]]
+name = "wit-text"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
+dependencies = [
+ "anyhow",
+ "wast",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-validator"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.59.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-walrus"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad559e3e4c6404b2a6a675d44129d62a3836e3b951b90112fa1c5feb852757cd"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "walrus",
+ "wit-parser",
+ "wit-schema-version",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
+dependencies = [
+ "leb128",
+ "wit-schema-version",
+]
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
new file mode 100644
index 0000000..f435c96
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.aho-corasick-0.7.18.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "aho_corasick",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.7.18",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.anyhow-1.0.58.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
new file mode 100644
index 0000000..07f7a98
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.anyhow-1.0.58.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "anyhow",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.58",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "anyhow_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.58",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "anyhow_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ascii-1.0.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ascii-1.0.0.bazel
new file mode 100644
index 0000000..b4d2927
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ascii-1.0.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 / MIT
+# ])
+
+rust_library(
+    name = "ascii",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.assert_cmd-1.0.8.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.assert_cmd-1.0.8.bazel
new file mode 100644
index 0000000..ee5f7a7
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.assert_cmd-1.0.8.bazel
@@ -0,0 +1,169 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "assert_cmd",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__bstr-0.2.17//:bstr",
+            "@rules_rust_wasm_bindgen__doc-comment-0.3.3//:doc_comment",
+            "@rules_rust_wasm_bindgen__predicates-2.1.1//:predicates",
+            "@rules_rust_wasm_bindgen__predicates-core-1.0.3//:predicates_core",
+            "@rules_rust_wasm_bindgen__predicates-tree-1.0.5//:predicates_tree",
+            "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:wait_timeout",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "bin_fixture__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/bin_fixture.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.8",
+    deps = [
+        ":assert_cmd",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__bstr-0.2.17//:bstr",
+            "@rules_rust_wasm_bindgen__doc-comment-0.3.3//:doc_comment",
+            "@rules_rust_wasm_bindgen__predicates-2.1.1//:predicates",
+            "@rules_rust_wasm_bindgen__predicates-core-1.0.3//:predicates_core",
+            "@rules_rust_wasm_bindgen__predicates-tree-1.0.5//:predicates_tree",
+            "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:wait_timeout",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel
new file mode 100644
index 0000000..f3bc4d8
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.atty-0.2.14.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "atty",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.14",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "hermit")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "hermit")'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
new file mode 100644
index 0000000..224d232
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.autocfg-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "autocfg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.13.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.13.0.bazel
new file mode 100644
index 0000000..b4c257d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.13.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "base64",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.9.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.9.3.bazel
new file mode 100644
index 0000000..aca25e3
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.base64-0.9.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "base64",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__byteorder-1.4.3//:byteorder",
+            "@rules_rust_wasm_bindgen__safemem-0.3.3//:safemem",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bazel
new file mode 100644
index 0000000..09fec3a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bazel
@@ -0,0 +1,227 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+package(default_visibility = ["//visibility:public"])
+
+exports_files(
+    [
+        "cargo-bazel.json",
+        "defs.bzl",
+        "crates.bzl",
+    ] + glob([
+        "*.bazel",
+    ]),
+)
+
+filegroup(
+    name = "srcs",
+    srcs = glob([
+        "*.bazel",
+        "*.bzl",
+    ]),
+)
+
+# Workspace Member Dependencies
+alias(
+    name = "anyhow",
+    actual = "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+    tags = ["manual"],
+)
+
+alias(
+    name = "assert_cmd",
+    actual = "@rules_rust_wasm_bindgen__assert_cmd-1.0.8//:assert_cmd",
+    tags = ["manual"],
+)
+
+alias(
+    name = "curl",
+    actual = "@rules_rust_wasm_bindgen__curl-0.4.43//:curl",
+    tags = ["manual"],
+)
+
+alias(
+    name = "diff",
+    actual = "@rules_rust_wasm_bindgen__diff-0.1.13//:diff",
+    tags = ["manual"],
+)
+
+alias(
+    name = "docopt",
+    actual = "@rules_rust_wasm_bindgen__docopt-1.1.1//:docopt",
+    tags = ["manual"],
+)
+
+alias(
+    name = "env_logger",
+    actual = "@rules_rust_wasm_bindgen__env_logger-0.8.4//:env_logger",
+    tags = ["manual"],
+)
+
+alias(
+    name = "log",
+    actual = "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+    tags = ["manual"],
+)
+
+alias(
+    name = "predicates",
+    actual = "@rules_rust_wasm_bindgen__predicates-1.0.8//:predicates",
+    tags = ["manual"],
+)
+
+alias(
+    name = "rayon",
+    actual = "@rules_rust_wasm_bindgen__rayon-1.5.3//:rayon",
+    tags = ["manual"],
+)
+
+alias(
+    name = "rouille",
+    actual = "@rules_rust_wasm_bindgen__rouille-3.5.0//:rouille",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde",
+    actual = "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde_derive",
+    actual = "@rules_rust_wasm_bindgen__serde_derive-1.0.139//:serde_derive",
+    tags = ["manual"],
+)
+
+alias(
+    name = "serde_json",
+    actual = "@rules_rust_wasm_bindgen__serde_json-1.0.82//:serde_json",
+    tags = ["manual"],
+)
+
+alias(
+    name = "tempfile",
+    actual = "@rules_rust_wasm_bindgen__tempfile-3.3.0//:tempfile",
+    tags = ["manual"],
+)
+
+alias(
+    name = "walrus",
+    actual = "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasm-bindgen",
+    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-0.2.81//:wasm_bindgen",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasm-bindgen-cli-support",
+    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.81//:wasm_bindgen_cli_support",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasm-bindgen-shared",
+    actual = "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:wasm_bindgen_shared",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wasmprinter",
+    actual = "@rules_rust_wasm_bindgen__wasmprinter-0.2.33//:wasmprinter",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wit-printer",
+    actual = "@rules_rust_wasm_bindgen__wit-printer-0.2.0//:wit_printer",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wit-text",
+    actual = "@rules_rust_wasm_bindgen__wit-text-0.8.0//:wit_text",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wit-validator",
+    actual = "@rules_rust_wasm_bindgen__wit-validator-0.2.1//:wit_validator",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wit-walrus",
+    actual = "@rules_rust_wasm_bindgen__wit-walrus-0.6.0//:wit_walrus",
+    tags = ["manual"],
+)
+
+# Binaries
+alias(
+    name = "assert_cmd__bin_fixture",
+    actual = "@rules_rust_wasm_bindgen__assert_cmd-1.0.8//:bin_fixture__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "cc__gcc-shim",
+    actual = "@rules_rust_wasm_bindgen__cc-1.0.73//:gcc-shim__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "difference__difference",
+    actual = "@rules_rust_wasm_bindgen__difference-2.0.0//:difference__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "docopt__docopt-wordlist",
+    actual = "@rules_rust_wasm_bindgen__docopt-1.1.1//:docopt-wordlist__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "leb128__leb128-repl",
+    actual = "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128-repl__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "multipart__form_test",
+    actual = "@rules_rust_wasm_bindgen__multipart-0.18.0//:form_test__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wait-timeout__exit",
+    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:exit__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wait-timeout__sleep",
+    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:sleep__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wait-timeout__reader",
+    actual = "@rules_rust_wasm_bindgen__wait-timeout-0.2.0//:reader__bin",
+    tags = ["manual"],
+)
+
+alias(
+    name = "wit-schema-version__wit-schema-version",
+    actual = "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit-schema-version__bin",
+    tags = ["manual"],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
new file mode 100644
index 0000000..9ee10b2
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bitflags-1.3.2.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bitflags",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.3.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bstr-0.2.17.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bstr-0.2.17.bazel
new file mode 100644
index 0000000..141a153
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bstr-0.2.17.bazel
@@ -0,0 +1,98 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "bstr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "regex-automata",
+        "std",
+        "unicode",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_wasm_bindgen__regex-automata-0.1.10//:regex_automata",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.buf_redux-0.8.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.buf_redux-0.8.4.bazel
new file mode 100644
index 0000000..ed026fa
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.buf_redux-0.8.4.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "buf_redux",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_wasm_bindgen__safemem-0.3.3//:safemem",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bumpalo-3.10.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bumpalo-3.10.0.bazel
new file mode 100644
index 0000000..87253b2
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.bumpalo-3.10.0.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "bumpalo",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.byteorder-1.4.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
new file mode 100644
index 0000000..44017a0
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.byteorder-1.4.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "byteorder",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cc-1.0.73.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cc-1.0.73.bazel
new file mode 100644
index 0000000..868f453
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cc-1.0.73.bazel
@@ -0,0 +1,157 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "gcc-shim__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/gcc-shim.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.73",
+    deps = [
+        ":cc",
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
new file mode 100644
index 0000000..e9e5932
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.cfg-if-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chrono-0.4.19.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chrono-0.4.19.bazel
new file mode 100644
index 0000000..fe8b62c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chrono-0.4.19.bazel
@@ -0,0 +1,110 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "chrono",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clock",
+        "libc",
+        "std",
+        "winapi",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.19",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__num-integer-0.1.45//:num_integer",
+            "@rules_rust_wasm_bindgen__num-traits-0.2.15//:num_traits",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__num-integer-0.1.45//:num_integer",
+            "@rules_rust_wasm_bindgen__num-traits-0.2.15//:num_traits",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chunked_transfer-1.4.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chunked_transfer-1.4.0.bazel
new file mode 100644
index 0000000..44eac97
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.chunked_transfer-1.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0
+# ])
+
+rust_library(
+    name = "chunked_transfer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-channel-0.5.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-channel-0.5.5.bazel
new file mode 100644
index 0000000..8117a18
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-channel-0.5.5.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_channel",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "crossbeam-utils",
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__crossbeam-utils-0.8.10//:crossbeam_utils",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-deque-0.8.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-deque-0.8.1.bazel
new file mode 100644
index 0000000..2d5ae16
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-deque-0.8.1.bazel
@@ -0,0 +1,97 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_deque",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "crossbeam-epoch",
+        "crossbeam-utils",
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__crossbeam-epoch-0.9.9//:crossbeam_epoch",
+            "@rules_rust_wasm_bindgen__crossbeam-utils-0.8.10//:crossbeam_utils",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-epoch-0.9.9.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-epoch-0.9.9.bazel
new file mode 100644
index 0000000..3563114
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-epoch-0.9.9.bazel
@@ -0,0 +1,186 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_epoch",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "once_cell",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__crossbeam-epoch-0.9.9//:build_script_build",
+            "@rules_rust_wasm_bindgen__crossbeam-utils-0.8.10//:crossbeam_utils",
+            "@rules_rust_wasm_bindgen__memoffset-0.6.5//:memoffset",
+            "@rules_rust_wasm_bindgen__once_cell-1.13.0//:once_cell",
+            "@rules_rust_wasm_bindgen__scopeguard-1.1.0//:scopeguard",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "crossbeam-epoch_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "once_cell",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.9.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "crossbeam-epoch_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel
new file mode 100644
index 0000000..f126f64
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.crossbeam-utils-0.8.10.bazel
@@ -0,0 +1,182 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "crossbeam_utils",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__crossbeam-utils-0.8.10//:build_script_build",
+            "@rules_rust_wasm_bindgen__once_cell-1.13.0//:once_cell",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "crossbeam-utils_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "once_cell",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.8.10",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "crossbeam-utils_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-0.4.43.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-0.4.43.bazel
new file mode 100644
index 0000000..715ad41
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-0.4.43.bazel
@@ -0,0 +1,230 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "curl",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "openssl-probe",
+        "openssl-sys",
+        "ssl",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.43",
+    deps = [
+    ] + select_with_or({
+        # cfg(all(unix, not(target_os = "macos")))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__openssl-probe-0.1.5//:openssl_probe",
+            "@rules_rust_wasm_bindgen__openssl-sys-0.9.75//:openssl_sys",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__curl-0.4.43//:build_script_build",
+            "@rules_rust_wasm_bindgen__curl-sys-0.4.55-curl-7.83.1//:curl_sys",
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__socket2-0.4.4//:socket2",
+        ],
+        # cfg(target_env = "msvc")
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__schannel-0.1.20//:schannel",
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__curl-0.4.43//:build_script_build",
+            "@rules_rust_wasm_bindgen__curl-sys-0.4.55-curl-7.83.1//:curl_sys",
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__socket2-0.4.4//:socket2",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__curl-0.4.43//:build_script_build",
+            "@rules_rust_wasm_bindgen__curl-sys-0.4.55-curl-7.83.1//:curl_sys",
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__socket2-0.4.4//:socket2",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "curl_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "openssl-probe",
+        "openssl-sys",
+        "ssl",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.43",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__curl-sys-0.4.55-curl-7.83.1//:curl_sys",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "curl_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-sys-0.4.55+curl-7.83.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-sys-0.4.55+curl-7.83.1.bazel
new file mode 100644
index 0000000..d79622e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.curl-sys-0.4.55+curl-7.83.1.bazel
@@ -0,0 +1,132 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "curl_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "openssl-sys",
+        "ssl",
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.55+curl-7.83.1",
+    deps = [
+    ] + select_with_or({
+        # cfg(all(unix, not(target_os = "macos")))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__openssl-sys-0.9.75//:openssl_sys",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__libz-sys-1.1.8//:libz_sys",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__libz-sys-1.1.8//:libz_sys",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__libz-sys-1.1.8//:libz_sys",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.diff-0.1.13.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.diff-0.1.13.bazel
new file mode 100644
index 0000000..57a740c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.diff-0.1.13.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "diff",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difference-2.0.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difference-2.0.0.bazel
new file mode 100644
index 0000000..31eb83f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difference-2.0.0.bazel
@@ -0,0 +1,159 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "difference",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "difference__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/main.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.0.0",
+    deps = [
+        ":difference",
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difflib-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difflib-0.4.0.bazel
new file mode 100644
index 0000000..df7d5fa
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.difflib-0.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "difflib",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.doc-comment-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.doc-comment-0.3.3.bazel
new file mode 100644
index 0000000..24c6a66
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.doc-comment-0.3.3.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "doc_comment",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__doc-comment-0.3.3//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "doc-comment_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.3",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "doc-comment_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.docopt-1.1.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.docopt-1.1.1.bazel
new file mode 100644
index 0000000..2443ad6
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.docopt-1.1.1.bazel
@@ -0,0 +1,165 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "docopt",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_wasm_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+            "@rules_rust_wasm_bindgen__strsim-0.10.0//:strsim",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "docopt-wordlist__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/wordlist.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.1",
+    deps = [
+        ":docopt",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_wasm_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+            "@rules_rust_wasm_bindgen__strsim-0.10.0//:strsim",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
new file mode 100644
index 0000000..4511e35
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.either-1.7.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "either",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
new file mode 100644
index 0000000..083a1a3
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.env_logger-0.8.4.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "env_logger",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "atty",
+        "default",
+        "humantime",
+        "regex",
+        "termcolor",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__atty-0.2.14//:atty",
+            "@rules_rust_wasm_bindgen__humantime-2.1.0//:humantime",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__regex-1.6.0//:regex",
+            "@rules_rust_wasm_bindgen__termcolor-1.1.3//:termcolor",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.fastrand-1.7.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.fastrand-1.7.0.bazel
new file mode 100644
index 0000000..1d164f4
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.fastrand-1.7.0.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "fastrand",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.0",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_arch = "wasm32")
+        (
+            "@rules_rust//rust/platform:wasm32-unknown-unknown",
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__instant-0.1.12//:instant",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.filetime-0.2.17.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.filetime-0.2.17.bazel
new file mode 100644
index 0000000..454efa1
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.filetime-0.2.17.bazel
@@ -0,0 +1,135 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "filetime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.17",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "redox")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "redox")'
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
+        #
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__windows-sys-0.36.1//:windows_sys",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.float-cmp-0.8.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.float-cmp-0.8.0.bazel
new file mode 100644
index 0000000..54281ab
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.float-cmp-0.8.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "float_cmp",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "num-traits",
+        "ratio",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__num-traits-0.2.15//:num_traits",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
new file mode 100644
index 0000000..a985668
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.form_urlencoded-1.0.1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "form_urlencoded",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__matches-0.1.9//:matches",
+            "@rules_rust_wasm_bindgen__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.getrandom-0.2.7.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
new file mode 100644
index 0000000..457c79c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.getrandom-0.2.7.bazel
@@ -0,0 +1,130 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "getrandom",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.7",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_os = "wasi")
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__wasi-0.11.0-wasi-snapshot-preview1//:wasi",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.heck-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.heck-0.3.3.bazel
new file mode 100644
index 0000000..ca3578b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.heck-0.3.3.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "heck",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__unicode-segmentation-1.9.0//:unicode_segmentation",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
new file mode 100644
index 0000000..66f549d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.hermit-abi-0.1.19.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "hermit_abi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.19",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.httparse-1.7.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.httparse-1.7.1.bazel
new file mode 100644
index 0000000..b8e40d6
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.httparse-1.7.1.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "httparse",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.7.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__httparse-1.7.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "httparse_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.7.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "httparse_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
new file mode 100644
index 0000000..a08cbae
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.humantime-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "humantime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.id-arena-2.2.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.id-arena-2.2.1.bazel
new file mode 100644
index 0000000..1a51805
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.id-arena-2.2.1.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "id_arena",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "rayon",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.2.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__rayon-1.5.3//:rayon",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.idna-0.2.3.bazel
new file mode 100644
index 0000000..6652ec6
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.idna-0.2.3.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "idna",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__matches-0.1.9//:matches",
+            "@rules_rust_wasm_bindgen__unicode-bidi-0.3.8//:unicode_bidi",
+            "@rules_rust_wasm_bindgen__unicode-normalization-0.1.21//:unicode_normalization",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.instant-0.1.12.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.instant-0.1.12.bazel
new file mode 100644
index 0000000..047c8ca
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.instant-0.1.12.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "instant",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.12",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itertools-0.10.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itertools-0.10.3.bazel
new file mode 100644
index 0000000..2574f46
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itertools-0.10.3.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "itertools",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_alloc",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__either-1.7.0//:either",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itoa-1.0.2.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itoa-1.0.2.bazel
new file mode 100644
index 0000000..d5ef0de
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.itoa-1.0.2.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "itoa",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
new file mode 100644
index 0000000..aca563c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.lazy_static-1.4.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "lazy_static",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.leb128-0.2.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.leb128-0.2.5.bazel
new file mode 100644
index 0000000..aaf777e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.leb128-0.2.5.bazel
@@ -0,0 +1,157 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0/MIT
+# ])
+
+rust_library(
+    name = "leb128",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "leb128-repl__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/leb128-repl.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.5",
+    deps = [
+        ":leb128",
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel
new file mode 100644
index 0000000..4c6b36b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libc-0.2.126.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.126",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.126",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
new file mode 100644
index 0000000..ce3481b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.libz-sys-1.1.8.bazel
@@ -0,0 +1,192 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "libz_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "libc",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__libz-sys-1.1.8//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "libz-sys_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "libc",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    links = "z",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.1.8",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        # cfg(target_env = "msvc")
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__vcpkg-0.2.15//:vcpkg",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cc-1.0.73//:cc",
+            "@rules_rust_wasm_bindgen__pkg-config-0.3.25//:pkg_config",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cc-1.0.73//:cc",
+            "@rules_rust_wasm_bindgen__pkg-config-0.3.25//:pkg_config",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "libz-sys_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel
new file mode 100644
index 0000000..2e32e7b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.log-0.4.17.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "log",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=atomic_cas",
+        "--cfg=use_std",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.17",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "log_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=atomic_cas",
+        "--cfg=use_std",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.17",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "log_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.matches-0.1.9.bazel
new file mode 100644
index 0000000..79404c5
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.matches-0.1.9.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "matches",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.9",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
new file mode 100644
index 0000000..b977c14
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memchr-2.5.0.bazel
@@ -0,0 +1,180 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "memchr",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memchr_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+        "use_std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.5.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memchr_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memoffset-0.6.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memoffset-0.6.5.bazel
new file mode 100644
index 0000000..46174a4
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.memoffset-0.6.5.bazel
@@ -0,0 +1,177 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "memoffset",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__memoffset-0.6.5//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "memoffset_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.6.5",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "memoffset_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime-0.3.16.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime-0.3.16.bazel
new file mode 100644
index 0000000..1df6f84
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime-0.3.16.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "mime",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.16",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime_guess-2.0.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime_guess-2.0.4.bazel
new file mode 100644
index 0000000..4b8d3af
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.mime_guess-2.0.4.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "mime_guess",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "rev-mappings",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.0.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__mime-0.3.16//:mime",
+            "@rules_rust_wasm_bindgen__mime_guess-2.0.4//:build_script_build",
+            "@rules_rust_wasm_bindgen__unicase-2.6.0//:unicase",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "mime_guess_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "rev-mappings",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.0.4",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__unicase-2.6.0//:unicase",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "mime_guess_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.multipart-0.18.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.multipart-0.18.0.bazel
new file mode 100644
index 0000000..8b2d028
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.multipart-0.18.0.bazel
@@ -0,0 +1,189 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "multipart",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "buf_redux",
+        "httparse",
+        "quick-error",
+        "safemem",
+        "server",
+        "twoway",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.18.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__buf_redux-0.8.4//:buf_redux",
+            "@rules_rust_wasm_bindgen__httparse-1.7.1//:httparse",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__mime-0.3.16//:mime",
+            "@rules_rust_wasm_bindgen__mime_guess-2.0.4//:mime_guess",
+            "@rules_rust_wasm_bindgen__quick-error-1.2.3//:quick_error",
+            "@rules_rust_wasm_bindgen__rand-0.8.5//:rand",
+            "@rules_rust_wasm_bindgen__safemem-0.3.3//:safemem",
+            "@rules_rust_wasm_bindgen__tempfile-3.3.0//:tempfile",
+            "@rules_rust_wasm_bindgen__twoway-0.1.8//:twoway",
+        ],
+    }),
+)
+
+rust_binary(
+    name = "form_test__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "buf_redux",
+        "httparse",
+        "quick-error",
+        "safemem",
+        "server",
+        "twoway",
+    ],
+    crate_root = "src/bin/form_test.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.18.0",
+    deps = [
+        ":multipart",
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__buf_redux-0.8.4//:buf_redux",
+            "@rules_rust_wasm_bindgen__httparse-1.7.1//:httparse",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__mime-0.3.16//:mime",
+            "@rules_rust_wasm_bindgen__mime_guess-2.0.4//:mime_guess",
+            "@rules_rust_wasm_bindgen__quick-error-1.2.3//:quick_error",
+            "@rules_rust_wasm_bindgen__rand-0.8.5//:rand",
+            "@rules_rust_wasm_bindgen__safemem-0.3.3//:safemem",
+            "@rules_rust_wasm_bindgen__tempfile-3.3.0//:tempfile",
+            "@rules_rust_wasm_bindgen__twoway-0.1.8//:twoway",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.normalize-line-endings-0.3.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.normalize-line-endings-0.3.0.bazel
new file mode 100644
index 0000000..ef1b01d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.normalize-line-endings-0.3.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0
+# ])
+
+rust_library(
+    name = "normalize_line_endings",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-integer-0.1.45.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
new file mode 100644
index 0000000..13d7a6a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-integer-0.1.45.bazel
@@ -0,0 +1,176 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_integer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.45",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__num-integer-0.1.45//:build_script_build",
+            "@rules_rust_wasm_bindgen__num-traits-0.2.15//:num_traits",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "num-integer_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.1.45",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "num-integer_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-traits-0.2.15.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
new file mode 100644
index 0000000..c242fad
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num-traits-0.2.15.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_traits",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__num-traits-0.2.15//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "num-traits_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.15",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "num-traits_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
new file mode 100644
index 0000000..8c4a833
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_cpus-1.13.1.bazel
@@ -0,0 +1,125 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_cpus",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.1",
+    deps = [
+    ] + select_with_or({
+        # cfg(all(any(target_arch = "x86_64", target_arch = "aarch64"), target_os = "hermit"))
+        #
+        # No supported platform triples for cfg: 'cfg(all(any(target_arch = "x86_64", target_arch = "aarch64"), target_os = "hermit"))'
+        # Skipped dependencies: [{"id":"hermit-abi 0.1.19","target":"hermit_abi"}]
+        #
+        # cfg(not(windows))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:riscv32imc-unknown-none-elf",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-unknown-unknown",
+            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_threads-0.1.6.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_threads-0.1.6.bazel
new file mode 100644
index 0000000..1d9683b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.num_threads-0.1.6.bazel
@@ -0,0 +1,106 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "num_threads",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.6",
+    deps = [
+    ] + select_with_or({
+        # cfg(any(target_os = "macos", target_os = "ios", target_os = "freebsd"))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.once_cell-1.13.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
new file mode 100644
index 0000000..af55129
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.once_cell-1.13.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "once_cell",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "race",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.13.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-probe-0.1.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-probe-0.1.5.bazel
new file mode 100644
index 0000000..ebd85ee
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-probe-0.1.5.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "openssl_probe",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-sys-0.9.75.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-sys-0.9.75.bazel
new file mode 100644
index 0000000..b858e15
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.openssl-sys-0.9.75.bazel
@@ -0,0 +1,106 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "openssl_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=ossl101",
+        "--cfg=ossl102",
+        "--cfg=ossl102f",
+        "--cfg=ossl102h",
+        "--cfg=ossl110",
+        "--cfg=ossl110f",
+        "--cfg=ossl110g",
+        "--cfg=ossl111",
+        "--cfg=ossl111b",
+        "-l",
+        "dylib=ssl",
+        "-l",
+        "dylib=crypto",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.75",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
new file mode 100644
index 0000000..b3b33c4
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.percent-encoding-2.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "percent_encoding",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
new file mode 100644
index 0000000..8b574e9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.pkg-config-0.3.25.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "pkg_config",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.25",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel
new file mode 100644
index 0000000..7a694b0
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ppv-lite86-0.2.16.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "ppv_lite86",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "simd",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.16",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-1.0.8.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-1.0.8.bazel
new file mode 100644
index 0000000..76a5de9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-1.0.8.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "predicates",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "difference",
+        "float-cmp",
+        "normalize-line-endings",
+        "regex",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__difference-2.0.0//:difference",
+            "@rules_rust_wasm_bindgen__float-cmp-0.8.0//:float_cmp",
+            "@rules_rust_wasm_bindgen__normalize-line-endings-0.3.0//:normalize_line_endings",
+            "@rules_rust_wasm_bindgen__predicates-core-1.0.3//:predicates_core",
+            "@rules_rust_wasm_bindgen__regex-1.6.0//:regex",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-2.1.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-2.1.1.bazel
new file mode 100644
index 0000000..dfba52e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-2.1.1.bazel
@@ -0,0 +1,95 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "predicates",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "diff",
+        "difflib",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.1.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__difflib-0.4.0//:difflib",
+            "@rules_rust_wasm_bindgen__itertools-0.10.3//:itertools",
+            "@rules_rust_wasm_bindgen__predicates-core-1.0.3//:predicates_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-core-1.0.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-core-1.0.3.bazel
new file mode 100644
index 0000000..5f50cc6
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-core-1.0.3.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "predicates_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-tree-1.0.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-tree-1.0.5.bazel
new file mode 100644
index 0000000..ffee98f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.predicates-tree-1.0.5.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "predicates_tree",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.5",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__predicates-core-1.0.3//:predicates_core",
+            "@rules_rust_wasm_bindgen__termtree-0.2.4//:termtree",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
new file mode 100644
index 0000000..0542dc4
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.proc-macro2-1.0.40.bazel
@@ -0,0 +1,185 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "proc_macro2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=use_proc_macro",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.40",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:build_script_build",
+            "@rules_rust_wasm_bindgen__unicode-ident-1.0.1//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "proc-macro2_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=use_proc_macro",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.40",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "proc-macro2_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quick-error-1.2.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quick-error-1.2.3.bazel
new file mode 100644
index 0000000..21c5574
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quick-error-1.2.3.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "quick_error",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.2.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel
new file mode 100644
index 0000000..a8d8da9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.quote-1.0.20.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "quote",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "quote_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "proc-macro",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.20",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "quote_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand-0.8.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand-0.8.5.bazel
new file mode 100644
index 0000000..af2097b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand-0.8.5.bazel
@@ -0,0 +1,128 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "getrandom",
+        "libc",
+        "rand_chacha",
+        "std",
+        "std_rng",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__rand_chacha-0.3.1//:rand_chacha",
+            "@rules_rust_wasm_bindgen__rand_core-0.6.3//:rand_core",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__rand_chacha-0.3.1//:rand_chacha",
+            "@rules_rust_wasm_bindgen__rand_core-0.6.3//:rand_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
new file mode 100644
index 0000000..f07dbdc
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_chacha-0.3.1.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand_chacha",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__ppv-lite86-0.2.16//:ppv_lite86",
+            "@rules_rust_wasm_bindgen__rand_core-0.6.3//:rand_core",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
new file mode 100644
index 0000000..596953a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rand_core-0.6.3.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rand_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "getrandom",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__getrandom-0.2.7//:getrandom",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-1.5.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-1.5.3.bazel
new file mode 100644
index 0000000..3ef8ea8
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-1.5.3.bazel
@@ -0,0 +1,178 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rayon",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.5.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__crossbeam-deque-0.8.1//:crossbeam_deque",
+            "@rules_rust_wasm_bindgen__either-1.7.0//:either",
+            "@rules_rust_wasm_bindgen__rayon-1.5.3//:build_script_build",
+            "@rules_rust_wasm_bindgen__rayon-core-1.9.3//:rayon_core",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "rayon_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.5.3",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__autocfg-1.1.0//:autocfg",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "rayon_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-core-1.9.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-core-1.9.3.bazel
new file mode 100644
index 0000000..6155a45
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rayon-core-1.9.3.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "rayon_core",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__crossbeam-channel-0.5.5//:crossbeam_channel",
+            "@rules_rust_wasm_bindgen__crossbeam-deque-0.8.1//:crossbeam_deque",
+            "@rules_rust_wasm_bindgen__crossbeam-utils-0.8.10//:crossbeam_utils",
+            "@rules_rust_wasm_bindgen__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_wasm_bindgen__rayon-core-1.9.3//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "rayon-core_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    links = "rayon-core",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.9.3",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "rayon-core_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel
new file mode 100644
index 0000000..09652eb
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.redox_syscall-0.2.13.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "syscall",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.13",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__bitflags-1.3.2//:bitflags",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel
new file mode 100644
index 0000000..3732a0d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-1.6.0.bazel
@@ -0,0 +1,110 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "aho-corasick",
+        "default",
+        "memchr",
+        "perf",
+        "perf-cache",
+        "perf-dfa",
+        "perf-inline",
+        "perf-literal",
+        "std",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__aho-corasick-0.7.18//:aho_corasick",
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:memchr",
+            "@rules_rust_wasm_bindgen__regex-syntax-0.6.27//:regex_syntax",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-automata-0.1.10.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-automata-0.1.10.bazel
new file mode 100644
index 0000000..bbc535e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-automata-0.1.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "regex_automata",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
new file mode 100644
index 0000000..c82f00d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.regex-syntax-0.6.27.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "regex_syntax",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "unicode",
+        "unicode-age",
+        "unicode-bool",
+        "unicode-case",
+        "unicode-gencat",
+        "unicode-perl",
+        "unicode-script",
+        "unicode-segment",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.27",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel
new file mode 100644
index 0000000..5623f29
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.remove_dir_all-0.5.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "remove_dir_all",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.5.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rouille-3.5.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rouille-3.5.0.bazel
new file mode 100644
index 0000000..c510e87
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rouille-3.5.0.bazel
@@ -0,0 +1,105 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "rouille",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__serde_derive-1.0.139//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.5.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__base64-0.13.0//:base64",
+            "@rules_rust_wasm_bindgen__chrono-0.4.19//:chrono",
+            "@rules_rust_wasm_bindgen__filetime-0.2.17//:filetime",
+            "@rules_rust_wasm_bindgen__multipart-0.18.0//:multipart",
+            "@rules_rust_wasm_bindgen__num_cpus-1.13.1//:num_cpus",
+            "@rules_rust_wasm_bindgen__percent-encoding-2.1.0//:percent_encoding",
+            "@rules_rust_wasm_bindgen__rand-0.8.5//:rand",
+            "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+            "@rules_rust_wasm_bindgen__serde_json-1.0.82//:serde_json",
+            "@rules_rust_wasm_bindgen__sha1-0.6.1//:sha1",
+            "@rules_rust_wasm_bindgen__threadpool-1.8.1//:threadpool",
+            "@rules_rust_wasm_bindgen__time-0.3.11//:time",
+            "@rules_rust_wasm_bindgen__tiny_http-0.8.2//:tiny_http",
+            "@rules_rust_wasm_bindgen__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rustc-demangle-0.1.21.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rustc-demangle-0.1.21.bazel
new file mode 100644
index 0000000..f8f8a2b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.rustc-demangle-0.1.21.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "rustc_demangle",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.21",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ryu-1.0.10.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ryu-1.0.10.bazel
new file mode 100644
index 0000000..7572741
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.ryu-1.0.10.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 OR BSL-1.0
+# ])
+
+rust_library(
+    name = "ryu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.10",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.safemem-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.safemem-0.3.3.bazel
new file mode 100644
index 0000000..e9cb67a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.safemem-0.3.3.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "safemem",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.3",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.schannel-0.1.20.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.schannel-0.1.20.bazel
new file mode 100644
index 0000000..618688f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.schannel-0.1.20.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "schannel",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.20",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_wasm_bindgen__windows-sys-0.36.1//:windows_sys",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel
new file mode 100644
index 0000000..04c6ac9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.scopeguard-1.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "scopeguard",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde-1.0.139.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde-1.0.139.bazel
new file mode 100644
index 0000000..dbc8f93
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde-1.0.139.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__serde_derive-1.0.139//:serde_derive",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__serde-1.0.139//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "derive",
+        "serde_derive",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
new file mode 100644
index 0000000..2f40056
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_derive-1.0.139.bazel
@@ -0,0 +1,179 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "serde_derive",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.139",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__serde_derive-1.0.139//:build_script_build",
+            "@rules_rust_wasm_bindgen__syn-1.0.98//:syn",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_derive_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.139",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_derive_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_json-1.0.82.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
new file mode 100644
index 0000000..54bf4af
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.serde_json-1.0.82.bazel
@@ -0,0 +1,181 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "serde_json",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.82",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__itoa-1.0.2//:itoa",
+            "@rules_rust_wasm_bindgen__ryu-1.0.10//:ryu",
+            "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+            "@rules_rust_wasm_bindgen__serde_json-1.0.82//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "serde_json_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.82",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "serde_json_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1-0.6.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1-0.6.1.bazel
new file mode 100644
index 0000000..d6ec464
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1-0.6.1.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "sha1",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__sha1_smol-1.0.0//:sha1_smol",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel
new file mode 100644
index 0000000..87c2690
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.sha1_smol-1.0.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # BSD-3-Clause
+# ])
+
+rust_library(
+    name = "sha1_smol",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.socket2-0.4.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.socket2-0.4.4.bazel
new file mode 100644
index 0000000..d9f1de7
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.socket2-0.4.4.bazel
@@ -0,0 +1,127 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "socket2",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.4",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
new file mode 100644
index 0000000..3460f36
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.strsim-0.10.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "strsim",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.10.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.syn-1.0.98.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.syn-1.0.98.bazel
new file mode 100644
index 0000000..26500eb
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.syn-1.0.98.bazel
@@ -0,0 +1,197 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "syn",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.98",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__syn-1.0.98//:build_script_build",
+            "@rules_rust_wasm_bindgen__unicode-ident-1.0.1//:unicode_ident",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "syn_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "clone-impls",
+        "default",
+        "derive",
+        "extra-traits",
+        "full",
+        "parsing",
+        "printing",
+        "proc-macro",
+        "quote",
+        "visit",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "1.0.98",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "syn_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tempfile-3.3.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tempfile-3.3.0.bazel
new file mode 100644
index 0000000..62814bf
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tempfile-3.3.0.bazel
@@ -0,0 +1,142 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "tempfile",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "3.3.0",
+    deps = [
+    ] + select_with_or({
+        # cfg(any(unix, target_os = "wasi"))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__fastrand-1.7.0//:fastrand",
+            "@rules_rust_wasm_bindgen__remove_dir_all-0.5.3//:remove_dir_all",
+        ],
+        # cfg(target_os = "redox")
+        #
+        # No supported platform triples for cfg: 'cfg(target_os = "redox")'
+        # Skipped dependencies: [{"id":"redox_syscall 0.2.13","target":"syscall"}]
+        #
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__fastrand-1.7.0//:fastrand",
+            "@rules_rust_wasm_bindgen__remove_dir_all-0.5.3//:remove_dir_all",
+        ],
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__fastrand-1.7.0//:fastrand",
+            "@rules_rust_wasm_bindgen__remove_dir_all-0.5.3//:remove_dir_all",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
new file mode 100644
index 0000000..cc51832
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termcolor-1.1.3.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense OR MIT
+# ])
+
+rust_library(
+    name = "termcolor",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.1.3",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-util-0.1.5//:winapi_util",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termtree-0.2.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termtree-0.2.4.bazel
new file mode 100644
index 0000000..07707be
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.termtree-0.2.4.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT
+# ])
+
+rust_library(
+    name = "termtree",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.threadpool-1.8.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.threadpool-1.8.1.bazel
new file mode 100644
index 0000000..93447aa
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.threadpool-1.8.1.bazel
@@ -0,0 +1,91 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "threadpool",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.8.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__num_cpus-1.13.1//:num_cpus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.time-0.3.11.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.time-0.3.11.bazel
new file mode 100644
index 0000000..e2048ce
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.time-0.3.11.bazel
@@ -0,0 +1,122 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "time",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "local-offset",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2021",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.11",
+    deps = [
+    ] + select_with_or({
+        # cfg(target_family = "unix")
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+            "@rules_rust_wasm_bindgen__num_threads-0.1.6//:num_threads",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tiny_http-0.8.2.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tiny_http-0.8.2.bazel
new file mode 100644
index 0000000..e2078f9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tiny_http-0.8.2.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "tiny_http",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__ascii-1.0.0//:ascii",
+            "@rules_rust_wasm_bindgen__chrono-0.4.19//:chrono",
+            "@rules_rust_wasm_bindgen__chunked_transfer-1.4.0//:chunked_transfer",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__url-2.2.2//:url",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
new file mode 100644
index 0000000..a845e9a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec-1.6.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Zlib OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "tinyvec",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "alloc",
+        "default",
+        "tinyvec_macros",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__tinyvec_macros-0.1.0//:tinyvec_macros",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
new file mode 100644
index 0000000..4ec923b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.tinyvec_macros-0.1.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0 OR Zlib
+# ])
+
+rust_library(
+    name = "tinyvec_macros",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.twoway-0.1.8.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.twoway-0.1.8.bazel
new file mode 100644
index 0000000..e6ff61f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.twoway-0.1.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "twoway",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "use_std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__memchr-2.5.0//:memchr",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicase-2.6.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicase-2.6.0.bazel
new file mode 100644
index 0000000..9249702
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicase-2.6.0.bazel
@@ -0,0 +1,183 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicase",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=__unicase__iter_cmp",
+        "--cfg=__unicase__defauler_hasher",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__unicase-2.6.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "unicase_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+
+        # User provided rustc_flags
+        "--cfg=__unicase__iter_cmp",
+        "--cfg=__unicase__defauler_hasher",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "2.6.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__version_check-0.9.4//:version_check",
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "unicase_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
new file mode 100644
index 0000000..11bfb2c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-bidi-0.3.8.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_bidi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "hardcoded-data",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.8",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
new file mode 100644
index 0000000..b438629
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-ident-1.0.1.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_ident",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.0.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
new file mode 100644
index 0000000..28fe45b
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-normalization-0.1.21.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_normalization",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.21",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__tinyvec-1.6.0//:tinyvec",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-segmentation-1.9.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-segmentation-1.9.0.bazel
new file mode 100644
index 0000000..ff09181
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.unicode-segmentation-1.9.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "unicode_segmentation",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "1.9.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.url-2.2.2.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.url-2.2.2.bazel
new file mode 100644
index 0000000..cb219cf
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.url-2.2.2.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "url",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "2.2.2",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__form_urlencoded-1.0.1//:form_urlencoded",
+            "@rules_rust_wasm_bindgen__idna-0.2.3//:idna",
+            "@rules_rust_wasm_bindgen__matches-0.1.9//:matches",
+            "@rules_rust_wasm_bindgen__percent-encoding-2.1.0//:percent_encoding",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
new file mode 100644
index 0000000..f70f413
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.vcpkg-0.2.15.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "vcpkg",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.15",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel
new file mode 100644
index 0000000..367bf99
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.version_check-0.9.4.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "version_check",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.9.4",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wait-timeout-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wait-timeout-0.2.0.bazel
new file mode 100644
index 0000000..5e7824a
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wait-timeout-0.2.0.bazel
@@ -0,0 +1,397 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wait_timeout",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "exit__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/exit.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+        ":wait_timeout",
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "sleep__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/sleep.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+        ":wait_timeout",
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "reader__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/bin/reader.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+        ":wait_timeout",
+    ] + select_with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-apple-ios-sim",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:armv7-linux-androideabi",
+            "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__libc-0.2.126//:libc",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-0.19.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-0.19.0.bazel
new file mode 100644
index 0000000..2f97c8f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-0.19.0.bazel
@@ -0,0 +1,99 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "walrus",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "parallel",
+        "rayon",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__walrus-macro-0.19.0//:walrus_macro",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.19.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__id-arena-2.2.1//:id_arena",
+            "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__rayon-1.5.3//:rayon",
+            "@rules_rust_wasm_bindgen__wasmparser-0.77.0//:wasmparser",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-macro-0.19.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-macro-0.19.0.bazel
new file mode 100644
index 0000000..c18dbe0
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.walrus-macro-0.19.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "walrus_macro",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.19.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__heck-0.3.3//:heck",
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__syn-1.0.98//:syn",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
new file mode 100644
index 0000000..b7ee1bf
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# ])
+
+rust_library(
+    name = "wasi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.11.0+wasi-snapshot-preview1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-0.2.81.bazel
new file mode 100644
index 0000000..8e4a7d7
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-0.2.81.bazel
@@ -0,0 +1,182 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "spans",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__wasm-bindgen-macro-0.2.81//:wasm_bindgen_macro",
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__cfg-if-1.0.0//:cfg_if",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-0.2.81//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "wasm-bindgen_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "spans",
+        "std",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.81",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "wasm-bindgen_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.81.bazel
new file mode 100644
index 0000000..b5f9098
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-backend-0.2.81.bazel
@@ -0,0 +1,98 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_backend",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "spans",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__bumpalo-3.10.0//:bumpalo",
+            "@rules_rust_wasm_bindgen__lazy_static-1.4.0//:lazy_static",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__syn-1.0.98//:syn",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:wasm_bindgen_shared",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-cli-support-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-cli-support-0.2.81.bazel
new file mode 100644
index 0000000..a058842
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-cli-support-0.2.81.bazel
@@ -0,0 +1,106 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_cli_support",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__base64-0.9.3//:base64",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__rustc-demangle-0.1.21//:rustc_demangle",
+            "@rules_rust_wasm_bindgen__serde_json-1.0.82//:serde_json",
+            "@rules_rust_wasm_bindgen__tempfile-3.3.0//:tempfile",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-externref-xform-0.2.81//:wasm_bindgen_externref_xform",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-multi-value-xform-0.2.81//:wasm_bindgen_multi_value_xform",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:wasm_bindgen_shared",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-threads-xform-0.2.81//:wasm_bindgen_threads_xform",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-wasm-conventions-0.2.81//:wasm_bindgen_wasm_conventions",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-wasm-interpreter-0.2.81//:wasm_bindgen_wasm_interpreter",
+            "@rules_rust_wasm_bindgen__wit-text-0.8.0//:wit_text",
+            "@rules_rust_wasm_bindgen__wit-validator-0.2.1//:wit_validator",
+            "@rules_rust_wasm_bindgen__wit-walrus-0.6.0//:wit_walrus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-externref-xform-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-externref-xform-0.2.81.bazel
new file mode 100644
index 0000000..d8352e8
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-externref-xform-0.2.81.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_externref_xform",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.81.bazel
new file mode 100644
index 0000000..13c0e9e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-0.2.81.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_proc_macro",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_proc_macro(
+    name = "wasm_bindgen_macro",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "spans",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-macro-support-0.2.81//:wasm_bindgen_macro_support",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.81.bazel
new file mode 100644
index 0000000..3e9ac86
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-macro-support-0.2.81.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_macro_support",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "spans",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__proc-macro2-1.0.40//:proc_macro2",
+            "@rules_rust_wasm_bindgen__quote-1.0.20//:quote",
+            "@rules_rust_wasm_bindgen__syn-1.0.98//:syn",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-backend-0.2.81//:wasm_bindgen_backend",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:wasm_bindgen_shared",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-multi-value-xform-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-multi-value-xform-0.2.81.bazel
new file mode 100644
index 0000000..def5ed7
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-multi-value-xform-0.2.81.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_multi_value_xform",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.81.bazel
new file mode 100644
index 0000000..c3c6441
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-shared-0.2.81.bazel
@@ -0,0 +1,175 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_shared",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "wasm-bindgen-shared_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    links = "wasm_bindgen",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.2.81",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "wasm-bindgen-shared_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-threads-xform-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-threads-xform-0.2.81.bazel
new file mode 100644
index 0000000..4bd1ec8
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-threads-xform-0.2.81.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_threads_xform",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-wasm-conventions-0.2.81//:wasm_bindgen_wasm_conventions",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-conventions-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-conventions-0.2.81.bazel
new file mode 100644
index 0000000..1a0acd6
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-conventions-0.2.81.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_wasm_conventions",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-interpreter-0.2.81.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-interpreter-0.2.81.bazel
new file mode 100644
index 0000000..307ce8c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasm-bindgen-wasm-interpreter-0.2.81.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "wasm_bindgen_wasm_interpreter",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.81",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+            "@rules_rust_wasm_bindgen__wasm-bindgen-wasm-conventions-0.2.81//:wasm_bindgen_wasm_conventions",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.59.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.59.0.bazel
new file mode 100644
index 0000000..13de3df
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.59.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wasmparser",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.59.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.77.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.77.0.bazel
new file mode 100644
index 0000000..e4e93c1
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.77.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wasmparser",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.77.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.83.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.83.0.bazel
new file mode 100644
index 0000000..b75a0b5
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmparser-0.83.0.bazel
@@ -0,0 +1,90 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wasmparser",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.83.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmprinter-0.2.33.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmprinter-0.2.33.bazel
new file mode 100644
index 0000000..bad2b43
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wasmprinter-0.2.33.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wasmprinter",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.33",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__wasmparser-0.83.0//:wasmparser",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wast-21.0.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wast-21.0.0.bazel
new file mode 100644
index 0000000..00d9d03
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wast-21.0.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wast",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "default",
+        "wasm-module",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "21.0.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
new file mode 100644
index 0000000..a28fc09
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-0.3.9.bazel
@@ -0,0 +1,222 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "handleapi",
+        "libloaderapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "timezoneapi",
+        "winbase",
+        "wincon",
+        "wincrypt",
+        "winerror",
+        "winnt",
+        "winsock2",
+        "ws2def",
+        "ws2ipdef",
+        "ws2tcpip",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.3.9",
+    deps = [
+    ] + select_with_or({
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-i686-pc-windows-gnu 0.4.0","target":"winapi_i686_pc_windows_gnu"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"winapi-x86_64-pc-windows-gnu 0.4.0","target":"winapi_x86_64_pc_windows_gnu"}]
+        #
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "consoleapi",
+        "errhandlingapi",
+        "fileapi",
+        "handleapi",
+        "libloaderapi",
+        "minwinbase",
+        "minwindef",
+        "processenv",
+        "std",
+        "timezoneapi",
+        "winbase",
+        "wincon",
+        "wincrypt",
+        "winerror",
+        "winnt",
+        "winsock2",
+        "ws2def",
+        "ws2ipdef",
+        "ws2tcpip",
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.3.9",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..0a2b7c9
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_i686_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__winapi-i686-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-i686-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-i686-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
new file mode 100644
index 0000000..6ff925d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-util-0.1.5.bazel
@@ -0,0 +1,100 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Unlicense/MIT
+# ])
+
+rust_library(
+    name = "winapi_util",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.5",
+    deps = [
+    ] + select_with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__winapi-0.3.9//:winapi",
+
+            # Common Deps
+        ],
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
new file mode 100644
index 0000000..bc7709c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT/Apache-2.0
+# ])
+
+rust_library(
+    name = "winapi_x86_64_pc_windows_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.4.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__winapi-x86_64-pc-windows-gnu-0.4.0//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "winapi-x86_64-pc-windows-gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2015",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.4.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "winapi-x86_64-pc-windows-gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows-sys-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows-sys-0.36.1.bazel
new file mode 100644
index 0000000..67ac3d8
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows-sys-0.36.1.bazel
@@ -0,0 +1,160 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_sys",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+        "Win32",
+        "Win32_Foundation",
+        "Win32_Security",
+        "Win32_Security_Authentication",
+        "Win32_Security_Authentication_Identity",
+        "Win32_Security_Credentials",
+        "Win32_Security_Cryptography",
+        "Win32_Storage",
+        "Win32_Storage_FileSystem",
+        "Win32_System",
+        "Win32_System_Memory",
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        # aarch64-pc-windows-msvc
+        #
+        # No supported platform triples for cfg: 'aarch64-pc-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.36.1","target":"windows_aarch64_msvc"}]
+        #
+        # aarch64-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'aarch64-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_aarch64_msvc 0.36.1","target":"windows_aarch64_msvc"}]
+        #
+        # i686-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_i686_gnu 0.36.1","target":"windows_i686_gnu"}]
+        #
+        # i686-pc-windows-msvc
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__windows_i686_msvc-0.36.1//:windows_i686_msvc",
+
+            # Common Deps
+        ],
+        # i686-uwp-windows-gnu
+        #
+        # No supported platform triples for cfg: 'i686-uwp-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_i686_gnu 0.36.1","target":"windows_i686_gnu"}]
+        #
+        # i686-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'i686-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_i686_msvc 0.36.1","target":"windows_i686_msvc"}]
+        #
+        # x86_64-pc-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-pc-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.36.1","target":"windows_x86_64_gnu"}]
+        #
+        # x86_64-pc-windows-msvc
+        (
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            # Target Deps
+            "@rules_rust_wasm_bindgen__windows_x86_64_msvc-0.36.1//:windows_x86_64_msvc",
+
+            # Common Deps
+        ],
+        # x86_64-uwp-windows-gnu
+        #
+        # No supported platform triples for cfg: 'x86_64-uwp-windows-gnu'
+        # Skipped dependencies: [{"id":"windows_x86_64_gnu 0.36.1","target":"windows_x86_64_gnu"}]
+        #
+        # x86_64-uwp-windows-msvc
+        #
+        # No supported platform triples for cfg: 'x86_64-uwp-windows-msvc'
+        # Skipped dependencies: [{"id":"windows_x86_64_msvc 0.36.1","target":"windows_x86_64_msvc"}]
+        #
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel
new file mode 100644
index 0000000..4718527
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_aarch64_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_aarch64_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__windows_aarch64_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_aarch64_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_aarch64_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.36.1.bazel
new file mode 100644
index 0000000..87e7e1f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_gnu-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_i686_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__windows_i686_gnu-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_i686_gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_i686_gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.36.1.bazel
new file mode 100644
index 0000000..fdc1347
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_i686_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_i686_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__windows_i686_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_i686_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_i686_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel
new file mode 100644
index 0000000..6614c4f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_gnu-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_x86_64_gnu",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__windows_x86_64_gnu-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_x86_64_gnu_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_x86_64_gnu_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel
new file mode 100644
index 0000000..d7fb64d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.windows_x86_64_msvc-0.36.1.bazel
@@ -0,0 +1,174 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+load(
+    "@rules_rust//cargo:defs.bzl",
+    "cargo_build_script",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # MIT OR Apache-2.0
+# ])
+
+rust_library(
+    name = "windows_x86_64_msvc",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.36.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__windows_x86_64_msvc-0.36.1//:build_script_build",
+        ],
+    }),
+)
+
+cargo_build_script(
+    # See comment associated with alias. Do not change this name
+    name = "windows_x86_64_msvc_build_script",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    build_script_env = {
+    },
+    compile_data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_name = "build_script_build",
+    crate_root = "build.rs",
+    data = glob(["**"]) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    tools = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    version = "0.36.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+alias(
+    # Because `cargo_build_script` does some invisible target name mutating to
+    # determine the package and crate name for a build script, the Bazel
+    # target namename of any build script cannot be the Cargo canonical name
+    # of `build_script_build` without losing out on having certain Cargo
+    # environment variables set.
+    name = "build_script_build",
+    actual = "windows_x86_64_msvc_build_script",
+    tags = [
+        "manual",
+    ],
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-parser-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-parser-0.2.0.bazel
new file mode 100644
index 0000000..0d5950f
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-parser-0.2.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_parser",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128",
+            "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit_schema_version",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-printer-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-printer-0.2.0.bazel
new file mode 100644
index 0000000..1fb790c
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-printer-0.2.0.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_printer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__wasmprinter-0.2.33//:wasmprinter",
+            "@rules_rust_wasm_bindgen__wit-parser-0.2.0//:wit_parser",
+            "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit_schema_version",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-schema-version-0.1.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-schema-version-0.1.0.bazel
new file mode 100644
index 0000000..1f0dce0
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-schema-version-0.1.0.bazel
@@ -0,0 +1,157 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_binary",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_schema_version",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
+
+rust_binary(
+    name = "wit-schema-version__bin",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/main.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.1.0",
+    deps = [
+        ":wit_schema_version",
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-text-0.8.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-text-0.8.0.bazel
new file mode 100644
index 0000000..8d63c48
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-text-0.8.0.bazel
@@ -0,0 +1,93 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_text",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.8.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__wast-21.0.0//:wast",
+            "@rules_rust_wasm_bindgen__wit-writer-0.2.0//:wit_writer",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-validator-0.2.1.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-validator-0.2.1.bazel
new file mode 100644
index 0000000..f79fa4e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-validator-0.2.1.bazel
@@ -0,0 +1,94 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_validator",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.1",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__wasmparser-0.59.0//:wasmparser",
+            "@rules_rust_wasm_bindgen__wit-parser-0.2.0//:wit_parser",
+            "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit_schema_version",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-walrus-0.6.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-walrus-0.6.0.bazel
new file mode 100644
index 0000000..74e41f7
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-walrus-0.6.0.bazel
@@ -0,0 +1,96 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_walrus",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.6.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "@rules_rust_wasm_bindgen__id-arena-2.2.1//:id_arena",
+            "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+            "@rules_rust_wasm_bindgen__wit-parser-0.2.0//:wit_parser",
+            "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit_schema_version",
+            "@rules_rust_wasm_bindgen__wit-writer-0.2.0//:wit_writer",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-writer-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-writer-0.2.0.bazel
new file mode 100644
index 0000000..df6e536
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/BUILD.wit-writer-0.2.0.bazel
@@ -0,0 +1,92 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+
+load(
+    "@bazel_skylib//lib:selects.bzl",
+    "selects",
+)
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:selects.bzl", "select_with_or")
+load(
+    "@rules_rust//rust:defs.bzl",
+    "rust_library",
+)
+
+package(default_visibility = ["//visibility:public"])
+
+# licenses([
+#     "TODO",  # Apache-2.0 WITH LLVM-exception
+# ])
+
+rust_library(
+    name = "wit_writer",
+    srcs = glob(
+        include = [
+            "**/*.rs",
+        ],
+        exclude = [
+        ],
+    ),
+    aliases = selects.with_or({
+        "//conditions:default": {
+        },
+    }),
+    compile_data = glob(
+        include = ["**"],
+        exclude = [
+            "BUILD",
+            "BUILD.bazel",
+            "WORKSPACE",
+            "WORKSPACE.bazel",
+        ],
+    ) + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    data = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    edition = "2018",
+    proc_macro_deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_env = {
+    },
+    rustc_env_files = select_with_or({
+        "//conditions:default": [
+        ],
+    }),
+    rustc_flags = [
+        # In most cases, warnings in 3rd party crates are not interesting as
+        # they're out of the control of consumers. The flag here silences
+        # warnings. For more details see:
+        # https://doc.rust-lang.org/rustc/lints/levels.html
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-bazel",
+        "manual",
+        "noclippy",
+        "norustfmt",
+    ],
+    version = "0.2.0",
+    deps = [
+    ] + select_with_or({
+        "//conditions:default": [
+            "@rules_rust_wasm_bindgen__leb128-0.2.5//:leb128",
+            "@rules_rust_wasm_bindgen__wit-schema-version-0.1.0//:wit_schema_version",
+        ],
+    }),
+)
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/crates.bzl b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/crates.bzl
new file mode 100644
index 0000000..0ae804d
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/crates.bzl
@@ -0,0 +1,25 @@
+###############################################################################
+# @generated
+# This file is auto-generated by the cargo-bazel tool.
+#
+# DO NOT MODIFY: Local changes may be replaced in future executions.
+###############################################################################
+"""Rules for defining repositories for remote `crates_vendor` repositories"""
+
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//crate_universe/private:crates_vendor.bzl", "crates_vendor_remote_repository")
+
+# buildifier: disable=bzl-visibility
+load("@rules_rust//wasm_bindgen/3rdparty/crates:defs.bzl", _crate_repositories = "crate_repositories")
+
+def crate_repositories():
+    maybe(
+        crates_vendor_remote_repository,
+        name = "rules_rust_wasm_bindgen",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.bazel"),
+        defs_module = Label("@rules_rust//wasm_bindgen/3rdparty/crates:defs.bzl"),
+    )
+
+    _crate_repositories()
diff --git a/third_party/rules_rust/wasm_bindgen/3rdparty/crates/defs.bzl b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/defs.bzl
new file mode 100644
index 0000000..6cdc8e3
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/3rdparty/crates/defs.bzl
@@ -0,0 +1,1924 @@
+###############################################################################
+# @generated
+# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
+# regenerate this file, run the following:
+#
+#     bazel run //wasm_bindgen/3rdparty:crates_vendor
+###############################################################################
+"""
+# `crates_repository` API
+
+- [aliases](#aliases)
+- [crate_deps](#crate_deps)
+- [all_crate_deps](#all_crate_deps)
+- [crate_repositories](#crate_repositories)
+
+"""
+
+load("@bazel_skylib//lib:selects.bzl", "selects")
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
+
+###############################################################################
+# MACROS API
+###############################################################################
+
+# An identifier that represent common dependencies (unconditional).
+_COMMON_CONDITION = ""
+
+def _flatten_dependency_maps(all_dependency_maps):
+    """Flatten a list of dependency maps into one dictionary.
+
+    Dependency maps have the following structure:
+
+    ```python
+    DEPENDENCIES_MAP = {
+        # The first key in the map is a Bazel package
+        # name of the workspace this file is defined in.
+        "workspace_member_package": {
+
+            # Not all dependnecies are supported for all platforms.
+            # the condition key is the condition required to be true
+            # on the host platform.
+            "condition": {
+
+                # An alias to a crate target.     # The label of the crate target the
+                # Aliases are only crate names.   # package name refers to.
+                "package_name":                   "@full//:label",
+            }
+        }
+    }
+    ```
+
+    Args:
+        all_dependency_maps (list): A list of dicts as described above
+
+    Returns:
+        dict: A dictionary as described above
+    """
+    dependencies = {}
+
+    for workspace_deps_map in all_dependency_maps:
+        for pkg_name, conditional_deps_map in workspace_deps_map.items():
+            if pkg_name not in dependencies:
+                non_frozen_map = dict()
+                for key, values in conditional_deps_map.items():
+                    non_frozen_map.update({key: dict(values.items())})
+                dependencies.setdefault(pkg_name, non_frozen_map)
+                continue
+
+            for condition, deps_map in conditional_deps_map.items():
+                # If the condition has not been recorded, do so and continue
+                if condition not in dependencies[pkg_name]:
+                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
+                    continue
+
+                # Alert on any miss-matched dependencies
+                inconsistent_entries = []
+                for crate_name, crate_label in deps_map.items():
+                    existing = dependencies[pkg_name][condition].get(crate_name)
+                    if existing and existing != crate_label:
+                        inconsistent_entries.append((crate_name, existing, crate_label))
+                    dependencies[pkg_name][condition].update({crate_name: crate_label})
+
+    return dependencies
+
+def crate_deps(deps, package_name = None):
+    """Finds the fully qualified label of the requested crates for the package where this macro is called.
+
+    Args:
+        deps (list): The desired list of crate targets.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()`.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if not deps:
+        return []
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Join both sets of dependencies
+    dependencies = _flatten_dependency_maps([
+        _NORMAL_DEPENDENCIES,
+        _NORMAL_DEV_DEPENDENCIES,
+        _PROC_MACRO_DEPENDENCIES,
+        _PROC_MACRO_DEV_DEPENDENCIES,
+        _BUILD_DEPENDENCIES,
+        _BUILD_PROC_MACRO_DEPENDENCIES,
+    ]).pop(package_name, {})
+
+    # Combine all conditional packages so we can easily index over a flat list
+    # TODO: Perhaps this should actually return select statements and maintain
+    # the conditionals of the dependencies
+    flat_deps = {}
+    for deps_set in dependencies.values():
+        for crate_name, crate_label in deps_set.items():
+            flat_deps.update({crate_name: crate_label})
+
+    missing_crates = []
+    crate_targets = []
+    for crate_target in deps:
+        if crate_target not in flat_deps:
+            missing_crates.append(crate_target)
+        else:
+            crate_targets.append(flat_deps[crate_target])
+
+    if missing_crates:
+        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
+            missing_crates,
+            package_name,
+            dependencies,
+        ))
+
+    return crate_targets
+
+def all_crate_deps(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Finds the fully qualified label of all requested direct crate dependencies \
+    for the package where this macro is called.
+
+    If no parameters are set, all normal dependencies are returned. Setting any one flag will
+    otherwise impact the contents of the returned list.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        list: A list of labels to generated rust targets (str)
+    """
+
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_dependency_maps = []
+    if normal:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+    if normal_dev:
+        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
+    if proc_macro:
+        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
+    if proc_macro_dev:
+        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
+    if build:
+        all_dependency_maps.append(_BUILD_DEPENDENCIES)
+    if build_proc_macro:
+        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
+
+    # Default to always using normal dependencies
+    if not all_dependency_maps:
+        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
+
+    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
+
+    if not dependencies:
+        if dependencies == None:
+            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
+        else:
+            return []
+
+    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
+    for condition, deps in dependencies.items():
+        crate_deps += selects.with_or({_CONDITIONS[condition]: deps.values()})
+
+    return crate_deps
+
+def aliases(
+        normal = False,
+        normal_dev = False,
+        proc_macro = False,
+        proc_macro_dev = False,
+        build = False,
+        build_proc_macro = False,
+        package_name = None):
+    """Produces a map of Crate alias names to their original label
+
+    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
+    Setting any one flag will otherwise determine the contents of the returned dict.
+
+    Args:
+        normal (bool, optional): If True, normal dependencies are included in the
+            output list.
+        normal_dev (bool, optional): If True, normla dev dependencies will be
+            included in the output list..
+        proc_macro (bool, optional): If True, proc_macro dependencies are included
+            in the output list.
+        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
+            included in the output list.
+        build (bool, optional): If True, build dependencies are included
+            in the output list.
+        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
+            included in the output list.
+        package_name (str, optional): The package name of the set of dependencies to look up.
+            Defaults to `native.package_name()` when unset.
+
+    Returns:
+        dict: The aliases of all associated packages
+    """
+    if package_name == None:
+        package_name = native.package_name()
+
+    # Determine the relevant maps to use
+    all_aliases_maps = []
+    if normal:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+    if normal_dev:
+        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
+    if proc_macro:
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+    if proc_macro_dev:
+        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
+    if build:
+        all_aliases_maps.append(_BUILD_ALIASES)
+    if build_proc_macro:
+        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
+
+    # Default to always using normal aliases
+    if not all_aliases_maps:
+        all_aliases_maps.append(_NORMAL_ALIASES)
+        all_aliases_maps.append(_PROC_MACRO_ALIASES)
+
+    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
+
+    if not aliases:
+        return dict()
+
+    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
+
+    # If there are only common items in the dictionary, immediately return them
+    if not len(aliases.keys()) == 1:
+        return dict(common_items)
+
+    # Build a single select statement where each conditional has accounted for the
+    # common set of aliases.
+    crate_aliases = {"//conditions:default": common_items}
+    for condition, deps in aliases.items():
+        condition_triples = _CONDITIONS[condition]
+        if condition_triples in crate_aliases:
+            crate_aliases[condition_triples].update(deps)
+        else:
+            crate_aliases.update({_CONDITIONS[condition]: dict(deps.items() + common_items)})
+
+    return selects.with_or(crate_aliases)
+
+###############################################################################
+# WORKSPACE MEMBER DEPS AND ALIASES
+###############################################################################
+
+_NORMAL_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "anyhow": "@rules_rust_wasm_bindgen__anyhow-1.0.58//:anyhow",
+            "curl": "@rules_rust_wasm_bindgen__curl-0.4.43//:curl",
+            "docopt": "@rules_rust_wasm_bindgen__docopt-1.1.1//:docopt",
+            "env_logger": "@rules_rust_wasm_bindgen__env_logger-0.8.4//:env_logger",
+            "log": "@rules_rust_wasm_bindgen__log-0.4.17//:log",
+            "rouille": "@rules_rust_wasm_bindgen__rouille-3.5.0//:rouille",
+            "serde": "@rules_rust_wasm_bindgen__serde-1.0.139//:serde",
+            "serde_json": "@rules_rust_wasm_bindgen__serde_json-1.0.82//:serde_json",
+            "walrus": "@rules_rust_wasm_bindgen__walrus-0.19.0//:walrus",
+            "wasm-bindgen": "@rules_rust_wasm_bindgen__wasm-bindgen-0.2.81//:wasm_bindgen",
+            "wasm-bindgen-cli-support": "@rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.81//:wasm_bindgen_cli_support",
+            "wasm-bindgen-shared": "@rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81//:wasm_bindgen_shared",
+        },
+    },
+}
+
+_NORMAL_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_NORMAL_DEV_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "assert_cmd": "@rules_rust_wasm_bindgen__assert_cmd-1.0.8//:assert_cmd",
+            "diff": "@rules_rust_wasm_bindgen__diff-0.1.13//:diff",
+            "predicates": "@rules_rust_wasm_bindgen__predicates-1.0.8//:predicates",
+            "rayon": "@rules_rust_wasm_bindgen__rayon-1.5.3//:rayon",
+            "tempfile": "@rules_rust_wasm_bindgen__tempfile-3.3.0//:tempfile",
+            "wasmprinter": "@rules_rust_wasm_bindgen__wasmprinter-0.2.33//:wasmprinter",
+            "wit-printer": "@rules_rust_wasm_bindgen__wit-printer-0.2.0//:wit_printer",
+            "wit-text": "@rules_rust_wasm_bindgen__wit-text-0.8.0//:wit_text",
+            "wit-validator": "@rules_rust_wasm_bindgen__wit-validator-0.2.1//:wit_validator",
+            "wit-walrus": "@rules_rust_wasm_bindgen__wit-walrus-0.6.0//:wit_walrus",
+        },
+    },
+}
+
+_NORMAL_DEV_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_PROC_MACRO_DEPENDENCIES = {
+    "": {
+        _COMMON_CONDITION: {
+            "serde_derive": "@rules_rust_wasm_bindgen__serde_derive-1.0.139//:serde_derive",
+        },
+    },
+}
+
+_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_PROC_MACRO_DEV_ALIASES = {
+    "": {
+        _COMMON_CONDITION: {
+        },
+    },
+}
+
+_BUILD_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_ALIASES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_DEPENDENCIES = {
+    "": {
+    },
+}
+
+_BUILD_PROC_MACRO_ALIASES = {
+    "": {
+    },
+}
+
+_CONDITIONS = {
+    "aarch64-pc-windows-msvc": [],
+    "aarch64-uwp-windows-msvc": [],
+    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
+    "cfg(all(unix, not(target_os = \"macos\")))": ["aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(any(target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "i686-apple-darwin", "i686-unknown-freebsd", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-unknown-freebsd"],
+    "cfg(any(unix, target_os = \"wasi\"))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(not(windows))": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "riscv32imc-unknown-none-elf", "s390x-unknown-linux-gnu", "wasm32-unknown-unknown", "wasm32-wasi", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(target_arch = \"wasm32\")": ["wasm32-unknown-unknown", "wasm32-wasi"],
+    "cfg(target_env = \"msvc\")": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "cfg(target_family = \"unix\")": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(target_os = \"hermit\")": [],
+    "cfg(target_os = \"redox\")": [],
+    "cfg(target_os = \"wasi\")": ["wasm32-wasi"],
+    "cfg(unix)": ["aarch64-apple-darwin", "aarch64-apple-ios", "aarch64-apple-ios-sim", "aarch64-linux-android", "aarch64-unknown-linux-gnu", "arm-unknown-linux-gnueabi", "armv7-linux-androideabi", "armv7-unknown-linux-gnueabi", "i686-apple-darwin", "i686-linux-android", "i686-unknown-freebsd", "i686-unknown-linux-gnu", "powerpc-unknown-linux-gnu", "s390x-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-apple-ios", "x86_64-linux-android", "x86_64-unknown-freebsd", "x86_64-unknown-linux-gnu"],
+    "cfg(windows)": ["i686-pc-windows-msvc", "x86_64-pc-windows-msvc"],
+    "i686-pc-windows-gnu": [],
+    "i686-pc-windows-msvc": ["i686-pc-windows-msvc"],
+    "i686-uwp-windows-gnu": [],
+    "i686-uwp-windows-msvc": [],
+    "x86_64-pc-windows-gnu": [],
+    "x86_64-pc-windows-msvc": ["x86_64-pc-windows-msvc"],
+    "x86_64-uwp-windows-gnu": [],
+    "x86_64-uwp-windows-msvc": [],
+}
+
+###############################################################################
+
+def crate_repositories():
+    """A macro for defining repositories for all generated crates"""
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__aho-corasick-0.7.18",
+        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/aho-corasick/0.7.18/download"],
+        strip_prefix = "aho-corasick-0.7.18",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.aho-corasick-0.7.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__anyhow-1.0.58",
+        sha256 = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/anyhow/1.0.58/download"],
+        strip_prefix = "anyhow-1.0.58",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.anyhow-1.0.58.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__ascii-1.0.0",
+        sha256 = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ascii/1.0.0/download"],
+        strip_prefix = "ascii-1.0.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.ascii-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__assert_cmd-1.0.8",
+        sha256 = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/assert_cmd/1.0.8/download"],
+        strip_prefix = "assert_cmd-1.0.8",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.assert_cmd-1.0.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__atty-0.2.14",
+        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/atty/0.2.14/download"],
+        strip_prefix = "atty-0.2.14",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.atty-0.2.14.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__autocfg-1.1.0",
+        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/autocfg/1.1.0/download"],
+        strip_prefix = "autocfg-1.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__base64-0.13.0",
+        sha256 = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/base64/0.13.0/download"],
+        strip_prefix = "base64-0.13.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.base64-0.13.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__base64-0.9.3",
+        sha256 = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/base64/0.9.3/download"],
+        strip_prefix = "base64-0.9.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.base64-0.9.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__bitflags-1.3.2",
+        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bitflags/1.3.2/download"],
+        strip_prefix = "bitflags-1.3.2",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__bstr-0.2.17",
+        sha256 = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bstr/0.2.17/download"],
+        strip_prefix = "bstr-0.2.17",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.bstr-0.2.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__buf_redux-0.8.4",
+        sha256 = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/buf_redux/0.8.4/download"],
+        strip_prefix = "buf_redux-0.8.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.buf_redux-0.8.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__bumpalo-3.10.0",
+        sha256 = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/bumpalo/3.10.0/download"],
+        strip_prefix = "bumpalo-3.10.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.bumpalo-3.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__byteorder-1.4.3",
+        sha256 = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/byteorder/1.4.3/download"],
+        strip_prefix = "byteorder-1.4.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.byteorder-1.4.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__cc-1.0.73",
+        sha256 = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cc/1.0.73/download"],
+        strip_prefix = "cc-1.0.73",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.cc-1.0.73.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__cfg-if-1.0.0",
+        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/cfg-if/1.0.0/download"],
+        strip_prefix = "cfg-if-1.0.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__chrono-0.4.19",
+        sha256 = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/chrono/0.4.19/download"],
+        strip_prefix = "chrono-0.4.19",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.chrono-0.4.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__chunked_transfer-1.4.0",
+        sha256 = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/chunked_transfer/1.4.0/download"],
+        strip_prefix = "chunked_transfer-1.4.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.chunked_transfer-1.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__crossbeam-channel-0.5.5",
+        sha256 = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-channel/0.5.5/download"],
+        strip_prefix = "crossbeam-channel-0.5.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.crossbeam-channel-0.5.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__crossbeam-deque-0.8.1",
+        sha256 = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-deque/0.8.1/download"],
+        strip_prefix = "crossbeam-deque-0.8.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.crossbeam-deque-0.8.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__crossbeam-epoch-0.9.9",
+        sha256 = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-epoch/0.9.9/download"],
+        strip_prefix = "crossbeam-epoch-0.9.9",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.crossbeam-epoch-0.9.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__crossbeam-utils-0.8.10",
+        sha256 = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/crossbeam-utils/0.8.10/download"],
+        strip_prefix = "crossbeam-utils-0.8.10",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.crossbeam-utils-0.8.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__curl-0.4.43",
+        sha256 = "37d855aeef205b43f65a5001e0997d81f8efca7badad4fad7d897aa7f0d0651f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/curl/0.4.43/download"],
+        strip_prefix = "curl-0.4.43",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.curl-0.4.43.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__curl-sys-0.4.55-curl-7.83.1",
+        sha256 = "23734ec77368ec583c2e61dd3f0b0e5c98b93abe6d2a004ca06b91dd7e3e2762",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/curl-sys/0.4.55+curl-7.83.1/download"],
+        strip_prefix = "curl-sys-0.4.55+curl-7.83.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.curl-sys-0.4.55+curl-7.83.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__diff-0.1.13",
+        sha256 = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/diff/0.1.13/download"],
+        strip_prefix = "diff-0.1.13",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.diff-0.1.13.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__difference-2.0.0",
+        sha256 = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/difference/2.0.0/download"],
+        strip_prefix = "difference-2.0.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.difference-2.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__difflib-0.4.0",
+        sha256 = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/difflib/0.4.0/download"],
+        strip_prefix = "difflib-0.4.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.difflib-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__doc-comment-0.3.3",
+        sha256 = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/doc-comment/0.3.3/download"],
+        strip_prefix = "doc-comment-0.3.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.doc-comment-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__docopt-1.1.1",
+        sha256 = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/docopt/1.1.1/download"],
+        strip_prefix = "docopt-1.1.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.docopt-1.1.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__either-1.7.0",
+        sha256 = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/either/1.7.0/download"],
+        strip_prefix = "either-1.7.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.either-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__env_logger-0.8.4",
+        sha256 = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/env_logger/0.8.4/download"],
+        strip_prefix = "env_logger-0.8.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.env_logger-0.8.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__fastrand-1.7.0",
+        sha256 = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/fastrand/1.7.0/download"],
+        strip_prefix = "fastrand-1.7.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.fastrand-1.7.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__filetime-0.2.17",
+        sha256 = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/filetime/0.2.17/download"],
+        strip_prefix = "filetime-0.2.17",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.filetime-0.2.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__float-cmp-0.8.0",
+        sha256 = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/float-cmp/0.8.0/download"],
+        strip_prefix = "float-cmp-0.8.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.float-cmp-0.8.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__form_urlencoded-1.0.1",
+        sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download"],
+        strip_prefix = "form_urlencoded-1.0.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.form_urlencoded-1.0.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__getrandom-0.2.7",
+        sha256 = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/getrandom/0.2.7/download"],
+        strip_prefix = "getrandom-0.2.7",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.getrandom-0.2.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__heck-0.3.3",
+        sha256 = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/heck/0.3.3/download"],
+        strip_prefix = "heck-0.3.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.heck-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__hermit-abi-0.1.19",
+        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/hermit-abi/0.1.19/download"],
+        strip_prefix = "hermit-abi-0.1.19",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.hermit-abi-0.1.19.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__httparse-1.7.1",
+        sha256 = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/httparse/1.7.1/download"],
+        strip_prefix = "httparse-1.7.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.httparse-1.7.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__humantime-2.1.0",
+        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/humantime/2.1.0/download"],
+        strip_prefix = "humantime-2.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.humantime-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__id-arena-2.2.1",
+        sha256 = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/id-arena/2.2.1/download"],
+        strip_prefix = "id-arena-2.2.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.id-arena-2.2.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__idna-0.2.3",
+        sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/idna/0.2.3/download"],
+        strip_prefix = "idna-0.2.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.idna-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__instant-0.1.12",
+        sha256 = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/instant/0.1.12/download"],
+        strip_prefix = "instant-0.1.12",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.instant-0.1.12.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__itertools-0.10.3",
+        sha256 = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itertools/0.10.3/download"],
+        strip_prefix = "itertools-0.10.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.itertools-0.10.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__itoa-1.0.2",
+        sha256 = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/itoa/1.0.2/download"],
+        strip_prefix = "itoa-1.0.2",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.itoa-1.0.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__lazy_static-1.4.0",
+        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/lazy_static/1.4.0/download"],
+        strip_prefix = "lazy_static-1.4.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__leb128-0.2.5",
+        sha256 = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/leb128/0.2.5/download"],
+        strip_prefix = "leb128-0.2.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.leb128-0.2.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__libc-0.2.126",
+        sha256 = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libc/0.2.126/download"],
+        strip_prefix = "libc-0.2.126",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.libc-0.2.126.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__libz-sys-1.1.8",
+        sha256 = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/libz-sys/1.1.8/download"],
+        strip_prefix = "libz-sys-1.1.8",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.libz-sys-1.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__log-0.4.17",
+        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/log/0.4.17/download"],
+        strip_prefix = "log-0.4.17",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.log-0.4.17.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__matches-0.1.9",
+        sha256 = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/matches/0.1.9/download"],
+        strip_prefix = "matches-0.1.9",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.matches-0.1.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__memchr-2.5.0",
+        sha256 = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memchr/2.5.0/download"],
+        strip_prefix = "memchr-2.5.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.memchr-2.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__memoffset-0.6.5",
+        sha256 = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/memoffset/0.6.5/download"],
+        strip_prefix = "memoffset-0.6.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.memoffset-0.6.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__mime-0.3.16",
+        sha256 = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/mime/0.3.16/download"],
+        strip_prefix = "mime-0.3.16",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.mime-0.3.16.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__mime_guess-2.0.4",
+        sha256 = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/mime_guess/2.0.4/download"],
+        strip_prefix = "mime_guess-2.0.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.mime_guess-2.0.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__multipart-0.18.0",
+        sha256 = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/multipart/0.18.0/download"],
+        strip_prefix = "multipart-0.18.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.multipart-0.18.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__normalize-line-endings-0.3.0",
+        sha256 = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/normalize-line-endings/0.3.0/download"],
+        strip_prefix = "normalize-line-endings-0.3.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.normalize-line-endings-0.3.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__num-integer-0.1.45",
+        sha256 = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/num-integer/0.1.45/download"],
+        strip_prefix = "num-integer-0.1.45",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.num-integer-0.1.45.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__num-traits-0.2.15",
+        sha256 = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/num-traits/0.2.15/download"],
+        strip_prefix = "num-traits-0.2.15",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.num-traits-0.2.15.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__num_cpus-1.13.1",
+        sha256 = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/num_cpus/1.13.1/download"],
+        strip_prefix = "num_cpus-1.13.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.num_cpus-1.13.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__num_threads-0.1.6",
+        sha256 = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/num_threads/0.1.6/download"],
+        strip_prefix = "num_threads-0.1.6",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.num_threads-0.1.6.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__once_cell-1.13.0",
+        sha256 = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/once_cell/1.13.0/download"],
+        strip_prefix = "once_cell-1.13.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.once_cell-1.13.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__openssl-probe-0.1.5",
+        sha256 = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/openssl-probe/0.1.5/download"],
+        strip_prefix = "openssl-probe-0.1.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.openssl-probe-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__openssl-sys-0.9.75",
+        sha256 = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/openssl-sys/0.9.75/download"],
+        strip_prefix = "openssl-sys-0.9.75",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.openssl-sys-0.9.75.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__percent-encoding-2.1.0",
+        sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/percent-encoding/2.1.0/download"],
+        strip_prefix = "percent-encoding-2.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.percent-encoding-2.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__pkg-config-0.3.25",
+        sha256 = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/pkg-config/0.3.25/download"],
+        strip_prefix = "pkg-config-0.3.25",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.pkg-config-0.3.25.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__ppv-lite86-0.2.16",
+        sha256 = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ppv-lite86/0.2.16/download"],
+        strip_prefix = "ppv-lite86-0.2.16",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.ppv-lite86-0.2.16.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__predicates-1.0.8",
+        sha256 = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/predicates/1.0.8/download"],
+        strip_prefix = "predicates-1.0.8",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.predicates-1.0.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__predicates-2.1.1",
+        sha256 = "a5aab5be6e4732b473071984b3164dbbfb7a3674d30ea5ff44410b6bcd960c3c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/predicates/2.1.1/download"],
+        strip_prefix = "predicates-2.1.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.predicates-2.1.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__predicates-core-1.0.3",
+        sha256 = "da1c2388b1513e1b605fcec39a95e0a9e8ef088f71443ef37099fa9ae6673fcb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/predicates-core/1.0.3/download"],
+        strip_prefix = "predicates-core-1.0.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.predicates-core-1.0.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__predicates-tree-1.0.5",
+        sha256 = "4d86de6de25020a36c6d3643a86d9a6a9f552107c0559c60ea03551b5e16c032",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/predicates-tree/1.0.5/download"],
+        strip_prefix = "predicates-tree-1.0.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.predicates-tree-1.0.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__proc-macro2-1.0.40",
+        sha256 = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.40/download"],
+        strip_prefix = "proc-macro2-1.0.40",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.proc-macro2-1.0.40.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__quick-error-1.2.3",
+        sha256 = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quick-error/1.2.3/download"],
+        strip_prefix = "quick-error-1.2.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.quick-error-1.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__quote-1.0.20",
+        sha256 = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/quote/1.0.20/download"],
+        strip_prefix = "quote-1.0.20",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.quote-1.0.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rand-0.8.5",
+        sha256 = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand/0.8.5/download"],
+        strip_prefix = "rand-0.8.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rand-0.8.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rand_chacha-0.3.1",
+        sha256 = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand_chacha/0.3.1/download"],
+        strip_prefix = "rand_chacha-0.3.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rand_chacha-0.3.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rand_core-0.6.3",
+        sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rand_core/0.6.3/download"],
+        strip_prefix = "rand_core-0.6.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rand_core-0.6.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rayon-1.5.3",
+        sha256 = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rayon/1.5.3/download"],
+        strip_prefix = "rayon-1.5.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rayon-1.5.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rayon-core-1.9.3",
+        sha256 = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rayon-core/1.9.3/download"],
+        strip_prefix = "rayon-core-1.9.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rayon-core-1.9.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__redox_syscall-0.2.13",
+        sha256 = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/redox_syscall/0.2.13/download"],
+        strip_prefix = "redox_syscall-0.2.13",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.redox_syscall-0.2.13.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__regex-1.6.0",
+        sha256 = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex/1.6.0/download"],
+        strip_prefix = "regex-1.6.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.regex-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__regex-automata-0.1.10",
+        sha256 = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-automata/0.1.10/download"],
+        strip_prefix = "regex-automata-0.1.10",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.regex-automata-0.1.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__regex-syntax-0.6.27",
+        sha256 = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/regex-syntax/0.6.27/download"],
+        strip_prefix = "regex-syntax-0.6.27",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.regex-syntax-0.6.27.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__remove_dir_all-0.5.3",
+        sha256 = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download"],
+        strip_prefix = "remove_dir_all-0.5.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.remove_dir_all-0.5.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rouille-3.5.0",
+        sha256 = "18b2380c42510ef4a28b5f228a174c801e0dec590103e215e60812e2e2f34d05",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rouille/3.5.0/download"],
+        strip_prefix = "rouille-3.5.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rouille-3.5.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__rustc-demangle-0.1.21",
+        sha256 = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/rustc-demangle/0.1.21/download"],
+        strip_prefix = "rustc-demangle-0.1.21",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.rustc-demangle-0.1.21.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__ryu-1.0.10",
+        sha256 = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/ryu/1.0.10/download"],
+        strip_prefix = "ryu-1.0.10",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.ryu-1.0.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__safemem-0.3.3",
+        sha256 = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/safemem/0.3.3/download"],
+        strip_prefix = "safemem-0.3.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.safemem-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__schannel-0.1.20",
+        sha256 = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/schannel/0.1.20/download"],
+        strip_prefix = "schannel-0.1.20",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.schannel-0.1.20.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__scopeguard-1.1.0",
+        sha256 = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/scopeguard/1.1.0/download"],
+        strip_prefix = "scopeguard-1.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.scopeguard-1.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__serde-1.0.139",
+        sha256 = "0171ebb889e45aa68b44aee0859b3eede84c6f5f5c228e6f140c0b2a0a46cad6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde/1.0.139/download"],
+        strip_prefix = "serde-1.0.139",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.serde-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__serde_derive-1.0.139",
+        sha256 = "dc1d3230c1de7932af58ad8ffbe1d784bd55efd5a9d84ac24f69c72d83543dfb",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_derive/1.0.139/download"],
+        strip_prefix = "serde_derive-1.0.139",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.serde_derive-1.0.139.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__serde_json-1.0.82",
+        sha256 = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/serde_json/1.0.82/download"],
+        strip_prefix = "serde_json-1.0.82",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.serde_json-1.0.82.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__sha1-0.6.1",
+        sha256 = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/sha1/0.6.1/download"],
+        strip_prefix = "sha1-0.6.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.sha1-0.6.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__sha1_smol-1.0.0",
+        sha256 = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/sha1_smol/1.0.0/download"],
+        strip_prefix = "sha1_smol-1.0.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.sha1_smol-1.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__socket2-0.4.4",
+        sha256 = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/socket2/0.4.4/download"],
+        strip_prefix = "socket2-0.4.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.socket2-0.4.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__strsim-0.10.0",
+        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/strsim/0.10.0/download"],
+        strip_prefix = "strsim-0.10.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.strsim-0.10.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__syn-1.0.98",
+        sha256 = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/syn/1.0.98/download"],
+        strip_prefix = "syn-1.0.98",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.syn-1.0.98.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__tempfile-3.3.0",
+        sha256 = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tempfile/3.3.0/download"],
+        strip_prefix = "tempfile-3.3.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.tempfile-3.3.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__termcolor-1.1.3",
+        sha256 = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termcolor/1.1.3/download"],
+        strip_prefix = "termcolor-1.1.3",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.termcolor-1.1.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__termtree-0.2.4",
+        sha256 = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/termtree/0.2.4/download"],
+        strip_prefix = "termtree-0.2.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.termtree-0.2.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__threadpool-1.8.1",
+        sha256 = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/threadpool/1.8.1/download"],
+        strip_prefix = "threadpool-1.8.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.threadpool-1.8.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__time-0.3.11",
+        sha256 = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/time/0.3.11/download"],
+        strip_prefix = "time-0.3.11",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.time-0.3.11.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__tiny_http-0.8.2",
+        sha256 = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tiny_http/0.8.2/download"],
+        strip_prefix = "tiny_http-0.8.2",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.tiny_http-0.8.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__tinyvec-1.6.0",
+        sha256 = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec/1.6.0/download"],
+        strip_prefix = "tinyvec-1.6.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.tinyvec-1.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__tinyvec_macros-0.1.0",
+        sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download"],
+        strip_prefix = "tinyvec_macros-0.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.tinyvec_macros-0.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__twoway-0.1.8",
+        sha256 = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/twoway/0.1.8/download"],
+        strip_prefix = "twoway-0.1.8",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.twoway-0.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__unicase-2.6.0",
+        sha256 = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicase/2.6.0/download"],
+        strip_prefix = "unicase-2.6.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.unicase-2.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__unicode-bidi-0.3.8",
+        sha256 = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-bidi/0.3.8/download"],
+        strip_prefix = "unicode-bidi-0.3.8",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.unicode-bidi-0.3.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__unicode-ident-1.0.1",
+        sha256 = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.1/download"],
+        strip_prefix = "unicode-ident-1.0.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.unicode-ident-1.0.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__unicode-normalization-0.1.21",
+        sha256 = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-normalization/0.1.21/download"],
+        strip_prefix = "unicode-normalization-0.1.21",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.unicode-normalization-0.1.21.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__unicode-segmentation-1.9.0",
+        sha256 = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/unicode-segmentation/1.9.0/download"],
+        strip_prefix = "unicode-segmentation-1.9.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.unicode-segmentation-1.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__url-2.2.2",
+        sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/url/2.2.2/download"],
+        strip_prefix = "url-2.2.2",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.url-2.2.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__vcpkg-0.2.15",
+        sha256 = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/vcpkg/0.2.15/download"],
+        strip_prefix = "vcpkg-0.2.15",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.vcpkg-0.2.15.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__version_check-0.9.4",
+        sha256 = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/version_check/0.9.4/download"],
+        strip_prefix = "version_check-0.9.4",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.version_check-0.9.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wait-timeout-0.2.0",
+        sha256 = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wait-timeout/0.2.0/download"],
+        strip_prefix = "wait-timeout-0.2.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wait-timeout-0.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__walrus-0.19.0",
+        sha256 = "4eb08e48cde54c05f363d984bb54ce374f49e242def9468d2e1b6c2372d291f8",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/walrus/0.19.0/download"],
+        strip_prefix = "walrus-0.19.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.walrus-0.19.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__walrus-macro-0.19.0",
+        sha256 = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/walrus-macro/0.19.0/download"],
+        strip_prefix = "walrus-macro-0.19.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.walrus-macro-0.19.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasi-0.11.0-wasi-snapshot-preview1",
+        sha256 = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasi/0.11.0+wasi-snapshot-preview1/download"],
+        strip_prefix = "wasi-0.11.0+wasi-snapshot-preview1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasi-0.11.0+wasi-snapshot-preview1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-0.2.81",
+        sha256 = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-backend-0.2.81",
+        sha256 = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-backend-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-backend-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-cli-support-0.2.81",
+        sha256 = "4016fbd42224de21aab2f009aeaec61067d278a298ba7f8f7f8d40fbffea0822",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-cli-support/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-cli-support-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-cli-support-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-externref-xform-0.2.81",
+        sha256 = "f33c8e2d3f3b6f6647f982911eb4cb44998c8cca97a4fe7afc99f616ebb33a73",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-externref-xform/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-externref-xform-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-externref-xform-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-macro-0.2.81",
+        sha256 = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-macro-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-macro-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-macro-support-0.2.81",
+        sha256 = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-macro-support-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-macro-support-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-multi-value-xform-0.2.81",
+        sha256 = "7015b54357604811162710d5cf274ab85d974fe1e324222dd5b2133afdefe9b9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-multi-value-xform/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-multi-value-xform-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-multi-value-xform-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-shared-0.2.81",
+        sha256 = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-shared-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-shared-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-threads-xform-0.2.81",
+        sha256 = "6961b838d9a9c121ba4a1eea1628014cc759469e3defb42bbac9c5ed0f65be14",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-threads-xform/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-threads-xform-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-threads-xform-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-wasm-conventions-0.2.81",
+        sha256 = "c0a0eca38fe89471f57d6903f3e17e732d2d6f995a7af5b23f27df7fee0f0d18",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-wasm-conventions/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-wasm-conventions-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-wasm-conventions-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasm-bindgen-wasm-interpreter-0.2.81",
+        sha256 = "0b1c9fb7f71137840932bbb853ef1f83d68c88584b716c9bbae38675c9fb8b86",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-wasm-interpreter/0.2.81/download"],
+        strip_prefix = "wasm-bindgen-wasm-interpreter-0.2.81",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasm-bindgen-wasm-interpreter-0.2.81.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasmparser-0.59.0",
+        sha256 = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasmparser/0.59.0/download"],
+        strip_prefix = "wasmparser-0.59.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasmparser-0.59.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasmparser-0.77.0",
+        sha256 = "b35c86d22e720a07d954ebbed772d01180501afe7d03d464f413bb5f8914a8d6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasmparser/0.77.0/download"],
+        strip_prefix = "wasmparser-0.77.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasmparser-0.77.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasmparser-0.83.0",
+        sha256 = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasmparser/0.83.0/download"],
+        strip_prefix = "wasmparser-0.83.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasmparser-0.83.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wasmprinter-0.2.33",
+        sha256 = "f973822fb3ca7e03ab421910274514b405df19a3d53acb131ae4df3a2fc4eb58",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wasmprinter/0.2.33/download"],
+        strip_prefix = "wasmprinter-0.2.33",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wasmprinter-0.2.33.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wast-21.0.0",
+        sha256 = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wast/21.0.0/download"],
+        strip_prefix = "wast-21.0.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wast-21.0.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__winapi-0.3.9",
+        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
+        strip_prefix = "winapi-0.3.9",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__winapi-i686-pc-windows-gnu-0.4.0",
+        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__winapi-util-0.1.5",
+        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.5/download"],
+        strip_prefix = "winapi-util-0.1.5",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.winapi-util-0.1.5.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__winapi-x86_64-pc-windows-gnu-0.4.0",
+        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
+        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows-sys-0.36.1",
+        sha256 = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows-sys/0.36.1/download"],
+        strip_prefix = "windows-sys-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows-sys-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows_aarch64_msvc-0.36.1",
+        sha256 = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows_aarch64_msvc/0.36.1/download"],
+        strip_prefix = "windows_aarch64_msvc-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows_aarch64_msvc-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows_i686_gnu-0.36.1",
+        sha256 = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows_i686_gnu/0.36.1/download"],
+        strip_prefix = "windows_i686_gnu-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows_i686_gnu-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows_i686_msvc-0.36.1",
+        sha256 = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows_i686_msvc/0.36.1/download"],
+        strip_prefix = "windows_i686_msvc-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows_i686_msvc-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows_x86_64_gnu-0.36.1",
+        sha256 = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows_x86_64_gnu/0.36.1/download"],
+        strip_prefix = "windows_x86_64_gnu-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows_x86_64_gnu-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__windows_x86_64_msvc-0.36.1",
+        sha256 = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/windows_x86_64_msvc/0.36.1/download"],
+        strip_prefix = "windows_x86_64_msvc-0.36.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.windows_x86_64_msvc-0.36.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-parser-0.2.0",
+        sha256 = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-parser/0.2.0/download"],
+        strip_prefix = "wit-parser-0.2.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-parser-0.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-printer-0.2.0",
+        sha256 = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-printer/0.2.0/download"],
+        strip_prefix = "wit-printer-0.2.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-printer-0.2.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-schema-version-0.1.0",
+        sha256 = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-schema-version/0.1.0/download"],
+        strip_prefix = "wit-schema-version-0.1.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-schema-version-0.1.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-text-0.8.0",
+        sha256 = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-text/0.8.0/download"],
+        strip_prefix = "wit-text-0.8.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-text-0.8.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-validator-0.2.1",
+        sha256 = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-validator/0.2.1/download"],
+        strip_prefix = "wit-validator-0.2.1",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-validator-0.2.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-walrus-0.6.0",
+        sha256 = "ad559e3e4c6404b2a6a675d44129d62a3836e3b951b90112fa1c5feb852757cd",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-walrus/0.6.0/download"],
+        strip_prefix = "wit-walrus-0.6.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-walrus-0.6.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen__wit-writer-0.2.0",
+        sha256 = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09",
+        type = "tar.gz",
+        urls = ["https://crates.io/api/v1/crates/wit-writer/0.2.0/download"],
+        strip_prefix = "wit-writer-0.2.0",
+        build_file = Label("@rules_rust//wasm_bindgen/3rdparty/crates:BUILD.wit-writer-0.2.0.bazel"),
+    )
diff --git a/third_party/rules_rust/wasm_bindgen/BUILD.bazel b/third_party/rules_rust/wasm_bindgen/BUILD.bazel
index b69c85a..1c5dade 100644
--- a/third_party/rules_rust/wasm_bindgen/BUILD.bazel
+++ b/third_party/rules_rust/wasm_bindgen/BUILD.bazel
@@ -3,27 +3,33 @@
 
 package(default_visibility = ["//visibility:public"])
 
-toolchain_type(name = "wasm_bindgen_toolchain")
-
-bzl_library(
-    name = "bzl_lib",
-    srcs = glob(["**/*.bzl"]) + ["//wasm_bindgen/raze:crates.bzl"],
-    deps = ["//rust:bzl_lib"],
+toolchain_type(
+    name = "toolchain_type",
 )
 
 alias(
-    name = "rules",
-    actual = ":bzl_lib",
-    deprecation = "Please use the `@rules_rust//wasm_bindgen:bzl_lib` target instead",
+    name = "wasm_bindgen_toolchain",
+    actual = "toolchain_type",
+    deprecation = "instead use `@rules_rust//wasm_bindgen:toolchain_type`",
+    tags = ["manual"],
+)
+
+bzl_library(
+    name = "bzl_lib",
+    srcs = glob(["**/*.bzl"]),
+    deps = [
+        "//rust:bzl_lib",
+        "//wasm_bindgen/3rdparty:bzl_lib",
+    ],
 )
 
 rust_wasm_bindgen_toolchain(
     name = "default_wasm_bindgen_toolchain_impl",
-    bindgen = "//wasm_bindgen/raze:cargo_bin_wasm_bindgen",
+    bindgen = "@rules_rust//wasm_bindgen/3rdparty:wasm_bindgen_cli",
 )
 
 toolchain(
     name = "default_wasm_bindgen_toolchain",
     toolchain = "default_wasm_bindgen_toolchain_impl",
-    toolchain_type = "//wasm_bindgen:wasm_bindgen_toolchain",
+    toolchain_type = "//wasm_bindgen:toolchain_type",
 )
diff --git a/third_party/rules_rust/wasm_bindgen/DEVELOPMENT.md b/third_party/rules_rust/wasm_bindgen/DEVELOPMENT.md
new file mode 100644
index 0000000..a68b99e
--- /dev/null
+++ b/third_party/rules_rust/wasm_bindgen/DEVELOPMENT.md
@@ -0,0 +1,12 @@
+# Developing wasm_bindgen
+
+## Updating [wasm-bindgen][wb]
+
+Use the followign steps to update to new versions of [wasm-bindgen][wb].
+
+1. Update `WASM_BINDGEN_VERSION` in `@rules_rust//wasm_bindgen:repositories.bzl`
+2. Update the sha256 value for the `rules_rust_wasm_bindgen_cli` repository defined in `@rules_rust//wasm_bindgen:repositories.bzl` to match the artifact from the updated `WASM_BINDGEN_VERSION` value.
+3. Regenerate dependencies by running `bazel run //wasm_bindgen/3rdparty:crates_vendor -- --repin` from the root of `rules_rust`.
+4. Verify your changes by running `bazel test //wasm/...` from the `rules_rust/examples` directory.
+
+[wb]: https://github.com/rustwasm/wasm-bindgen
diff --git a/third_party/rules_rust/wasm_bindgen/providers.bzl b/third_party/rules_rust/wasm_bindgen/providers.bzl
index fc7123c..74fc333 100644
--- a/third_party/rules_rust/wasm_bindgen/providers.bzl
+++ b/third_party/rules_rust/wasm_bindgen/providers.bzl
@@ -1,14 +1,10 @@
 """A module for re-exporting the providers used by the rust_wasm_bindgen rule"""
 
 load(
-    "@build_bazel_rules_nodejs//:providers.bzl",
+    "@rules_nodejs//nodejs:providers.bzl",
     _DeclarationInfo = "DeclarationInfo",
-    _JSEcmaScriptModuleInfo = "JSEcmaScriptModuleInfo",
     _JSModuleInfo = "JSModuleInfo",
-    _JSNamedModuleInfo = "JSNamedModuleInfo",
 )
 
 DeclarationInfo = _DeclarationInfo
-JSEcmaScriptModuleInfo = _JSEcmaScriptModuleInfo
 JSModuleInfo = _JSModuleInfo
-JSNamedModuleInfo = _JSNamedModuleInfo
diff --git a/third_party/rules_rust/wasm_bindgen/raze/BUILD.bazel b/third_party/rules_rust/wasm_bindgen/raze/BUILD.bazel
deleted file mode 100644
index c0f8472..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/BUILD.bazel
+++ /dev/null
@@ -1,237 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-package(default_visibility = ["//visibility:public"])
-
-licenses([
-    "notice",  # See individual crates for specific licenses
-])
-
-# Aliased targets
-alias(
-    name = "anyhow",
-    actual = "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "assert_cmd",
-    actual = "@rules_rust_wasm_bindgen__assert_cmd__1_0_8//:assert_cmd",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "curl",
-    actual = "@rules_rust_wasm_bindgen__curl__0_4_40//:curl",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "diff",
-    actual = "@rules_rust_wasm_bindgen__diff__0_1_12//:diff",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "docopt",
-    actual = "@rules_rust_wasm_bindgen__docopt__1_1_1//:docopt",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "env_logger",
-    actual = "@rules_rust_wasm_bindgen__env_logger__0_8_4//:env_logger",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "log",
-    actual = "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "predicates",
-    actual = "@rules_rust_wasm_bindgen__predicates__1_0_8//:predicates",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "rayon",
-    actual = "@rules_rust_wasm_bindgen__rayon__1_5_1//:rayon",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "rouille",
-    actual = "@rules_rust_wasm_bindgen__rouille__3_4_0//:rouille",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde",
-    actual = "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde_derive",
-    actual = "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "serde_json",
-    actual = "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "tempfile",
-    actual = "@rules_rust_wasm_bindgen__tempfile__3_2_0//:tempfile",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "walrus",
-    actual = "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wasm_bindgen",
-    actual = "@rules_rust_wasm_bindgen__wasm_bindgen__0_2_78//:wasm_bindgen",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "cargo_bin_wasm_bindgen",
-    actual = "@rules_rust_wasm_bindgen__wasm_bindgen_cli__0_2_78//:cargo_bin_wasm_bindgen",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wasm_bindgen_cli",
-    actual = "@rules_rust_wasm_bindgen__wasm_bindgen_cli__0_2_78//:wasm_bindgen_cli",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wasm_bindgen_cli_support",
-    actual = "@rules_rust_wasm_bindgen__wasm_bindgen_cli_support__0_2_78//:wasm_bindgen_cli_support",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wasm_bindgen_shared",
-    actual = "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wit_printer",
-    actual = "@rules_rust_wasm_bindgen__wit_printer__0_2_0//:wit_printer",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wit_text",
-    actual = "@rules_rust_wasm_bindgen__wit_text__0_8_0//:wit_text",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wit_validator",
-    actual = "@rules_rust_wasm_bindgen__wit_validator__0_2_1//:wit_validator",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-alias(
-    name = "wit_walrus",
-    actual = "@rules_rust_wasm_bindgen__wit_walrus__0_6_0//:wit_walrus",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-# Export file for Stardoc support
-exports_files(
-    [
-        "crates.bzl",
-    ],
-    visibility = ["//visibility:public"],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/Cargo.raze.lock b/third_party/rules_rust/wasm_bindgen/raze/Cargo.raze.lock
deleted file mode 100644
index 59cccf2..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/Cargo.raze.lock
+++ /dev/null
@@ -1,1372 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7"
-
-[[package]]
-name = "ascii"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109"
-
-[[package]]
-name = "assert_cmd"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe"
-dependencies = [
- "bstr",
- "doc-comment",
- "predicates 2.0.3",
- "predicates-core",
- "predicates-tree",
- "wait-timeout",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
-
-[[package]]
-name = "base64"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-dependencies = [
- "byteorder",
- "safemem",
-]
-
-[[package]]
-name = "base64"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bstr"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223"
-dependencies = [
- "lazy_static",
- "memchr",
- "regex-automata",
-]
-
-[[package]]
-name = "buf_redux"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
-dependencies = [
- "memchr",
- "safemem",
-]
-
-[[package]]
-name = "bumpalo"
-version = "3.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cc"
-version = "1.0.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "chrono"
-version = "0.4.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
-dependencies = [
- "libc",
- "num-integer",
- "num-traits",
- "winapi",
-]
-
-[[package]]
-name = "chunked_transfer"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
- "lazy_static",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
-dependencies = [
- "cfg-if",
- "lazy_static",
-]
-
-[[package]]
-name = "curl"
-version = "0.4.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877cc2f9b8367e32b6dabb9d581557e651cb3aa693a37f8679091bbf42687d5d"
-dependencies = [
- "curl-sys",
- "libc",
- "openssl-probe",
- "openssl-sys",
- "schannel",
- "socket2",
- "winapi",
-]
-
-[[package]]
-name = "curl-sys"
-version = "0.4.50+curl-7.79.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4856b76919dd599f31236bb18db5f5bd36e2ce131e64f857ca5c259665b76171"
-dependencies = [
- "cc",
- "libc",
- "libz-sys",
- "openssl-sys",
- "pkg-config",
- "vcpkg",
- "winapi",
-]
-
-[[package]]
-name = "diff"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-
-[[package]]
-name = "difference"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
-
-[[package]]
-name = "difflib"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
-
-[[package]]
-name = "doc-comment"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
-
-[[package]]
-name = "docopt"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f"
-dependencies = [
- "lazy_static",
- "regex",
- "serde",
- "strsim",
-]
-
-[[package]]
-name = "either"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
-
-[[package]]
-name = "env_logger"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-dependencies = [
- "atty",
- "humantime",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "fake_rules_rust_wasm_bindgen_lib"
-version = "0.0.1"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "filetime"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall",
- "winapi",
-]
-
-[[package]]
-name = "float-cmp"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "form_urlencoded"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
-dependencies = [
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "heck"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
-dependencies = [
- "unicode-segmentation",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "httparse"
-version = "1.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "id-arena"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
-dependencies = [
- "rayon",
-]
-
-[[package]]
-name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "itertools"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf"
-dependencies = [
- "either",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "leb128"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
-
-[[package]]
-name = "libc"
-version = "0.2.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219"
-
-[[package]]
-name = "libz-sys"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66"
-dependencies = [
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "log"
-version = "0.4.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
-
-[[package]]
-name = "memchr"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
-
-[[package]]
-name = "memoffset"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "mime"
-version = "0.3.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-
-[[package]]
-name = "mime_guess"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
-dependencies = [
- "mime",
- "unicase",
-]
-
-[[package]]
-name = "multipart"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
-dependencies = [
- "buf_redux",
- "httparse",
- "log",
- "mime",
- "mime_guess",
- "quick-error",
- "rand",
- "safemem",
- "tempfile",
- "twoway",
-]
-
-[[package]]
-name = "normalize-line-endings"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-
-[[package]]
-name = "num-integer"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
-
-[[package]]
-name = "openssl"
-version = "0.10.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
-dependencies = [
- "bitflags",
- "cfg-if",
- "foreign-types",
- "libc",
- "once_cell",
- "openssl-sys",
-]
-
-[[package]]
-name = "openssl-probe"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
-
-[[package]]
-name = "openssl-src"
-version = "300.0.2+3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14a760a11390b1a5daf72074d4f6ff1a6e772534ae191f999f57e9ee8146d1fb"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "openssl-sys"
-version = "0.9.70"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "openssl-src",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
-
-[[package]]
-name = "predicates"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df"
-dependencies = [
- "difference",
- "float-cmp",
- "normalize-line-endings",
- "predicates-core",
- "regex",
-]
-
-[[package]]
-name = "predicates"
-version = "2.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c6ce811d0b2e103743eec01db1c50612221f173084ce2f7941053e94b6bb474"
-dependencies = [
- "difflib",
- "itertools",
- "predicates-core",
-]
-
-[[package]]
-name = "predicates-core"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451"
-
-[[package]]
-name = "predicates-tree"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7"
-dependencies = [
- "predicates-core",
- "termtree",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quick-error"
-version = "1.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-
-[[package]]
-name = "quote"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "rayon"
-version = "1.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
-dependencies = [
- "autocfg",
- "crossbeam-deque",
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "lazy_static",
- "num_cpus",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "regex"
-version = "1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "rouille"
-version = "3.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "660f081d053ac1dce7c2683a3f2818d9b60a293bc142e7d3de36fd5541ebb671"
-dependencies = [
- "base64 0.13.0",
- "chrono",
- "filetime",
- "multipart",
- "num_cpus",
- "percent-encoding",
- "rand",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1",
- "threadpool",
- "time",
- "tiny_http",
- "url",
-]
-
-[[package]]
-name = "rustc-demangle"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
-
-[[package]]
-name = "ryu"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
-[[package]]
-name = "schannel"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-dependencies = [
- "lazy_static",
- "winapi",
-]
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "serde"
-version = "1.0.130"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.130"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sha1"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-
-[[package]]
-name = "socket2"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "syn"
-version = "1.0.81"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
-dependencies = [
- "cfg-if",
- "libc",
- "rand",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "termtree"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16"
-
-[[package]]
-name = "threadpool"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
-dependencies = [
- "num_cpus",
-]
-
-[[package]]
-name = "time"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e0a10c9a9fb3a5dce8c2239ed670f1a2569fcf42da035f5face1b19860d52b0"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "tiny_http"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39"
-dependencies = [
- "ascii",
- "chrono",
- "chunked_transfer",
- "log",
- "url",
-]
-
-[[package]]
-name = "tinyvec"
-version = "1.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7"
-dependencies = [
- "tinyvec_macros",
-]
-
-[[package]]
-name = "tinyvec_macros"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
-
-[[package]]
-name = "twoway"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "unicase"
-version = "2.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
-dependencies = [
- "tinyvec",
-]
-
-[[package]]
-name = "unicode-segmentation"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
-name = "url"
-version = "2.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
-dependencies = [
- "form_urlencoded",
- "idna",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
-
-[[package]]
-name = "version_check"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
-
-[[package]]
-name = "wait-timeout"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "walrus"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb08e48cde54c05f363d984bb54ce374f49e242def9468d2e1b6c2372d291f8"
-dependencies = [
- "anyhow",
- "id-arena",
- "leb128",
- "log",
- "rayon",
- "walrus-macro",
- "wasmparser 0.77.0",
-]
-
-[[package]]
-name = "walrus-macro"
-version = "0.19.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
-dependencies = [
- "bumpalo",
- "lazy_static",
- "log",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-cli"
-version = "0.2.78"
-dependencies = [
- "anyhow",
- "assert_cmd",
- "curl",
- "diff",
- "docopt",
- "env_logger",
- "log",
- "openssl",
- "predicates 1.0.8",
- "rayon",
- "rouille",
- "serde",
- "serde_derive",
- "serde_json",
- "tempfile",
- "walrus",
- "wasm-bindgen-cli-support",
- "wasm-bindgen-shared",
- "wit-printer",
- "wit-text",
- "wit-validator",
- "wit-walrus",
-]
-
-[[package]]
-name = "wasm-bindgen-cli-support"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "676406c3960cf7d5a581f13e6015d9aff1521042510fd5139cf47baad2eb8a28"
-dependencies = [
- "anyhow",
- "base64 0.9.3",
- "log",
- "rustc-demangle",
- "serde_json",
- "tempfile",
- "walrus",
- "wasm-bindgen-externref-xform",
- "wasm-bindgen-multi-value-xform",
- "wasm-bindgen-shared",
- "wasm-bindgen-threads-xform",
- "wasm-bindgen-wasm-conventions",
- "wasm-bindgen-wasm-interpreter",
- "wit-text",
- "wit-validator",
- "wit-walrus",
-]
-
-[[package]]
-name = "wasm-bindgen-externref-xform"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47be83b4ede14262d9ff7a748ef956f9d78cca20097dcdd12b0214e7960d5f98"
-dependencies = [
- "anyhow",
- "walrus",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-multi-value-xform"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fe4a0115972f946060752b2a2cbf7d40a54715e4478b4b157dba1070b7f1b4"
-dependencies = [
- "anyhow",
- "walrus",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
-
-[[package]]
-name = "wasm-bindgen-threads-xform"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d6e689ab91f6489df7790a853869cfbfe4c765a75714007be0f54277f8f0cca"
-dependencies = [
- "anyhow",
- "walrus",
- "wasm-bindgen-wasm-conventions",
-]
-
-[[package]]
-name = "wasm-bindgen-wasm-conventions"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "811ac791b372687313fb22316a924e5828d1bfb3a100784e1f4eef348042a173"
-dependencies = [
- "anyhow",
- "walrus",
-]
-
-[[package]]
-name = "wasm-bindgen-wasm-interpreter"
-version = "0.2.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "676462889d49300b5958686a633c0e1991fd1633cf45d41b05ca3c530c411b7f"
-dependencies = [
- "anyhow",
- "log",
- "walrus",
- "wasm-bindgen-wasm-conventions",
-]
-
-[[package]]
-name = "wasmparser"
-version = "0.59.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
-
-[[package]]
-name = "wasmparser"
-version = "0.77.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b35c86d22e720a07d954ebbed772d01180501afe7d03d464f413bb5f8914a8d6"
-
-[[package]]
-name = "wasmparser"
-version = "0.81.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc"
-
-[[package]]
-name = "wasmprinter"
-version = "0.2.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a00ad4a51ba74183137c776ab37dea50b9f71db7454d7b654c2ba69ac5d9b223"
-dependencies = [
- "anyhow",
- "wasmparser 0.81.0",
-]
-
-[[package]]
-name = "wast"
-version = "21.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
-dependencies = [
- "leb128",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "wit-parser"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
-dependencies = [
- "anyhow",
- "leb128",
- "wit-schema-version",
-]
-
-[[package]]
-name = "wit-printer"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
-dependencies = [
- "anyhow",
- "wasmprinter",
- "wit-parser",
- "wit-schema-version",
-]
-
-[[package]]
-name = "wit-schema-version"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
-
-[[package]]
-name = "wit-text"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
-dependencies = [
- "anyhow",
- "wast",
- "wit-writer",
-]
-
-[[package]]
-name = "wit-validator"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6"
-dependencies = [
- "anyhow",
- "wasmparser 0.59.0",
- "wit-parser",
- "wit-schema-version",
-]
-
-[[package]]
-name = "wit-walrus"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad559e3e4c6404b2a6a675d44129d62a3836e3b951b90112fa1c5feb852757cd"
-dependencies = [
- "anyhow",
- "id-arena",
- "walrus",
- "wit-parser",
- "wit-schema-version",
- "wit-writer",
-]
-
-[[package]]
-name = "wit-writer"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
-dependencies = [
- "leb128",
- "wit-schema-version",
-]
diff --git a/third_party/rules_rust/wasm_bindgen/raze/Cargo.toml b/third_party/rules_rust/wasm_bindgen/raze/Cargo.toml
deleted file mode 100644
index cd901c4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/Cargo.toml
+++ /dev/null
@@ -1,62 +0,0 @@
-[package]
-name = "fake_rules_rust_wasm_bindgen_lib"
-version = "0.0.1"
-
-[lib]
-path = "fake_rules_rust_wasm_bindgen_lib.rs"
-
-[dependencies]
-wasm-bindgen = "0.2.78"
-
-[package.metadata.raze]
-genmode = "Remote"
-workspace_path = "//wasm_bindgen/raze"
-gen_workspace_prefix = "rules_rust_wasm_bindgen"
-rust_rules_workspace_name = "rules_rust"
-package_aliases_dir = "."
-default_gen_buildrs = true
-
-[package.metadata.raze.binary_deps]
-wasm-bindgen-cli = "0.2.78"
-
-[package.metadata.raze.crates.curl-sys.'*']
-gen_buildrs = false
-
-[package.metadata.raze.crates.log.'<5']
-additional_flags = [
-    "--cfg=atomic_cas",
-    "--cfg=use_std",
-]
-
-[package.metadata.raze.crates.openssl-sys.'*']
-gen_buildrs = false
-additional_flags = [
-  # Vendored openssl is 1.0.2m
-  "--cfg=ossl101",
-  "--cfg=ossl102",
-  "--cfg=ossl102f",
-  "--cfg=ossl102h",
-  "--cfg=ossl110",
-  "--cfg=ossl110f",
-  "--cfg=ossl110g",
-  "--cfg=ossl111",
-  "--cfg=ossl111b",
-  "-l",
-  "dylib=ssl",
-  "-l",
-  "dylib=crypto",
-]
-
-[package.metadata.raze.crates.proc-macro2.'*']
-additional_flags = [
-    "--cfg=use_proc_macro",
-]
-
-[package.metadata.raze.crates.unicase.'*']
-additional_flags = [
-  "--cfg=__unicase__iter_cmp",
-  "--cfg=__unicase__defauler_hasher",
-]
-
-[package.metadata.raze.crates.wasm-bindgen-cli.'*']
-extra_aliased_targets = ["cargo_bin_wasm_bindgen"]
diff --git a/third_party/rules_rust/wasm_bindgen/raze/crates.bzl b/third_party/rules_rust/wasm_bindgen/raze/crates.bzl
deleted file mode 100644
index 7addcce..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/crates.bzl
+++ /dev/null
@@ -1,1432 +0,0 @@
-"""
-@generated
-cargo-raze generated Bazel file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")  # buildifier: disable=load
-load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")  # buildifier: disable=load
-
-def rules_rust_wasm_bindgen_fetch_remote_crates():
-    """This function defines a collection of repos and should be called in a WORKSPACE file"""
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__aho_corasick__0_7_18",
-        url = "https://crates.io/api/v1/crates/aho-corasick/0.7.18/download",
-        type = "tar.gz",
-        sha256 = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f",
-        strip_prefix = "aho-corasick-0.7.18",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.aho-corasick-0.7.18.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__anyhow__1_0_45",
-        url = "https://crates.io/api/v1/crates/anyhow/1.0.45/download",
-        type = "tar.gz",
-        sha256 = "ee10e43ae4a853c0a3591d4e2ada1719e553be18199d9da9d4a83f5927c2f5c7",
-        strip_prefix = "anyhow-1.0.45",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.anyhow-1.0.45.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__ascii__1_0_0",
-        url = "https://crates.io/api/v1/crates/ascii/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109",
-        strip_prefix = "ascii-1.0.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.ascii-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__assert_cmd__1_0_8",
-        url = "https://crates.io/api/v1/crates/assert_cmd/1.0.8/download",
-        type = "tar.gz",
-        sha256 = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe",
-        strip_prefix = "assert_cmd-1.0.8",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.assert_cmd-1.0.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__atty__0_2_14",
-        url = "https://crates.io/api/v1/crates/atty/0.2.14/download",
-        type = "tar.gz",
-        sha256 = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8",
-        strip_prefix = "atty-0.2.14",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.atty-0.2.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__autocfg__1_0_1",
-        url = "https://crates.io/api/v1/crates/autocfg/1.0.1/download",
-        type = "tar.gz",
-        sha256 = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a",
-        strip_prefix = "autocfg-1.0.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.autocfg-1.0.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__base64__0_13_0",
-        url = "https://crates.io/api/v1/crates/base64/0.13.0/download",
-        type = "tar.gz",
-        sha256 = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd",
-        strip_prefix = "base64-0.13.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.base64-0.13.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__base64__0_9_3",
-        url = "https://crates.io/api/v1/crates/base64/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643",
-        strip_prefix = "base64-0.9.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.base64-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__bitflags__1_3_2",
-        url = "https://crates.io/api/v1/crates/bitflags/1.3.2/download",
-        type = "tar.gz",
-        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
-        strip_prefix = "bitflags-1.3.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.bitflags-1.3.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__bstr__0_2_17",
-        url = "https://crates.io/api/v1/crates/bstr/0.2.17/download",
-        type = "tar.gz",
-        sha256 = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223",
-        strip_prefix = "bstr-0.2.17",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.bstr-0.2.17.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__buf_redux__0_8_4",
-        url = "https://crates.io/api/v1/crates/buf_redux/0.8.4/download",
-        type = "tar.gz",
-        sha256 = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f",
-        strip_prefix = "buf_redux-0.8.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.buf_redux-0.8.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__bumpalo__3_8_0",
-        url = "https://crates.io/api/v1/crates/bumpalo/3.8.0/download",
-        type = "tar.gz",
-        sha256 = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c",
-        strip_prefix = "bumpalo-3.8.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.bumpalo-3.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__byteorder__1_4_3",
-        url = "https://crates.io/api/v1/crates/byteorder/1.4.3/download",
-        type = "tar.gz",
-        sha256 = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
-        strip_prefix = "byteorder-1.4.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.byteorder-1.4.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__cc__1_0_71",
-        url = "https://crates.io/api/v1/crates/cc/1.0.71/download",
-        type = "tar.gz",
-        sha256 = "79c2681d6594606957bbb8631c4b90a7fcaaa72cdb714743a437b156d6a7eedd",
-        strip_prefix = "cc-1.0.71",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.cc-1.0.71.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__cfg_if__1_0_0",
-        url = "https://crates.io/api/v1/crates/cfg-if/1.0.0/download",
-        type = "tar.gz",
-        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
-        strip_prefix = "cfg-if-1.0.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.cfg-if-1.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__chrono__0_4_19",
-        url = "https://crates.io/api/v1/crates/chrono/0.4.19/download",
-        type = "tar.gz",
-        sha256 = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73",
-        strip_prefix = "chrono-0.4.19",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.chrono-0.4.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__chunked_transfer__1_4_0",
-        url = "https://crates.io/api/v1/crates/chunked_transfer/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e",
-        strip_prefix = "chunked_transfer-1.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.chunked_transfer-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__crossbeam_channel__0_5_1",
-        url = "https://crates.io/api/v1/crates/crossbeam-channel/0.5.1/download",
-        type = "tar.gz",
-        sha256 = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4",
-        strip_prefix = "crossbeam-channel-0.5.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.crossbeam-channel-0.5.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__crossbeam_deque__0_8_1",
-        url = "https://crates.io/api/v1/crates/crossbeam-deque/0.8.1/download",
-        type = "tar.gz",
-        sha256 = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e",
-        strip_prefix = "crossbeam-deque-0.8.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.crossbeam-deque-0.8.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__crossbeam_epoch__0_9_5",
-        url = "https://crates.io/api/v1/crates/crossbeam-epoch/0.9.5/download",
-        type = "tar.gz",
-        sha256 = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd",
-        strip_prefix = "crossbeam-epoch-0.9.5",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.crossbeam-epoch-0.9.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__crossbeam_utils__0_8_5",
-        url = "https://crates.io/api/v1/crates/crossbeam-utils/0.8.5/download",
-        type = "tar.gz",
-        sha256 = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db",
-        strip_prefix = "crossbeam-utils-0.8.5",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.crossbeam-utils-0.8.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__curl__0_4_40",
-        url = "https://crates.io/api/v1/crates/curl/0.4.40/download",
-        type = "tar.gz",
-        sha256 = "877cc2f9b8367e32b6dabb9d581557e651cb3aa693a37f8679091bbf42687d5d",
-        strip_prefix = "curl-0.4.40",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.curl-0.4.40.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__curl_sys__0_4_50_curl_7_79_1",
-        url = "https://crates.io/api/v1/crates/curl-sys/0.4.50+curl-7.79.1/download",
-        type = "tar.gz",
-        sha256 = "4856b76919dd599f31236bb18db5f5bd36e2ce131e64f857ca5c259665b76171",
-        strip_prefix = "curl-sys-0.4.50+curl-7.79.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.curl-sys-0.4.50+curl-7.79.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__diff__0_1_12",
-        url = "https://crates.io/api/v1/crates/diff/0.1.12/download",
-        type = "tar.gz",
-        sha256 = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499",
-        strip_prefix = "diff-0.1.12",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.diff-0.1.12.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__difference__2_0_0",
-        url = "https://crates.io/api/v1/crates/difference/2.0.0/download",
-        type = "tar.gz",
-        sha256 = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198",
-        strip_prefix = "difference-2.0.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.difference-2.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__difflib__0_4_0",
-        url = "https://crates.io/api/v1/crates/difflib/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8",
-        strip_prefix = "difflib-0.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.difflib-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__doc_comment__0_3_3",
-        url = "https://crates.io/api/v1/crates/doc-comment/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10",
-        strip_prefix = "doc-comment-0.3.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.doc-comment-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__docopt__1_1_1",
-        url = "https://crates.io/api/v1/crates/docopt/1.1.1/download",
-        type = "tar.gz",
-        sha256 = "7f3f119846c823f9eafcf953a8f6ffb6ed69bf6240883261a7f13b634579a51f",
-        strip_prefix = "docopt-1.1.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.docopt-1.1.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__either__1_6_1",
-        url = "https://crates.io/api/v1/crates/either/1.6.1/download",
-        type = "tar.gz",
-        sha256 = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457",
-        strip_prefix = "either-1.6.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.either-1.6.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__env_logger__0_8_4",
-        url = "https://crates.io/api/v1/crates/env_logger/0.8.4/download",
-        type = "tar.gz",
-        sha256 = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3",
-        strip_prefix = "env_logger-0.8.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.env_logger-0.8.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__filetime__0_2_15",
-        url = "https://crates.io/api/v1/crates/filetime/0.2.15/download",
-        type = "tar.gz",
-        sha256 = "975ccf83d8d9d0d84682850a38c8169027be83368805971cc4f238c2b245bc98",
-        strip_prefix = "filetime-0.2.15",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.filetime-0.2.15.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__float_cmp__0_8_0",
-        url = "https://crates.io/api/v1/crates/float-cmp/0.8.0/download",
-        type = "tar.gz",
-        sha256 = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4",
-        strip_prefix = "float-cmp-0.8.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.float-cmp-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__form_urlencoded__1_0_1",
-        url = "https://crates.io/api/v1/crates/form_urlencoded/1.0.1/download",
-        type = "tar.gz",
-        sha256 = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191",
-        strip_prefix = "form_urlencoded-1.0.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.form_urlencoded-1.0.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__getrandom__0_2_3",
-        url = "https://crates.io/api/v1/crates/getrandom/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753",
-        strip_prefix = "getrandom-0.2.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.getrandom-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__heck__0_3_3",
-        url = "https://crates.io/api/v1/crates/heck/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c",
-        strip_prefix = "heck-0.3.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.heck-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__hermit_abi__0_1_19",
-        url = "https://crates.io/api/v1/crates/hermit-abi/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33",
-        strip_prefix = "hermit-abi-0.1.19",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.hermit-abi-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__httparse__1_5_1",
-        url = "https://crates.io/api/v1/crates/httparse/1.5.1/download",
-        type = "tar.gz",
-        sha256 = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503",
-        strip_prefix = "httparse-1.5.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.httparse-1.5.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__humantime__2_1_0",
-        url = "https://crates.io/api/v1/crates/humantime/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4",
-        strip_prefix = "humantime-2.1.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.humantime-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__id_arena__2_2_1",
-        url = "https://crates.io/api/v1/crates/id-arena/2.2.1/download",
-        type = "tar.gz",
-        sha256 = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005",
-        strip_prefix = "id-arena-2.2.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.id-arena-2.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__idna__0_2_3",
-        url = "https://crates.io/api/v1/crates/idna/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8",
-        strip_prefix = "idna-0.2.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.idna-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__itertools__0_10_1",
-        url = "https://crates.io/api/v1/crates/itertools/0.10.1/download",
-        type = "tar.gz",
-        sha256 = "69ddb889f9d0d08a67338271fa9b62996bc788c7796a5c18cf057420aaed5eaf",
-        strip_prefix = "itertools-0.10.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.itertools-0.10.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__itoa__0_4_8",
-        url = "https://crates.io/api/v1/crates/itoa/0.4.8/download",
-        type = "tar.gz",
-        sha256 = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4",
-        strip_prefix = "itoa-0.4.8",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.itoa-0.4.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__lazy_static__1_4_0",
-        url = "https://crates.io/api/v1/crates/lazy_static/1.4.0/download",
-        type = "tar.gz",
-        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
-        strip_prefix = "lazy_static-1.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.lazy_static-1.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__leb128__0_2_5",
-        url = "https://crates.io/api/v1/crates/leb128/0.2.5/download",
-        type = "tar.gz",
-        sha256 = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67",
-        strip_prefix = "leb128-0.2.5",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.leb128-0.2.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__libc__0_2_107",
-        url = "https://crates.io/api/v1/crates/libc/0.2.107/download",
-        type = "tar.gz",
-        sha256 = "fbe5e23404da5b4f555ef85ebed98fb4083e55a00c317800bc2a50ede9f3d219",
-        strip_prefix = "libc-0.2.107",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.libc-0.2.107.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__libz_sys__1_1_3",
-        url = "https://crates.io/api/v1/crates/libz-sys/1.1.3/download",
-        type = "tar.gz",
-        sha256 = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66",
-        strip_prefix = "libz-sys-1.1.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.libz-sys-1.1.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__log__0_4_14",
-        url = "https://crates.io/api/v1/crates/log/0.4.14/download",
-        type = "tar.gz",
-        sha256 = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710",
-        strip_prefix = "log-0.4.14",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.log-0.4.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__matches__0_1_9",
-        url = "https://crates.io/api/v1/crates/matches/0.1.9/download",
-        type = "tar.gz",
-        sha256 = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f",
-        strip_prefix = "matches-0.1.9",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.matches-0.1.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__memchr__2_4_1",
-        url = "https://crates.io/api/v1/crates/memchr/2.4.1/download",
-        type = "tar.gz",
-        sha256 = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a",
-        strip_prefix = "memchr-2.4.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.memchr-2.4.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__memoffset__0_6_4",
-        url = "https://crates.io/api/v1/crates/memoffset/0.6.4/download",
-        type = "tar.gz",
-        sha256 = "59accc507f1338036a0477ef61afdae33cde60840f4dfe481319ce3ad116ddf9",
-        strip_prefix = "memoffset-0.6.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.memoffset-0.6.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__mime__0_3_16",
-        url = "https://crates.io/api/v1/crates/mime/0.3.16/download",
-        type = "tar.gz",
-        sha256 = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d",
-        strip_prefix = "mime-0.3.16",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.mime-0.3.16.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__mime_guess__2_0_3",
-        url = "https://crates.io/api/v1/crates/mime_guess/2.0.3/download",
-        type = "tar.gz",
-        sha256 = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212",
-        strip_prefix = "mime_guess-2.0.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.mime_guess-2.0.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__multipart__0_18_0",
-        url = "https://crates.io/api/v1/crates/multipart/0.18.0/download",
-        type = "tar.gz",
-        sha256 = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182",
-        strip_prefix = "multipart-0.18.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.multipart-0.18.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__normalize_line_endings__0_3_0",
-        url = "https://crates.io/api/v1/crates/normalize-line-endings/0.3.0/download",
-        type = "tar.gz",
-        sha256 = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be",
-        strip_prefix = "normalize-line-endings-0.3.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.normalize-line-endings-0.3.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__num_integer__0_1_44",
-        url = "https://crates.io/api/v1/crates/num-integer/0.1.44/download",
-        type = "tar.gz",
-        sha256 = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db",
-        strip_prefix = "num-integer-0.1.44",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.num-integer-0.1.44.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__num_traits__0_2_14",
-        url = "https://crates.io/api/v1/crates/num-traits/0.2.14/download",
-        type = "tar.gz",
-        sha256 = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290",
-        strip_prefix = "num-traits-0.2.14",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.num-traits-0.2.14.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__num_cpus__1_13_0",
-        url = "https://crates.io/api/v1/crates/num_cpus/1.13.0/download",
-        type = "tar.gz",
-        sha256 = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3",
-        strip_prefix = "num_cpus-1.13.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.num_cpus-1.13.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__openssl_probe__0_1_4",
-        url = "https://crates.io/api/v1/crates/openssl-probe/0.1.4/download",
-        type = "tar.gz",
-        sha256 = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a",
-        strip_prefix = "openssl-probe-0.1.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.openssl-probe-0.1.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__openssl_sys__0_9_70",
-        url = "https://crates.io/api/v1/crates/openssl-sys/0.9.70/download",
-        type = "tar.gz",
-        sha256 = "c6517987b3f8226b5da3661dad65ff7f300cc59fb5ea8333ca191fc65fde3edf",
-        strip_prefix = "openssl-sys-0.9.70",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.openssl-sys-0.9.70.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__percent_encoding__2_1_0",
-        url = "https://crates.io/api/v1/crates/percent-encoding/2.1.0/download",
-        type = "tar.gz",
-        sha256 = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e",
-        strip_prefix = "percent-encoding-2.1.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.percent-encoding-2.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__pkg_config__0_3_22",
-        url = "https://crates.io/api/v1/crates/pkg-config/0.3.22/download",
-        type = "tar.gz",
-        sha256 = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f",
-        strip_prefix = "pkg-config-0.3.22",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.pkg-config-0.3.22.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__ppv_lite86__0_2_15",
-        url = "https://crates.io/api/v1/crates/ppv-lite86/0.2.15/download",
-        type = "tar.gz",
-        sha256 = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba",
-        strip_prefix = "ppv-lite86-0.2.15",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.ppv-lite86-0.2.15.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__predicates__1_0_8",
-        url = "https://crates.io/api/v1/crates/predicates/1.0.8/download",
-        type = "tar.gz",
-        sha256 = "f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df",
-        strip_prefix = "predicates-1.0.8",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.predicates-1.0.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__predicates__2_0_3",
-        url = "https://crates.io/api/v1/crates/predicates/2.0.3/download",
-        type = "tar.gz",
-        sha256 = "5c6ce811d0b2e103743eec01db1c50612221f173084ce2f7941053e94b6bb474",
-        strip_prefix = "predicates-2.0.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.predicates-2.0.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__predicates_core__1_0_2",
-        url = "https://crates.io/api/v1/crates/predicates-core/1.0.2/download",
-        type = "tar.gz",
-        sha256 = "57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451",
-        strip_prefix = "predicates-core-1.0.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.predicates-core-1.0.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__predicates_tree__1_0_4",
-        url = "https://crates.io/api/v1/crates/predicates-tree/1.0.4/download",
-        type = "tar.gz",
-        sha256 = "338c7be2905b732ae3984a2f40032b5e94fd8f52505b186c7d4d68d193445df7",
-        strip_prefix = "predicates-tree-1.0.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.predicates-tree-1.0.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__proc_macro2__1_0_32",
-        url = "https://crates.io/api/v1/crates/proc-macro2/1.0.32/download",
-        type = "tar.gz",
-        sha256 = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43",
-        strip_prefix = "proc-macro2-1.0.32",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.proc-macro2-1.0.32.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__quick_error__1_2_3",
-        url = "https://crates.io/api/v1/crates/quick-error/1.2.3/download",
-        type = "tar.gz",
-        sha256 = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0",
-        strip_prefix = "quick-error-1.2.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.quick-error-1.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__quote__1_0_10",
-        url = "https://crates.io/api/v1/crates/quote/1.0.10/download",
-        type = "tar.gz",
-        sha256 = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05",
-        strip_prefix = "quote-1.0.10",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.quote-1.0.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rand__0_8_4",
-        url = "https://crates.io/api/v1/crates/rand/0.8.4/download",
-        type = "tar.gz",
-        sha256 = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8",
-        strip_prefix = "rand-0.8.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rand-0.8.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rand_chacha__0_3_1",
-        url = "https://crates.io/api/v1/crates/rand_chacha/0.3.1/download",
-        type = "tar.gz",
-        sha256 = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88",
-        strip_prefix = "rand_chacha-0.3.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rand_chacha-0.3.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rand_core__0_6_3",
-        url = "https://crates.io/api/v1/crates/rand_core/0.6.3/download",
-        type = "tar.gz",
-        sha256 = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7",
-        strip_prefix = "rand_core-0.6.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rand_core-0.6.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rand_hc__0_3_1",
-        url = "https://crates.io/api/v1/crates/rand_hc/0.3.1/download",
-        type = "tar.gz",
-        sha256 = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7",
-        strip_prefix = "rand_hc-0.3.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rand_hc-0.3.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rayon__1_5_1",
-        url = "https://crates.io/api/v1/crates/rayon/1.5.1/download",
-        type = "tar.gz",
-        sha256 = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90",
-        strip_prefix = "rayon-1.5.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rayon-1.5.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rayon_core__1_9_1",
-        url = "https://crates.io/api/v1/crates/rayon-core/1.9.1/download",
-        type = "tar.gz",
-        sha256 = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e",
-        strip_prefix = "rayon-core-1.9.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rayon-core-1.9.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__redox_syscall__0_2_10",
-        url = "https://crates.io/api/v1/crates/redox_syscall/0.2.10/download",
-        type = "tar.gz",
-        sha256 = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff",
-        strip_prefix = "redox_syscall-0.2.10",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.redox_syscall-0.2.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__regex__1_5_4",
-        url = "https://crates.io/api/v1/crates/regex/1.5.4/download",
-        type = "tar.gz",
-        sha256 = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461",
-        strip_prefix = "regex-1.5.4",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.regex-1.5.4.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__regex_automata__0_1_10",
-        url = "https://crates.io/api/v1/crates/regex-automata/0.1.10/download",
-        type = "tar.gz",
-        sha256 = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132",
-        strip_prefix = "regex-automata-0.1.10",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.regex-automata-0.1.10.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__regex_syntax__0_6_25",
-        url = "https://crates.io/api/v1/crates/regex-syntax/0.6.25/download",
-        type = "tar.gz",
-        sha256 = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b",
-        strip_prefix = "regex-syntax-0.6.25",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.regex-syntax-0.6.25.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__remove_dir_all__0_5_3",
-        url = "https://crates.io/api/v1/crates/remove_dir_all/0.5.3/download",
-        type = "tar.gz",
-        sha256 = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7",
-        strip_prefix = "remove_dir_all-0.5.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.remove_dir_all-0.5.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rouille__3_4_0",
-        url = "https://crates.io/api/v1/crates/rouille/3.4.0/download",
-        type = "tar.gz",
-        sha256 = "660f081d053ac1dce7c2683a3f2818d9b60a293bc142e7d3de36fd5541ebb671",
-        strip_prefix = "rouille-3.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rouille-3.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__rustc_demangle__0_1_21",
-        url = "https://crates.io/api/v1/crates/rustc-demangle/0.1.21/download",
-        type = "tar.gz",
-        sha256 = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342",
-        strip_prefix = "rustc-demangle-0.1.21",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.rustc-demangle-0.1.21.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__ryu__1_0_5",
-        url = "https://crates.io/api/v1/crates/ryu/1.0.5/download",
-        type = "tar.gz",
-        sha256 = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e",
-        strip_prefix = "ryu-1.0.5",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.ryu-1.0.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__safemem__0_3_3",
-        url = "https://crates.io/api/v1/crates/safemem/0.3.3/download",
-        type = "tar.gz",
-        sha256 = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072",
-        strip_prefix = "safemem-0.3.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.safemem-0.3.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__schannel__0_1_19",
-        url = "https://crates.io/api/v1/crates/schannel/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75",
-        strip_prefix = "schannel-0.1.19",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.schannel-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__scopeguard__1_1_0",
-        url = "https://crates.io/api/v1/crates/scopeguard/1.1.0/download",
-        type = "tar.gz",
-        sha256 = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
-        strip_prefix = "scopeguard-1.1.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.scopeguard-1.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__serde__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913",
-        strip_prefix = "serde-1.0.130",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.serde-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__serde_derive__1_0_130",
-        url = "https://crates.io/api/v1/crates/serde_derive/1.0.130/download",
-        type = "tar.gz",
-        sha256 = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b",
-        strip_prefix = "serde_derive-1.0.130",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.serde_derive-1.0.130.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__serde_json__1_0_69",
-        url = "https://crates.io/api/v1/crates/serde_json/1.0.69/download",
-        type = "tar.gz",
-        sha256 = "e466864e431129c7e0d3476b92f20458e5879919a0596c6472738d9fa2d342f8",
-        strip_prefix = "serde_json-1.0.69",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.serde_json-1.0.69.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__sha1__0_6_0",
-        url = "https://crates.io/api/v1/crates/sha1/0.6.0/download",
-        type = "tar.gz",
-        sha256 = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d",
-        strip_prefix = "sha1-0.6.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.sha1-0.6.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__socket2__0_4_2",
-        url = "https://crates.io/api/v1/crates/socket2/0.4.2/download",
-        type = "tar.gz",
-        sha256 = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516",
-        strip_prefix = "socket2-0.4.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.socket2-0.4.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__strsim__0_10_0",
-        url = "https://crates.io/api/v1/crates/strsim/0.10.0/download",
-        type = "tar.gz",
-        sha256 = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623",
-        strip_prefix = "strsim-0.10.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.strsim-0.10.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__syn__1_0_81",
-        url = "https://crates.io/api/v1/crates/syn/1.0.81/download",
-        type = "tar.gz",
-        sha256 = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966",
-        strip_prefix = "syn-1.0.81",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.syn-1.0.81.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__tempfile__3_2_0",
-        url = "https://crates.io/api/v1/crates/tempfile/3.2.0/download",
-        type = "tar.gz",
-        sha256 = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22",
-        strip_prefix = "tempfile-3.2.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.tempfile-3.2.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__termcolor__1_1_2",
-        url = "https://crates.io/api/v1/crates/termcolor/1.1.2/download",
-        type = "tar.gz",
-        sha256 = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4",
-        strip_prefix = "termcolor-1.1.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.termcolor-1.1.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__termtree__0_2_3",
-        url = "https://crates.io/api/v1/crates/termtree/0.2.3/download",
-        type = "tar.gz",
-        sha256 = "13a4ec180a2de59b57434704ccfad967f789b12737738798fa08798cd5824c16",
-        strip_prefix = "termtree-0.2.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.termtree-0.2.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__threadpool__1_8_1",
-        url = "https://crates.io/api/v1/crates/threadpool/1.8.1/download",
-        type = "tar.gz",
-        sha256 = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa",
-        strip_prefix = "threadpool-1.8.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.threadpool-1.8.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__time__0_3_2",
-        url = "https://crates.io/api/v1/crates/time/0.3.2/download",
-        type = "tar.gz",
-        sha256 = "3e0a10c9a9fb3a5dce8c2239ed670f1a2569fcf42da035f5face1b19860d52b0",
-        strip_prefix = "time-0.3.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.time-0.3.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__tiny_http__0_8_2",
-        url = "https://crates.io/api/v1/crates/tiny_http/0.8.2/download",
-        type = "tar.gz",
-        sha256 = "9ce51b50006056f590c9b7c3808c3bd70f0d1101666629713866c227d6e58d39",
-        strip_prefix = "tiny_http-0.8.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.tiny_http-0.8.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__tinyvec__1_5_0",
-        url = "https://crates.io/api/v1/crates/tinyvec/1.5.0/download",
-        type = "tar.gz",
-        sha256 = "f83b2a3d4d9091d0abd7eba4dc2710b1718583bd4d8992e2190720ea38f391f7",
-        strip_prefix = "tinyvec-1.5.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.tinyvec-1.5.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__tinyvec_macros__0_1_0",
-        url = "https://crates.io/api/v1/crates/tinyvec_macros/0.1.0/download",
-        type = "tar.gz",
-        sha256 = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c",
-        strip_prefix = "tinyvec_macros-0.1.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.tinyvec_macros-0.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__twoway__0_1_8",
-        url = "https://crates.io/api/v1/crates/twoway/0.1.8/download",
-        type = "tar.gz",
-        sha256 = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1",
-        strip_prefix = "twoway-0.1.8",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.twoway-0.1.8.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__unicase__2_6_0",
-        url = "https://crates.io/api/v1/crates/unicase/2.6.0/download",
-        type = "tar.gz",
-        sha256 = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6",
-        strip_prefix = "unicase-2.6.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.unicase-2.6.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__unicode_bidi__0_3_7",
-        url = "https://crates.io/api/v1/crates/unicode-bidi/0.3.7/download",
-        type = "tar.gz",
-        sha256 = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f",
-        strip_prefix = "unicode-bidi-0.3.7",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.unicode-bidi-0.3.7.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__unicode_normalization__0_1_19",
-        url = "https://crates.io/api/v1/crates/unicode-normalization/0.1.19/download",
-        type = "tar.gz",
-        sha256 = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9",
-        strip_prefix = "unicode-normalization-0.1.19",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.unicode-normalization-0.1.19.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__unicode_segmentation__1_8_0",
-        url = "https://crates.io/api/v1/crates/unicode-segmentation/1.8.0/download",
-        type = "tar.gz",
-        sha256 = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b",
-        strip_prefix = "unicode-segmentation-1.8.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.unicode-segmentation-1.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__unicode_xid__0_2_2",
-        url = "https://crates.io/api/v1/crates/unicode-xid/0.2.2/download",
-        type = "tar.gz",
-        sha256 = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3",
-        strip_prefix = "unicode-xid-0.2.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.unicode-xid-0.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__url__2_2_2",
-        url = "https://crates.io/api/v1/crates/url/2.2.2/download",
-        type = "tar.gz",
-        sha256 = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c",
-        strip_prefix = "url-2.2.2",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.url-2.2.2.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__vcpkg__0_2_15",
-        url = "https://crates.io/api/v1/crates/vcpkg/0.2.15/download",
-        type = "tar.gz",
-        sha256 = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426",
-        strip_prefix = "vcpkg-0.2.15",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.vcpkg-0.2.15.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__version_check__0_9_3",
-        url = "https://crates.io/api/v1/crates/version_check/0.9.3/download",
-        type = "tar.gz",
-        sha256 = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe",
-        strip_prefix = "version_check-0.9.3",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.version_check-0.9.3.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wait_timeout__0_2_0",
-        url = "https://crates.io/api/v1/crates/wait-timeout/0.2.0/download",
-        type = "tar.gz",
-        sha256 = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6",
-        strip_prefix = "wait-timeout-0.2.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wait-timeout-0.2.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__walrus__0_19_0",
-        url = "https://crates.io/api/v1/crates/walrus/0.19.0/download",
-        type = "tar.gz",
-        sha256 = "4eb08e48cde54c05f363d984bb54ce374f49e242def9468d2e1b6c2372d291f8",
-        strip_prefix = "walrus-0.19.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.walrus-0.19.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__walrus_macro__0_19_0",
-        url = "https://crates.io/api/v1/crates/walrus-macro/0.19.0/download",
-        type = "tar.gz",
-        sha256 = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7",
-        strip_prefix = "walrus-macro-0.19.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.walrus-macro-0.19.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasi__0_10_2_wasi_snapshot_preview1",
-        url = "https://crates.io/api/v1/crates/wasi/0.10.2+wasi-snapshot-preview1/download",
-        type = "tar.gz",
-        sha256 = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6",
-        strip_prefix = "wasi-0.10.2+wasi-snapshot-preview1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce",
-        strip_prefix = "wasm-bindgen-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_backend__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-backend/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b",
-        strip_prefix = "wasm-bindgen-backend-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-backend-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_cli__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-cli/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "262a79690c18f5160ca109e839814783e29b71f1fd28448f80838145f93c08b6",
-        strip_prefix = "wasm-bindgen-cli-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-cli-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_cli_support__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-cli-support/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "676406c3960cf7d5a581f13e6015d9aff1521042510fd5139cf47baad2eb8a28",
-        strip_prefix = "wasm-bindgen-cli-support-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-cli-support-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_externref_xform__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-externref-xform/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "47be83b4ede14262d9ff7a748ef956f9d78cca20097dcdd12b0214e7960d5f98",
-        strip_prefix = "wasm-bindgen-externref-xform-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-externref-xform-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_macro__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-macro/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9",
-        strip_prefix = "wasm-bindgen-macro-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-macro-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_macro_support__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-macro-support/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab",
-        strip_prefix = "wasm-bindgen-macro-support-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-macro-support-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_multi_value_xform__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-multi-value-xform/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "97fe4a0115972f946060752b2a2cbf7d40a54715e4478b4b157dba1070b7f1b4",
-        strip_prefix = "wasm-bindgen-multi-value-xform-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-multi-value-xform-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-shared/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc",
-        strip_prefix = "wasm-bindgen-shared-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-shared-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_threads_xform__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-threads-xform/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "2d6e689ab91f6489df7790a853869cfbfe4c765a75714007be0f54277f8f0cca",
-        strip_prefix = "wasm-bindgen-threads-xform-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-threads-xform-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_wasm_conventions__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-wasm-conventions/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "811ac791b372687313fb22316a924e5828d1bfb3a100784e1f4eef348042a173",
-        strip_prefix = "wasm-bindgen-wasm-conventions-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-wasm-conventions-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasm_bindgen_wasm_interpreter__0_2_78",
-        url = "https://crates.io/api/v1/crates/wasm-bindgen-wasm-interpreter/0.2.78/download",
-        type = "tar.gz",
-        sha256 = "676462889d49300b5958686a633c0e1991fd1633cf45d41b05ca3c530c411b7f",
-        strip_prefix = "wasm-bindgen-wasm-interpreter-0.2.78",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasm-bindgen-wasm-interpreter-0.2.78.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasmparser__0_59_0",
-        url = "https://crates.io/api/v1/crates/wasmparser/0.59.0/download",
-        type = "tar.gz",
-        sha256 = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9",
-        strip_prefix = "wasmparser-0.59.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasmparser-0.59.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasmparser__0_77_0",
-        url = "https://crates.io/api/v1/crates/wasmparser/0.77.0/download",
-        type = "tar.gz",
-        sha256 = "b35c86d22e720a07d954ebbed772d01180501afe7d03d464f413bb5f8914a8d6",
-        strip_prefix = "wasmparser-0.77.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasmparser-0.77.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasmparser__0_81_0",
-        url = "https://crates.io/api/v1/crates/wasmparser/0.81.0/download",
-        type = "tar.gz",
-        sha256 = "98930446519f63d00a836efdc22f67766ceae8dbcc1571379f2bcabc6b2b9abc",
-        strip_prefix = "wasmparser-0.81.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasmparser-0.81.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wasmprinter__0_2_31",
-        url = "https://crates.io/api/v1/crates/wasmprinter/0.2.31/download",
-        type = "tar.gz",
-        sha256 = "a00ad4a51ba74183137c776ab37dea50b9f71db7454d7b654c2ba69ac5d9b223",
-        strip_prefix = "wasmprinter-0.2.31",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wasmprinter-0.2.31.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wast__21_0_0",
-        url = "https://crates.io/api/v1/crates/wast/21.0.0/download",
-        type = "tar.gz",
-        sha256 = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5",
-        strip_prefix = "wast-21.0.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wast-21.0.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__winapi__0_3_9",
-        url = "https://crates.io/api/v1/crates/winapi/0.3.9/download",
-        type = "tar.gz",
-        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
-        strip_prefix = "winapi-0.3.9",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.winapi-0.3.9.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__winapi_i686_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
-        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__winapi_util__0_1_5",
-        url = "https://crates.io/api/v1/crates/winapi-util/0.1.5/download",
-        type = "tar.gz",
-        sha256 = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178",
-        strip_prefix = "winapi-util-0.1.5",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.winapi-util-0.1.5.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__winapi_x86_64_pc_windows_gnu__0_4_0",
-        url = "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download",
-        type = "tar.gz",
-        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
-        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_parser__0_2_0",
-        url = "https://crates.io/api/v1/crates/wit-parser/0.2.0/download",
-        type = "tar.gz",
-        sha256 = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7",
-        strip_prefix = "wit-parser-0.2.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-parser-0.2.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_printer__0_2_0",
-        url = "https://crates.io/api/v1/crates/wit-printer/0.2.0/download",
-        type = "tar.gz",
-        sha256 = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9",
-        strip_prefix = "wit-printer-0.2.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-printer-0.2.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_schema_version__0_1_0",
-        url = "https://crates.io/api/v1/crates/wit-schema-version/0.1.0/download",
-        type = "tar.gz",
-        sha256 = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a",
-        strip_prefix = "wit-schema-version-0.1.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-schema-version-0.1.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_text__0_8_0",
-        url = "https://crates.io/api/v1/crates/wit-text/0.8.0/download",
-        type = "tar.gz",
-        sha256 = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f",
-        strip_prefix = "wit-text-0.8.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-text-0.8.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_validator__0_2_1",
-        url = "https://crates.io/api/v1/crates/wit-validator/0.2.1/download",
-        type = "tar.gz",
-        sha256 = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6",
-        strip_prefix = "wit-validator-0.2.1",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-validator-0.2.1.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_walrus__0_6_0",
-        url = "https://crates.io/api/v1/crates/wit-walrus/0.6.0/download",
-        type = "tar.gz",
-        sha256 = "ad559e3e4c6404b2a6a675d44129d62a3836e3b951b90112fa1c5feb852757cd",
-        strip_prefix = "wit-walrus-0.6.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-walrus-0.6.0.bazel"),
-    )
-
-    maybe(
-        http_archive,
-        name = "rules_rust_wasm_bindgen__wit_writer__0_2_0",
-        url = "https://crates.io/api/v1/crates/wit-writer/0.2.0/download",
-        type = "tar.gz",
-        sha256 = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09",
-        strip_prefix = "wit-writer-0.2.0",
-        build_file = Label("//wasm_bindgen/raze/remote:BUILD.wit-writer-0.2.0.bazel"),
-    )
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel
deleted file mode 100644
index 9dea26c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.aho-corasick-0.7.18.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "aho_corasick",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.7.18",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__memchr__2_4_1//:memchr",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.anyhow-1.0.45.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.anyhow-1.0.45.bazel
deleted file mode 100644
index d9dd44d..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.anyhow-1.0.45.bazel
+++ /dev/null
@@ -1,113 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "anyhow_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "anyhow",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.45",
-    # buildifier: leave-alone
-    deps = [
-        ":anyhow_build_script",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test_autotrait" with type "test" omitted
-
-# Unsupported target "test_backtrace" with type "test" omitted
-
-# Unsupported target "test_boxed" with type "test" omitted
-
-# Unsupported target "test_chain" with type "test" omitted
-
-# Unsupported target "test_context" with type "test" omitted
-
-# Unsupported target "test_convert" with type "test" omitted
-
-# Unsupported target "test_downcast" with type "test" omitted
-
-# Unsupported target "test_ffi" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
-
-# Unsupported target "test_macros" with type "test" omitted
-
-# Unsupported target "test_repr" with type "test" omitted
-
-# Unsupported target "test_source" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ascii-1.0.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ascii-1.0.0.bazel
deleted file mode 100644
index 3d4c9a7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ascii-1.0.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "ascii",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.assert_cmd-1.0.8.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.assert_cmd-1.0.8.bazel
deleted file mode 100644
index b918152..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.assert_cmd-1.0.8.bazel
+++ /dev/null
@@ -1,97 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_bin_fixture",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/bin_fixture.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.8",
-    # buildifier: leave-alone
-    deps = [
-        ":assert_cmd",
-        "@rules_rust_wasm_bindgen__bstr__0_2_17//:bstr",
-        "@rules_rust_wasm_bindgen__doc_comment__0_3_3//:doc_comment",
-        "@rules_rust_wasm_bindgen__predicates__2_0_3//:predicates",
-        "@rules_rust_wasm_bindgen__predicates_core__1_0_2//:predicates_core",
-        "@rules_rust_wasm_bindgen__predicates_tree__1_0_4//:predicates_tree",
-        "@rules_rust_wasm_bindgen__wait_timeout__0_2_0//:wait_timeout",
-    ],
-)
-
-# Unsupported target "example_fixture" with type "example" omitted
-
-rust_library(
-    name = "assert_cmd",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.8",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__bstr__0_2_17//:bstr",
-        "@rules_rust_wasm_bindgen__doc_comment__0_3_3//:doc_comment",
-        "@rules_rust_wasm_bindgen__predicates__2_0_3//:predicates",
-        "@rules_rust_wasm_bindgen__predicates_core__1_0_2//:predicates_core",
-        "@rules_rust_wasm_bindgen__predicates_tree__1_0_4//:predicates_tree",
-        "@rules_rust_wasm_bindgen__wait_timeout__0_2_0//:wait_timeout",
-    ],
-)
-
-# Unsupported target "assert" with type "test" omitted
-
-# Unsupported target "cargo" with type "test" omitted
-
-# Unsupported target "examples" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.atty-0.2.14.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.atty-0.2.14.bazel
deleted file mode 100644
index 7764145..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.atty-0.2.14.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "atty" with type "example" omitted
-
-rust_library(
-    name = "atty",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.autocfg-1.0.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.autocfg-1.0.1.bazel
deleted file mode 100644
index 867f1ef..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.autocfg-1.0.1.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "integers" with type "example" omitted
-
-# Unsupported target "paths" with type "example" omitted
-
-# Unsupported target "traits" with type "example" omitted
-
-# Unsupported target "versions" with type "example" omitted
-
-rust_library(
-    name = "autocfg",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "rustflags" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.13.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.13.0.bazel
deleted file mode 100644
index 3d3ee34..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.13.0.bazel
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmarks" with type "bench" omitted
-
-# Unsupported target "base64" with type "example" omitted
-
-# Unsupported target "make_tables" with type "example" omitted
-
-rust_library(
-    name = "base64",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.13.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "decode" with type "test" omitted
-
-# Unsupported target "encode" with type "test" omitted
-
-# Unsupported target "helpers" with type "test" omitted
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.9.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.9.3.bazel
deleted file mode 100644
index a783db7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.base64-0.9.3.bazel
+++ /dev/null
@@ -1,67 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmarks" with type "bench" omitted
-
-# Unsupported target "make_tables" with type "example" omitted
-
-rust_library(
-    name = "base64",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__byteorder__1_4_3//:byteorder",
-        "@rules_rust_wasm_bindgen__safemem__0_3_3//:safemem",
-    ],
-)
-
-# Unsupported target "decode" with type "test" omitted
-
-# Unsupported target "encode" with type "test" omitted
-
-# Unsupported target "helpers" with type "test" omitted
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bazel
deleted file mode 100644
index e69de29..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bazel
+++ /dev/null
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bitflags-1.3.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bitflags-1.3.2.bazel
deleted file mode 100644
index 18f2842..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bitflags-1.3.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "bitflags",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.3.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "basic" with type "test" omitted
-
-# Unsupported target "compile" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bstr-0.2.17.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bstr-0.2.17.bazel
deleted file mode 100644
index 41ce46f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bstr-0.2.17.bazel
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "graphemes" with type "example" omitted
-
-# Unsupported target "graphemes-std" with type "example" omitted
-
-# Unsupported target "lines" with type "example" omitted
-
-# Unsupported target "lines-std" with type "example" omitted
-
-# Unsupported target "uppercase" with type "example" omitted
-
-# Unsupported target "uppercase-std" with type "example" omitted
-
-# Unsupported target "words" with type "example" omitted
-
-# Unsupported target "words-std" with type "example" omitted
-
-rust_library(
-    name = "bstr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "regex-automata",
-        "std",
-        "unicode",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.17",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__memchr__2_4_1//:memchr",
-        "@rules_rust_wasm_bindgen__regex_automata__0_1_10//:regex_automata",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.buf_redux-0.8.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.buf_redux-0.8.4.bazel
deleted file mode 100644
index a8c0ed7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.buf_redux-0.8.4.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "buf_redux",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__memchr__2_4_1//:memchr",
-        "@rules_rust_wasm_bindgen__safemem__0_3_3//:safemem",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bumpalo-3.8.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bumpalo-3.8.0.bazel
deleted file mode 100644
index 67578ad..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.bumpalo-3.8.0.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-rust_library(
-    name = "bumpalo",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "3.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "try_alloc" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.byteorder-1.4.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.byteorder-1.4.3.bazel
deleted file mode 100644
index 9f319f2..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.byteorder-1.4.3.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "byteorder",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cc-1.0.71.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cc-1.0.71.bazel
deleted file mode 100644
index c604772..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cc-1.0.71.bazel
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_gcc_shim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/gcc-shim.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.71",
-    # buildifier: leave-alone
-    deps = [
-        ":cc",
-    ],
-)
-
-rust_library(
-    name = "cc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.71",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "cc_env" with type "test" omitted
-
-# Unsupported target "cflags" with type "test" omitted
-
-# Unsupported target "cxxflags" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel
deleted file mode 100644
index e4ad04f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.cfg-if-1.0.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "cfg_if",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "xcrate" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chrono-0.4.19.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chrono-0.4.19.bazel
deleted file mode 100644
index 49442e7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chrono-0.4.19.bazel
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "chrono" with type "bench" omitted
-
-# Unsupported target "serde" with type "bench" omitted
-
-rust_library(
-    name = "chrono",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "clock",
-        "libc",
-        "std",
-        "winapi",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        "@rules_rust_wasm_bindgen__num_integer__0_1_44//:num_integer",
-        "@rules_rust_wasm_bindgen__num_traits__0_2_14//:num_traits",
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "wasm" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chunked_transfer-1.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chunked_transfer-1.4.0.bazel
deleted file mode 100644
index b20b6f7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.chunked_transfer-1.4.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "encode" with type "bench" omitted
-
-rust_library(
-    name = "chunked_transfer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-channel-0.5.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-channel-0.5.1.bazel
deleted file mode 100644
index 0462551..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-channel-0.5.1.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "crossbeam" with type "bench" omitted
-
-# Unsupported target "fibonacci" with type "example" omitted
-
-# Unsupported target "matching" with type "example" omitted
-
-# Unsupported target "stopwatch" with type "example" omitted
-
-rust_library(
-    name = "crossbeam_channel",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "crossbeam-utils",
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.5.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-        "@rules_rust_wasm_bindgen__crossbeam_utils__0_8_5//:crossbeam_utils",
-    ],
-)
-
-# Unsupported target "after" with type "test" omitted
-
-# Unsupported target "array" with type "test" omitted
-
-# Unsupported target "golang" with type "test" omitted
-
-# Unsupported target "iter" with type "test" omitted
-
-# Unsupported target "list" with type "test" omitted
-
-# Unsupported target "mpsc" with type "test" omitted
-
-# Unsupported target "never" with type "test" omitted
-
-# Unsupported target "ready" with type "test" omitted
-
-# Unsupported target "same_channel" with type "test" omitted
-
-# Unsupported target "select" with type "test" omitted
-
-# Unsupported target "select_macro" with type "test" omitted
-
-# Unsupported target "thread_locals" with type "test" omitted
-
-# Unsupported target "tick" with type "test" omitted
-
-# Unsupported target "zero" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-deque-0.8.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-deque-0.8.1.bazel
deleted file mode 100644
index 45ae4b4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-deque-0.8.1.bazel
+++ /dev/null
@@ -1,68 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "crossbeam_deque",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "crossbeam-epoch",
-        "crossbeam-utils",
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-        "@rules_rust_wasm_bindgen__crossbeam_epoch__0_9_5//:crossbeam_epoch",
-        "@rules_rust_wasm_bindgen__crossbeam_utils__0_8_5//:crossbeam_utils",
-    ],
-)
-
-# Unsupported target "fifo" with type "test" omitted
-
-# Unsupported target "injector" with type "test" omitted
-
-# Unsupported target "lifo" with type "test" omitted
-
-# Unsupported target "steal" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-epoch-0.9.5.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-epoch-0.9.5.bazel
deleted file mode 100644
index 9407fd0..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-epoch-0.9.5.bazel
+++ /dev/null
@@ -1,104 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "crossbeam_epoch_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "alloc",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.5",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "defer" with type "bench" omitted
-
-# Unsupported target "flush" with type "bench" omitted
-
-# Unsupported target "pin" with type "bench" omitted
-
-# Unsupported target "sanitize" with type "example" omitted
-
-rust_library(
-    name = "crossbeam_epoch",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.5",
-    # buildifier: leave-alone
-    deps = [
-        ":crossbeam_epoch_build_script",
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-        "@rules_rust_wasm_bindgen__crossbeam_utils__0_8_5//:crossbeam_utils",
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__memoffset__0_6_4//:memoffset",
-        "@rules_rust_wasm_bindgen__scopeguard__1_1_0//:scopeguard",
-    ],
-)
-
-# Unsupported target "loom" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-utils-0.8.5.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-utils-0.8.5.bazel
deleted file mode 100644
index 716dcf0..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.crossbeam-utils-0.8.5.bazel
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "crossbeam_utils_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.5",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "atomic_cell" with type "bench" omitted
-
-rust_library(
-    name = "crossbeam_utils",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "lazy_static",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.5",
-    # buildifier: leave-alone
-    deps = [
-        ":crossbeam_utils_build_script",
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-    ],
-)
-
-# Unsupported target "atomic_cell" with type "test" omitted
-
-# Unsupported target "cache_padded" with type "test" omitted
-
-# Unsupported target "parker" with type "test" omitted
-
-# Unsupported target "sharded_lock" with type "test" omitted
-
-# Unsupported target "thread" with type "test" omitted
-
-# Unsupported target "wait_group" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-0.4.40.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-0.4.40.bazel
deleted file mode 100644
index b2f328f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-0.4.40.bazel
+++ /dev/null
@@ -1,172 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "curl_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "openssl-probe",
-        "openssl-sys",
-        "ssl",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.40",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__curl_sys__0_4_50_curl_7_79_1//:curl_sys",
-    ] + selects.with_or({
-        # cfg(all(unix, not(target_os = "macos")))
-        (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__openssl_sys__0_9_70//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "aws_sigv4" with type "example" omitted
-
-# Unsupported target "ssl_cert_blob" with type "example" omitted
-
-# Unsupported target "ssl_proxy" with type "example" omitted
-
-rust_library(
-    name = "curl",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "default",
-        "openssl-probe",
-        "openssl-sys",
-        "ssl",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.40",
-    # buildifier: leave-alone
-    deps = [
-        ":curl_build_script",
-        "@rules_rust_wasm_bindgen__curl_sys__0_4_50_curl_7_79_1//:curl_sys",
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        "@rules_rust_wasm_bindgen__socket2__0_4_2//:socket2",
-    ] + selects.with_or({
-        # cfg(all(unix, not(target_os = "macos")))
-        (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__openssl_probe__0_1_4//:openssl_probe",
-            "@rules_rust_wasm_bindgen__openssl_sys__0_9_70//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__schannel__0_1_19//:schannel",
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "atexit" with type "test" omitted
-
-# Unsupported target "easy" with type "test" omitted
-
-# Unsupported target "multi" with type "test" omitted
-
-# Unsupported target "post" with type "test" omitted
-
-# Unsupported target "protocols" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-sys-0.4.50+curl-7.79.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-sys-0.4.50+curl-7.79.1.bazel
deleted file mode 100644
index 1b9d3ad..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.curl-sys-0.4.50+curl-7.79.1.bazel
+++ /dev/null
@@ -1,98 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-build" with type "custom-build" omitted
-
-rust_library(
-    name = "curl_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "openssl-sys",
-        "ssl",
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.50+curl-7.79.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        "@rules_rust_wasm_bindgen__libz_sys__1_1_3//:libz_sys",
-    ] + selects.with_or({
-        # cfg(all(unix, not(target_os = "macos")))
-        (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__openssl_sys__0_9_70//:openssl_sys",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.diff-0.1.12.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.diff-0.1.12.bazel
deleted file mode 100644
index 69044d0..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.diff-0.1.12.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-# Unsupported target "simple" with type "example" omitted
-
-rust_library(
-    name = "diff",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.12",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difference-2.0.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difference-2.0.0.bazel
deleted file mode 100644
index a03ad9b..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difference-2.0.0.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_difference",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/main.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.0",
-    # buildifier: leave-alone
-    deps = [
-        ":difference",
-    ],
-)
-
-# Unsupported target "github-style" with type "example" omitted
-
-# Unsupported target "line-by-line" with type "example" omitted
-
-# Unsupported target "underline-words" with type "example" omitted
-
-rust_library(
-    name = "difference",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "quickcheck" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difflib-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difflib-0.4.0.bazel
deleted file mode 100644
index c7bd8e3..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.difflib-0.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "example" with type "example" omitted
-
-rust_library(
-    name = "difflib",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.doc-comment-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.doc-comment-0.3.3.bazel
deleted file mode 100644
index 7449ccb..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.doc-comment-0.3.3.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "doc_comment_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "doc_comment",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        ":doc_comment_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.docopt-1.1.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.docopt-1.1.1.bazel
deleted file mode 100644
index a26ee56..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.docopt-1.1.1.bazel
+++ /dev/null
@@ -1,97 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_docopt_wordlist",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/wordlist.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.1",
-    # buildifier: leave-alone
-    deps = [
-        ":docopt",
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__strsim__0_10_0//:strsim",
-    ],
-)
-
-# Unsupported target "cargo" with type "example" omitted
-
-# Unsupported target "cp" with type "example" omitted
-
-# Unsupported target "decode" with type "example" omitted
-
-# Unsupported target "hashmap" with type "example" omitted
-
-# Unsupported target "optional_command" with type "example" omitted
-
-# Unsupported target "verbose_multiple" with type "example" omitted
-
-rust_library(
-    name = "docopt",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__strsim__0_10_0//:strsim",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.either-1.6.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.either-1.6.1.bazel
deleted file mode 100644
index 4d704c6..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.either-1.6.1.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "either",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.6.1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.env_logger-0.8.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.env_logger-0.8.4.bazel
deleted file mode 100644
index d75f156..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.env_logger-0.8.4.bazel
+++ /dev/null
@@ -1,71 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "env_logger",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "atty",
-        "default",
-        "humantime",
-        "regex",
-        "termcolor",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__atty__0_2_14//:atty",
-        "@rules_rust_wasm_bindgen__humantime__2_1_0//:humantime",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__regex__1_5_4//:regex",
-        "@rules_rust_wasm_bindgen__termcolor__1_1_2//:termcolor",
-    ],
-)
-
-# Unsupported target "init-twice-retains-filter" with type "test" omitted
-
-# Unsupported target "log-in-log" with type "test" omitted
-
-# Unsupported target "log_tls_dtors" with type "test" omitted
-
-# Unsupported target "regexp_filter" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.filetime-0.2.15.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.filetime-0.2.15.bazel
deleted file mode 100644
index 9c0c8e4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.filetime-0.2.15.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "filetime",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.15",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.float-cmp-0.8.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.float-cmp-0.8.0.bazel
deleted file mode 100644
index 3792860..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.float-cmp-0.8.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "float_cmp",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "num-traits",
-        "ratio",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__num_traits__0_2_14//:num_traits",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.form_urlencoded-1.0.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.form_urlencoded-1.0.1.bazel
deleted file mode 100644
index 5b7860a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.form_urlencoded-1.0.1.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "form_urlencoded",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__matches__0_1_9//:matches",
-        "@rules_rust_wasm_bindgen__percent_encoding__2_1_0//:percent_encoding",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.getrandom-0.2.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.getrandom-0.2.3.bazel
deleted file mode 100644
index 2b8513e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.getrandom-0.2.3.bazel
+++ /dev/null
@@ -1,96 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "mod" with type "bench" omitted
-
-rust_library(
-    name = "getrandom",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-    ] + selects.with_or({
-        # cfg(target_os = "wasi")
-        (
-            "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            "@rules_rust_wasm_bindgen__wasi__0_10_2_wasi_snapshot_preview1//:wasi",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "custom" with type "test" omitted
-
-# Unsupported target "normal" with type "test" omitted
-
-# Unsupported target "rdrand" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.heck-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.heck-0.3.3.bazel
deleted file mode 100644
index 29ce668..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.heck-0.3.3.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "heck",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__unicode_segmentation__1_8_0//:unicode_segmentation",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.hermit-abi-0.1.19.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.hermit-abi-0.1.19.bazel
deleted file mode 100644
index 30a717d..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.hermit-abi-0.1.19.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "hermit_abi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.httparse-1.5.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.httparse-1.5.1.bazel
deleted file mode 100644
index c27995e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.httparse-1.5.1.bazel
+++ /dev/null
@@ -1,91 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "httparse_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "parse" with type "bench" omitted
-
-rust_library(
-    name = "httparse",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.1",
-    # buildifier: leave-alone
-    deps = [
-        ":httparse_build_script",
-    ],
-)
-
-# Unsupported target "uri" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.humantime-2.1.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.humantime-2.1.0.bazel
deleted file mode 100644
index 2ed8303..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.humantime-2.1.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "datetime_format" with type "bench" omitted
-
-# Unsupported target "datetime_parse" with type "bench" omitted
-
-rust_library(
-    name = "humantime",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.id-arena-2.2.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.id-arena-2.2.1.bazel
deleted file mode 100644
index d3cf8e7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.id-arena-2.2.1.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "id_arena",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "rayon",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.2.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__rayon__1_5_1//:rayon",
-    ],
-)
-
-# Unsupported target "readme_up_to_date" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.idna-0.2.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.idna-0.2.3.bazel
deleted file mode 100644
index 2b4d3f7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.idna-0.2.3.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "all" with type "bench" omitted
-
-rust_library(
-    name = "idna",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__matches__0_1_9//:matches",
-        "@rules_rust_wasm_bindgen__unicode_bidi__0_3_7//:unicode_bidi",
-        "@rules_rust_wasm_bindgen__unicode_normalization__0_1_19//:unicode_normalization",
-    ],
-)
-
-# Unsupported target "tests" with type "test" omitted
-
-# Unsupported target "unit" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itertools-0.10.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itertools-0.10.1.bazel
deleted file mode 100644
index 757cfc7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itertools-0.10.1.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench1" with type "bench" omitted
-
-# Unsupported target "combinations" with type "bench" omitted
-
-# Unsupported target "combinations_with_replacement" with type "bench" omitted
-
-# Unsupported target "fold_specialization" with type "bench" omitted
-
-# Unsupported target "powerset" with type "bench" omitted
-
-# Unsupported target "tree_fold1" with type "bench" omitted
-
-# Unsupported target "tuple_combinations" with type "bench" omitted
-
-# Unsupported target "tuples" with type "bench" omitted
-
-# Unsupported target "iris" with type "example" omitted
-
-rust_library(
-    name = "itertools",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_alloc",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__either__1_6_1//:either",
-    ],
-)
-
-# Unsupported target "adaptors_no_collect" with type "test" omitted
-
-# Unsupported target "flatten_ok" with type "test" omitted
-
-# Unsupported target "fold_specialization" with type "test" omitted
-
-# Unsupported target "macros_hygiene" with type "test" omitted
-
-# Unsupported target "merge_join" with type "test" omitted
-
-# Unsupported target "peeking_take_while" with type "test" omitted
-
-# Unsupported target "quick" with type "test" omitted
-
-# Unsupported target "specializations" with type "test" omitted
-
-# Unsupported target "test_core" with type "test" omitted
-
-# Unsupported target "test_std" with type "test" omitted
-
-# Unsupported target "tuples" with type "test" omitted
-
-# Unsupported target "zip" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itoa-0.4.8.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itoa-0.4.8.bazel
deleted file mode 100644
index 9737226..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.itoa-0.4.8.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "itoa",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.8",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel
deleted file mode 100644
index cb09d1a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.lazy_static-1.4.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "lazy_static",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.4.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "no_std" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.leb128-0.2.5.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.leb128-0.2.5.bazel
deleted file mode 100644
index a4721fb..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.leb128-0.2.5.bazel
+++ /dev/null
@@ -1,81 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_leb128_repl",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/leb128-repl.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.5",
-    # buildifier: leave-alone
-    deps = [
-        ":leb128",
-    ],
-)
-
-rust_library(
-    name = "leb128",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.5",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "quickchecks" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libc-0.2.107.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libc-0.2.107.bazel
deleted file mode 100644
index 8f54ee4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libc-0.2.107.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libc_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "libc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.107",
-    # buildifier: leave-alone
-    deps = [
-        ":libc_build_script",
-    ],
-)
-
-# Unsupported target "const_fn" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libz-sys-1.1.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libz-sys-1.1.3.bazel
deleted file mode 100644
index aa4a3ba..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.libz-sys-1.1.3.bazel
+++ /dev/null
@@ -1,108 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "libz_sys_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "libc",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    links = "z",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.3",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__cc__1_0_71//:cc",
-        "@rules_rust_wasm_bindgen__pkg_config__0_3_22//:pkg_config",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__vcpkg__0_2_15//:vcpkg",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "libz_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "libc",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.3",
-    # buildifier: leave-alone
-    deps = [
-        ":libz_sys_build_script",
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.log-0.4.14.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.log-0.4.14.bazel
deleted file mode 100644
index a58bb2f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.log-0.4.14.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "log_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "value" with type "bench" omitted
-
-rust_library(
-    name = "log",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=atomic_cas",
-        "--cfg=use_std",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.14",
-    # buildifier: leave-alone
-    deps = [
-        ":log_build_script",
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "filters" with type "test" omitted
-
-# Unsupported target "macros" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.matches-0.1.9.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.matches-0.1.9.bazel
deleted file mode 100644
index f31e188..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.matches-0.1.9.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "matches",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.9",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "macro_use_one" with type "test" omitted
-
-# Unsupported target "use_star" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memchr-2.4.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memchr-2.4.1.bazel
deleted file mode 100644
index 69c467f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memchr-2.4.1.bazel
+++ /dev/null
@@ -1,89 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "memchr_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-        "use_std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "memchr",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.4.1",
-    # buildifier: leave-alone
-    deps = [
-        ":memchr_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memoffset-0.6.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memoffset-0.6.4.bazel
deleted file mode 100644
index 24bb16e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.memoffset-0.6.4.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "memoffset_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.4",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__autocfg__1_0_1//:autocfg",
-    ],
-)
-
-rust_library(
-    name = "memoffset",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.4",
-    # buildifier: leave-alone
-    deps = [
-        ":memoffset_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime-0.3.16.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime-0.3.16.bazel
deleted file mode 100644
index adfd28a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime-0.3.16.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "cmp" with type "bench" omitted
-
-# Unsupported target "fmt" with type "bench" omitted
-
-# Unsupported target "parse" with type "bench" omitted
-
-rust_library(
-    name = "mime",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.16",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime_guess-2.0.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime_guess-2.0.3.bazel
deleted file mode 100644
index 60bb34c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.mime_guess-2.0.3.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "mime_guess_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "rev-mappings",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.3",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__unicase__2_6_0//:unicase",
-    ],
-)
-
-# Unsupported target "benchmark" with type "bench" omitted
-
-# Unsupported target "rev_map" with type "example" omitted
-
-rust_library(
-    name = "mime_guess",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "rev-mappings",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.3",
-    # buildifier: leave-alone
-    deps = [
-        ":mime_guess_build_script",
-        "@rules_rust_wasm_bindgen__mime__0_3_16//:mime",
-        "@rules_rust_wasm_bindgen__unicase__2_6_0//:unicase",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.multipart-0.18.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.multipart-0.18.0.bazel
deleted file mode 100644
index ff3351e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.multipart-0.18.0.bazel
+++ /dev/null
@@ -1,125 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_form_test",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "buf_redux",
-        "httparse",
-        "quick-error",
-        "safemem",
-        "server",
-        "twoway",
-    ],
-    crate_root = "src/bin/form_test.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.18.0",
-    # buildifier: leave-alone
-    deps = [
-        ":multipart",
-        "@rules_rust_wasm_bindgen__buf_redux__0_8_4//:buf_redux",
-        "@rules_rust_wasm_bindgen__httparse__1_5_1//:httparse",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__mime__0_3_16//:mime",
-        "@rules_rust_wasm_bindgen__mime_guess__2_0_3//:mime_guess",
-        "@rules_rust_wasm_bindgen__quick_error__1_2_3//:quick_error",
-        "@rules_rust_wasm_bindgen__rand__0_8_4//:rand",
-        "@rules_rust_wasm_bindgen__safemem__0_3_3//:safemem",
-        "@rules_rust_wasm_bindgen__tempfile__3_2_0//:tempfile",
-        "@rules_rust_wasm_bindgen__twoway__0_1_8//:twoway",
-    ],
-)
-
-# Unsupported target "hyper_client" with type "example" omitted
-
-# Unsupported target "hyper_reqbuilder" with type "example" omitted
-
-# Unsupported target "hyper_server" with type "example" omitted
-
-# Unsupported target "iron" with type "example" omitted
-
-# Unsupported target "iron_intercept" with type "example" omitted
-
-# Unsupported target "nickel" with type "example" omitted
-
-# Unsupported target "rocket" with type "example" omitted
-
-# Unsupported target "tiny_http" with type "example" omitted
-
-rust_library(
-    name = "multipart",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "buf_redux",
-        "httparse",
-        "quick-error",
-        "safemem",
-        "server",
-        "twoway",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.18.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__buf_redux__0_8_4//:buf_redux",
-        "@rules_rust_wasm_bindgen__httparse__1_5_1//:httparse",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__mime__0_3_16//:mime",
-        "@rules_rust_wasm_bindgen__mime_guess__2_0_3//:mime_guess",
-        "@rules_rust_wasm_bindgen__quick_error__1_2_3//:quick_error",
-        "@rules_rust_wasm_bindgen__rand__0_8_4//:rand",
-        "@rules_rust_wasm_bindgen__safemem__0_3_3//:safemem",
-        "@rules_rust_wasm_bindgen__tempfile__3_2_0//:tempfile",
-        "@rules_rust_wasm_bindgen__twoway__0_1_8//:twoway",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.normalize-line-endings-0.3.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.normalize-line-endings-0.3.0.bazel
deleted file mode 100644
index 03c0389..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.normalize-line-endings-0.3.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "normalize_line_endings",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-integer-0.1.44.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-integer-0.1.44.bazel
deleted file mode 100644
index 1052c08..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-integer-0.1.44.bazel
+++ /dev/null
@@ -1,95 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "num_integer_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.44",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__autocfg__1_0_1//:autocfg",
-    ],
-)
-
-# Unsupported target "average" with type "bench" omitted
-
-# Unsupported target "gcd" with type "bench" omitted
-
-# Unsupported target "roots" with type "bench" omitted
-
-rust_library(
-    name = "num_integer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.44",
-    # buildifier: leave-alone
-    deps = [
-        ":num_integer_build_script",
-        "@rules_rust_wasm_bindgen__num_traits__0_2_14//:num_traits",
-    ],
-)
-
-# Unsupported target "average" with type "test" omitted
-
-# Unsupported target "roots" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-traits-0.2.14.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-traits-0.2.14.bazel
deleted file mode 100644
index 7532249..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num-traits-0.2.14.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "num_traits_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__autocfg__1_0_1//:autocfg",
-    ],
-)
-
-rust_library(
-    name = "num_traits",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.14",
-    # buildifier: leave-alone
-    deps = [
-        ":num_traits_build_script",
-    ],
-)
-
-# Unsupported target "cast" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num_cpus-1.13.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num_cpus-1.13.0.bazel
deleted file mode 100644
index abca5ea..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.num_cpus-1.13.0.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "values" with type "example" omitted
-
-rust_library(
-    name = "num_cpus",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.13.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-probe-0.1.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-probe-0.1.4.bazel
deleted file mode 100644
index 7583d6c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-probe-0.1.4.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "openssl_probe",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.4",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-sys-0.9.70.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-sys-0.9.70.bazel
deleted file mode 100644
index 2024b3d..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.openssl-sys-0.9.70.bazel
+++ /dev/null
@@ -1,79 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "build-script-main" with type "custom-build" omitted
-
-rust_library(
-    name = "openssl_sys",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=ossl101",
-        "--cfg=ossl102",
-        "--cfg=ossl102f",
-        "--cfg=ossl102h",
-        "--cfg=ossl110",
-        "--cfg=ossl110f",
-        "--cfg=ossl110g",
-        "--cfg=ossl111",
-        "--cfg=ossl111b",
-        "-l",
-        "dylib=ssl",
-        "-l",
-        "dylib=crypto",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.70",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-    ] + selects.with_or({
-        # cfg(target_env = "msvc")
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.percent-encoding-2.1.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.percent-encoding-2.1.0.bazel
deleted file mode 100644
index c791a19..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.percent-encoding-2.1.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "percent_encoding",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.pkg-config-0.3.22.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.pkg-config-0.3.22.bazel
deleted file mode 100644
index 0d4ccef..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.pkg-config-0.3.22.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "pkg_config",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.22",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ppv-lite86-0.2.15.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ppv-lite86-0.2.15.bazel
deleted file mode 100644
index 843ee59..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ppv-lite86-0.2.15.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "ppv_lite86",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "simd",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.15",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-1.0.8.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-1.0.8.bazel
deleted file mode 100644
index 49ffdbd..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-1.0.8.bazel
+++ /dev/null
@@ -1,65 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "case_tree" with type "example" omitted
-
-rust_library(
-    name = "predicates",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "difference",
-        "float-cmp",
-        "normalize-line-endings",
-        "regex",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.8",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__difference__2_0_0//:difference",
-        "@rules_rust_wasm_bindgen__float_cmp__0_8_0//:float_cmp",
-        "@rules_rust_wasm_bindgen__normalize_line_endings__0_3_0//:normalize_line_endings",
-        "@rules_rust_wasm_bindgen__predicates_core__1_0_2//:predicates_core",
-        "@rules_rust_wasm_bindgen__regex__1_5_4//:regex",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-2.0.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-2.0.3.bazel
deleted file mode 100644
index 01a3dcb..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-2.0.3.bazel
+++ /dev/null
@@ -1,60 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "case_tree" with type "example" omitted
-
-rust_library(
-    name = "predicates",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "diff",
-        "difflib",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.0.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__difflib__0_4_0//:difflib",
-        "@rules_rust_wasm_bindgen__itertools__0_10_1//:itertools",
-        "@rules_rust_wasm_bindgen__predicates_core__1_0_2//:predicates_core",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-core-1.0.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-core-1.0.2.bazel
deleted file mode 100644
index a5d5643..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-core-1.0.2.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "predicates_core",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-tree-1.0.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-tree-1.0.4.bazel
deleted file mode 100644
index 3a2eea6..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.predicates-tree-1.0.4.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "failures" with type "example" omitted
-
-rust_library(
-    name = "predicates_tree",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__predicates_core__1_0_2//:predicates_core",
-        "@rules_rust_wasm_bindgen__termtree__0_2_3//:termtree",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.proc-macro2-1.0.32.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.proc-macro2-1.0.32.bazel
deleted file mode 100644
index 2f4799f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.proc-macro2-1.0.32.bazel
+++ /dev/null
@@ -1,99 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "proc_macro2_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "proc_macro2",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=use_proc_macro",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.32",
-    # buildifier: leave-alone
-    deps = [
-        ":proc_macro2_build_script",
-        "@rules_rust_wasm_bindgen__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "features" with type "test" omitted
-
-# Unsupported target "marker" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
-
-# Unsupported target "test_fmt" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quick-error-1.2.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quick-error-1.2.3.bazel
deleted file mode 100644
index d528050..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quick-error-1.2.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "context" with type "example" omitted
-
-rust_library(
-    name = "quick_error",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.2.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quote-1.0.10.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quote-1.0.10.bazel
deleted file mode 100644
index 8db384e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.quote-1.0.10.bazel
+++ /dev/null
@@ -1,62 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "quote",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "proc-macro",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-    ],
-)
-
-# Unsupported target "compiletest" with type "test" omitted
-
-# Unsupported target "test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand-0.8.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand-0.8.4.bazel
deleted file mode 100644
index 795e889..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand-0.8.4.bazel
+++ /dev/null
@@ -1,114 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-        "alloc",
-        "default",
-        "getrandom",
-        "libc",
-        "rand_chacha",
-        "rand_hc",
-        "std",
-        "std_rng",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__rand_core__0_6_3//:rand_core",
-    ] + selects.with_or({
-        # cfg(not(target_os = "emscripten"))
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-unknown-unknown",
-            "@rules_rust//rust/platform:wasm32-wasi",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__rand_chacha__0_3_1//:rand_chacha",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_chacha-0.3.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_chacha-0.3.1.bazel
deleted file mode 100644
index ca21d12..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_chacha-0.3.1.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand_chacha",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__ppv_lite86__0_2_15//:ppv_lite86",
-        "@rules_rust_wasm_bindgen__rand_core__0_6_3//:rand_core",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_core-0.6.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_core-0.6.3.bazel
deleted file mode 100644
index b8f563d..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_core-0.6.3.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand_core",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "getrandom",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.3",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__getrandom__0_2_3//:getrandom",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_hc-0.3.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_hc-0.3.1.bazel
deleted file mode 100644
index 0812602..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rand_hc-0.3.1.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rand_hc",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__rand_core__0_6_3//:rand_core",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-1.5.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-1.5.1.bazel
deleted file mode 100644
index d125b81..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-1.5.1.bazel
+++ /dev/null
@@ -1,117 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "rayon_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.1",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__autocfg__1_0_1//:autocfg",
-    ],
-)
-
-# Unsupported target "cpu_monitor" with type "example" omitted
-
-rust_library(
-    name = "rayon",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.1",
-    # buildifier: leave-alone
-    deps = [
-        ":rayon_build_script",
-        "@rules_rust_wasm_bindgen__crossbeam_deque__0_8_1//:crossbeam_deque",
-        "@rules_rust_wasm_bindgen__either__1_6_1//:either",
-        "@rules_rust_wasm_bindgen__rayon_core__1_9_1//:rayon_core",
-    ],
-)
-
-# Unsupported target "chars" with type "test" omitted
-
-# Unsupported target "clones" with type "test" omitted
-
-# Unsupported target "collect" with type "test" omitted
-
-# Unsupported target "cross-pool" with type "test" omitted
-
-# Unsupported target "debug" with type "test" omitted
-
-# Unsupported target "intersperse" with type "test" omitted
-
-# Unsupported target "issue671" with type "test" omitted
-
-# Unsupported target "issue671-unzip" with type "test" omitted
-
-# Unsupported target "iter_panic" with type "test" omitted
-
-# Unsupported target "named-threads" with type "test" omitted
-
-# Unsupported target "octillion" with type "test" omitted
-
-# Unsupported target "producer_split_at" with type "test" omitted
-
-# Unsupported target "sort-panic-safe" with type "test" omitted
-
-# Unsupported target "str" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-core-1.9.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-core-1.9.1.bazel
deleted file mode 100644
index 1b2754b..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rayon-core-1.9.1.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "rayon_core_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    links = "rayon-core",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.9.1",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "rayon_core",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.9.1",
-    # buildifier: leave-alone
-    deps = [
-        ":rayon_core_build_script",
-        "@rules_rust_wasm_bindgen__crossbeam_channel__0_5_1//:crossbeam_channel",
-        "@rules_rust_wasm_bindgen__crossbeam_deque__0_8_1//:crossbeam_deque",
-        "@rules_rust_wasm_bindgen__crossbeam_utils__0_8_5//:crossbeam_utils",
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__num_cpus__1_13_0//:num_cpus",
-    ],
-)
-
-# Unsupported target "double_init_fail" with type "test" omitted
-
-# Unsupported target "init_zero_threads" with type "test" omitted
-
-# Unsupported target "scope_join" with type "test" omitted
-
-# Unsupported target "scoped_threadpool" with type "test" omitted
-
-# Unsupported target "simple_panic" with type "test" omitted
-
-# Unsupported target "stack_overflow_crash" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.redox_syscall-0.2.10.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.redox_syscall-0.2.10.bazel
deleted file mode 100644
index 572b544..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.redox_syscall-0.2.10.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-alias(
-    name = "redox_syscall",
-    actual = ":syscall",
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-)
-
-rust_library(
-    name = "syscall",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.10",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__bitflags__1_3_2//:bitflags",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-1.5.4.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-1.5.4.bazel
deleted file mode 100644
index d5527a9..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-1.5.4.bazel
+++ /dev/null
@@ -1,103 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "shootout-regex-dna" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-bytes" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-cheat" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-replace" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single" with type "example" omitted
-
-# Unsupported target "shootout-regex-dna-single-cheat" with type "example" omitted
-
-rust_library(
-    name = "regex",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "aho-corasick",
-        "default",
-        "memchr",
-        "perf",
-        "perf-cache",
-        "perf-dfa",
-        "perf-inline",
-        "perf-literal",
-        "std",
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.4",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__aho_corasick__0_7_18//:aho_corasick",
-        "@rules_rust_wasm_bindgen__memchr__2_4_1//:memchr",
-        "@rules_rust_wasm_bindgen__regex_syntax__0_6_25//:regex_syntax",
-    ],
-)
-
-# Unsupported target "backtrack" with type "test" omitted
-
-# Unsupported target "backtrack-bytes" with type "test" omitted
-
-# Unsupported target "backtrack-utf8bytes" with type "test" omitted
-
-# Unsupported target "crates-regex" with type "test" omitted
-
-# Unsupported target "default" with type "test" omitted
-
-# Unsupported target "default-bytes" with type "test" omitted
-
-# Unsupported target "nfa" with type "test" omitted
-
-# Unsupported target "nfa-bytes" with type "test" omitted
-
-# Unsupported target "nfa-utf8bytes" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-automata-0.1.10.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-automata-0.1.10.bazel
deleted file mode 100644
index d11e49c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-automata-0.1.10.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "regex_automata",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.10",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "default" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel
deleted file mode 100644
index cb10f74..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.regex-syntax-0.6.25.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "regex_syntax",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "unicode",
-        "unicode-age",
-        "unicode-bool",
-        "unicode-case",
-        "unicode-gencat",
-        "unicode-perl",
-        "unicode-script",
-        "unicode-segment",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.25",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.remove_dir_all-0.5.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.remove_dir_all-0.5.3.bazel
deleted file mode 100644
index 4171bd3..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.remove_dir_all-0.5.3.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "remove_dir_all",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.5.3",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rouille-3.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rouille-3.4.0.bazel
deleted file mode 100644
index 92a917c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rouille-3.4.0.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "database" with type "example" omitted
-
-# Unsupported target "git-http-backend" with type "example" omitted
-
-# Unsupported target "hello-world" with type "example" omitted
-
-# Unsupported target "login-session" with type "example" omitted
-
-# Unsupported target "php" with type "example" omitted
-
-# Unsupported target "reverse-proxy" with type "example" omitted
-
-# Unsupported target "simple-form" with type "example" omitted
-
-# Unsupported target "static-files" with type "example" omitted
-
-# Unsupported target "websocket" with type "example" omitted
-
-rust_library(
-    name = "rouille",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "3.4.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__base64__0_13_0//:base64",
-        "@rules_rust_wasm_bindgen__chrono__0_4_19//:chrono",
-        "@rules_rust_wasm_bindgen__filetime__0_2_15//:filetime",
-        "@rules_rust_wasm_bindgen__multipart__0_18_0//:multipart",
-        "@rules_rust_wasm_bindgen__num_cpus__1_13_0//:num_cpus",
-        "@rules_rust_wasm_bindgen__percent_encoding__2_1_0//:percent_encoding",
-        "@rules_rust_wasm_bindgen__rand__0_8_4//:rand",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-        "@rules_rust_wasm_bindgen__sha1__0_6_0//:sha1",
-        "@rules_rust_wasm_bindgen__threadpool__1_8_1//:threadpool",
-        "@rules_rust_wasm_bindgen__time__0_3_2//:time",
-        "@rules_rust_wasm_bindgen__tiny_http__0_8_2//:tiny_http",
-        "@rules_rust_wasm_bindgen__url__2_2_2//:url",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rustc-demangle-0.1.21.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rustc-demangle-0.1.21.bazel
deleted file mode 100644
index 1b985ba..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.rustc-demangle-0.1.21.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "rustc_demangle",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.21",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ryu-1.0.5.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ryu-1.0.5.bazel
deleted file mode 100644
index f0f6478..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.ryu-1.0.5.bazel
+++ /dev/null
@@ -1,101 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR BSL-1.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "ryu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "bench" with type "bench" omitted
-
-# Unsupported target "upstream_benchmark" with type "example" omitted
-
-rust_library(
-    name = "ryu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.5",
-    # buildifier: leave-alone
-    deps = [
-        ":ryu_build_script",
-    ],
-)
-
-# Unsupported target "common_test" with type "test" omitted
-
-# Unsupported target "d2s_table_test" with type "test" omitted
-
-# Unsupported target "d2s_test" with type "test" omitted
-
-# Unsupported target "exhaustive" with type "test" omitted
-
-# Unsupported target "f2s_test" with type "test" omitted
-
-# Unsupported target "s2d_test" with type "test" omitted
-
-# Unsupported target "s2f_test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.safemem-0.3.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.safemem-0.3.3.bazel
deleted file mode 100644
index 294d28a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.safemem-0.3.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "safemem",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.schannel-0.1.19.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.schannel-0.1.19.bazel
deleted file mode 100644
index 4cd6525..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.schannel-0.1.19.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "schannel",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.scopeguard-1.1.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.scopeguard-1.1.0.bazel
deleted file mode 100644
index eac55e3..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.scopeguard-1.1.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "readme" with type "example" omitted
-
-rust_library(
-    name = "scopeguard",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde-1.0.130.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde-1.0.130.bazel
deleted file mode 100644
index 851d77f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde-1.0.130.bazel
+++ /dev/null
@@ -1,94 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "derive",
-        "serde_derive",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_derive-1.0.130.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_derive-1.0.130.bazel
deleted file mode 100644
index ffab3df..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_derive-1.0.130.bazel
+++ /dev/null
@@ -1,88 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_derive_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_proc_macro(
-    name = "serde_derive",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.130",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_derive_build_script",
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__syn__1_0_81//:syn",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_json-1.0.69.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_json-1.0.69.bazel
deleted file mode 100644
index 6446158..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.serde_json-1.0.69.bazel
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "serde_json_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "serde_json",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.69",
-    # buildifier: leave-alone
-    deps = [
-        ":serde_json_build_script",
-        "@rules_rust_wasm_bindgen__itoa__0_4_8//:itoa",
-        "@rules_rust_wasm_bindgen__ryu__1_0_5//:ryu",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.sha1-0.6.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.sha1-0.6.0.bazel
deleted file mode 100644
index d08acb1..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.sha1-0.6.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "sha1",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.socket2-0.4.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.socket2-0.4.2.bazel
deleted file mode 100644
index d407cf1..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.socket2-0.4.2.bazel
+++ /dev/null
@@ -1,87 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "socket2",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.2",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.strsim-0.10.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.strsim-0.10.0.bazel
deleted file mode 100644
index 79f33d0..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.strsim-0.10.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-rust_library(
-    name = "strsim",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "lib" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.syn-1.0.81.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.syn-1.0.81.bazel
deleted file mode 100644
index 96f181a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.syn-1.0.81.bazel
+++ /dev/null
@@ -1,162 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "syn_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-# Unsupported target "file" with type "bench" omitted
-
-# Unsupported target "rust" with type "bench" omitted
-
-rust_library(
-    name = "syn",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "clone-impls",
-        "default",
-        "derive",
-        "extra-traits",
-        "full",
-        "parsing",
-        "printing",
-        "proc-macro",
-        "quote",
-        "visit",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.0.81",
-    # buildifier: leave-alone
-    deps = [
-        ":syn_build_script",
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__unicode_xid__0_2_2//:unicode_xid",
-    ],
-)
-
-# Unsupported target "test_asyncness" with type "test" omitted
-
-# Unsupported target "test_attribute" with type "test" omitted
-
-# Unsupported target "test_derive_input" with type "test" omitted
-
-# Unsupported target "test_expr" with type "test" omitted
-
-# Unsupported target "test_generics" with type "test" omitted
-
-# Unsupported target "test_grouping" with type "test" omitted
-
-# Unsupported target "test_ident" with type "test" omitted
-
-# Unsupported target "test_item" with type "test" omitted
-
-# Unsupported target "test_iterators" with type "test" omitted
-
-# Unsupported target "test_lit" with type "test" omitted
-
-# Unsupported target "test_meta" with type "test" omitted
-
-# Unsupported target "test_parse_buffer" with type "test" omitted
-
-# Unsupported target "test_parse_stream" with type "test" omitted
-
-# Unsupported target "test_pat" with type "test" omitted
-
-# Unsupported target "test_path" with type "test" omitted
-
-# Unsupported target "test_precedence" with type "test" omitted
-
-# Unsupported target "test_receiver" with type "test" omitted
-
-# Unsupported target "test_round_trip" with type "test" omitted
-
-# Unsupported target "test_shebang" with type "test" omitted
-
-# Unsupported target "test_should_parse" with type "test" omitted
-
-# Unsupported target "test_size" with type "test" omitted
-
-# Unsupported target "test_stmt" with type "test" omitted
-
-# Unsupported target "test_token_trees" with type "test" omitted
-
-# Unsupported target "test_ty" with type "test" omitted
-
-# Unsupported target "test_visibility" with type "test" omitted
-
-# Unsupported target "zzz_stable" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tempfile-3.2.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tempfile-3.2.0.bazel
deleted file mode 100644
index 10cef58..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tempfile-3.2.0.bazel
+++ /dev/null
@@ -1,98 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tempfile",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "3.2.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-        "@rules_rust_wasm_bindgen__rand__0_8_4//:rand",
-        "@rules_rust_wasm_bindgen__remove_dir_all__0_5_3//:remove_dir_all",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "namedtempfile" with type "test" omitted
-
-# Unsupported target "spooled" with type "test" omitted
-
-# Unsupported target "tempdir" with type "test" omitted
-
-# Unsupported target "tempfile" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel
deleted file mode 100644
index 5d755f1..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termcolor-1.1.2.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "termcolor",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.1.2",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi_util__0_1_5//:winapi_util",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termtree-0.2.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termtree-0.2.3.bazel
deleted file mode 100644
index 8392103..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.termtree-0.2.3.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT"
-])
-
-# Generated Targets
-
-# Unsupported target "tree" with type "example" omitted
-
-rust_library(
-    name = "termtree",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.threadpool-1.8.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.threadpool-1.8.1.bazel
deleted file mode 100644
index 5063471..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.threadpool-1.8.1.bazel
+++ /dev/null
@@ -1,54 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "threadpool",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.8.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__num_cpus__1_13_0//:num_cpus",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.time-0.3.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.time-0.3.2.bazel
deleted file mode 100644
index 19f68bb..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.time-0.3.2.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmarks" with type "bench" omitted
-
-rust_library(
-    name = "time",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "default",
-        "local-offset",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tiny_http-0.8.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tiny_http-0.8.2.bazel
deleted file mode 100644
index b961910..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tiny_http-0.8.2.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-# Unsupported target "hello-world" with type "example" omitted
-
-# Unsupported target "php-cgi" with type "example" omitted
-
-# Unsupported target "readme-example" with type "example" omitted
-
-# Unsupported target "serve-root" with type "example" omitted
-
-# Unsupported target "ssl" with type "example" omitted
-
-# Unsupported target "websockets" with type "example" omitted
-
-rust_library(
-    name = "tiny_http",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__ascii__1_0_0//:ascii",
-        "@rules_rust_wasm_bindgen__chrono__0_4_19//:chrono",
-        "@rules_rust_wasm_bindgen__chunked_transfer__1_4_0//:chunked_transfer",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__url__2_2_2//:url",
-    ],
-)
-
-# Unsupported target "input-tests" with type "test" omitted
-
-# Unsupported target "network" with type "test" omitted
-
-# Unsupported target "non-chunked-buffering" with type "test" omitted
-
-# Unsupported target "simple-test" with type "test" omitted
-
-# Unsupported target "unblock-test" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec-1.5.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec-1.5.0.bazel
deleted file mode 100644
index 7ffd979..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec-1.5.0.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Zlib from expression "Zlib OR (Apache-2.0 OR MIT)"
-])
-
-# Generated Targets
-
-# Unsupported target "macros" with type "bench" omitted
-
-rust_library(
-    name = "tinyvec",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "alloc",
-        "default",
-        "tinyvec_macros",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.5.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__tinyvec_macros__0_1_0//:tinyvec_macros",
-    ],
-)
-
-# Unsupported target "arrayvec" with type "test" omitted
-
-# Unsupported target "tinyvec" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel
deleted file mode 100644
index 48a87b3..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.tinyvec_macros-0.1.0.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR (Apache-2.0 OR Zlib)"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "tinyvec_macros",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.twoway-0.1.8.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.twoway-0.1.8.bazel
deleted file mode 100644
index d120bdc..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.twoway-0.1.8.bazel
+++ /dev/null
@@ -1,60 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "pathology" with type "bench" omitted
-
-rust_library(
-    name = "twoway",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "use_std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.8",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__memchr__2_4_1//:memchr",
-    ],
-)
-
-# Unsupported target "quick" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicase-2.6.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicase-2.6.0.bazel
deleted file mode 100644
index f04e0fd..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicase-2.6.0.bazel
+++ /dev/null
@@ -1,86 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "unicase_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.6.0",
-    visibility = ["//visibility:private"],
-    deps = [
-        "@rules_rust_wasm_bindgen__version_check__0_9_3//:version_check",
-    ],
-)
-
-rust_library(
-    name = "unicase",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-        "--cfg=__unicase__iter_cmp",
-        "--cfg=__unicase__defauler_hasher",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.6.0",
-    # buildifier: leave-alone
-    deps = [
-        ":unicase_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-bidi-0.3.7.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-bidi-0.3.7.bazel
deleted file mode 100644
index b3221a5..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-bidi-0.3.7.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "unicode_bidi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.7",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-normalization-0.1.19.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-normalization-0.1.19.bazel
deleted file mode 100644
index b3858b8..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-normalization-0.1.19.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "bench" with type "bench" omitted
-
-rust_library(
-    name = "unicode_normalization",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.19",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__tinyvec__1_5_0//:tinyvec",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
deleted file mode 100644
index bdf802a..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-segmentation-1.8.0.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "graphemes" with type "bench" omitted
-
-# Unsupported target "unicode_words" with type "bench" omitted
-
-# Unsupported target "word_bounds" with type "bench" omitted
-
-rust_library(
-    name = "unicode_segmentation",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "1.8.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel
deleted file mode 100644
index 4e29489..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.unicode-xid-0.2.2.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "xid" with type "bench" omitted
-
-rust_library(
-    name = "unicode_xid",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.2",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
-
-# Unsupported target "exhaustive_tests" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.url-2.2.2.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.url-2.2.2.bazel
deleted file mode 100644
index 965da58..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.url-2.2.2.bazel
+++ /dev/null
@@ -1,63 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "parse_url" with type "bench" omitted
-
-rust_library(
-    name = "url",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "2.2.2",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__form_urlencoded__1_0_1//:form_urlencoded",
-        "@rules_rust_wasm_bindgen__idna__0_2_3//:idna",
-        "@rules_rust_wasm_bindgen__matches__0_1_9//:matches",
-        "@rules_rust_wasm_bindgen__percent_encoding__2_1_0//:percent_encoding",
-    ],
-)
-
-# Unsupported target "data" with type "test" omitted
-
-# Unsupported target "unit" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.vcpkg-0.2.15.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.vcpkg-0.2.15.bazel
deleted file mode 100644
index d58cb85..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.vcpkg-0.2.15.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "vcpkg",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.15",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.version_check-0.9.3.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.version_check-0.9.3.bazel
deleted file mode 100644
index f2848d8..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.version_check-0.9.3.bazel
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "version_check",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.9.3",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wait-timeout-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wait-timeout-0.2.0.bazel
deleted file mode 100644
index 5c86484..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wait-timeout-0.2.0.bazel
+++ /dev/null
@@ -1,227 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_exit",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/bin/exit.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        ":wait_timeout",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_reader",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/bin/reader.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        ":wait_timeout",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_sleep",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/bin/sleep.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        ":wait_timeout",
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-rust_library(
-    name = "wait_timeout",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(unix)
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-ios",
-            "@rules_rust//rust/platform:aarch64-linux-android",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
-            "@rules_rust//rust/platform:i686-linux-android",
-            "@rules_rust//rust/platform:i686-unknown-freebsd",
-            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
-            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-ios",
-            "@rules_rust//rust/platform:x86_64-linux-android",
-            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
-        ): [
-            "@rules_rust_wasm_bindgen__libc__0_2_107//:libc",
-        ],
-        "//conditions:default": [],
-    }),
-)
-
-# Unsupported target "smoke" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-0.19.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-0.19.0.bazel
deleted file mode 100644
index 2c656e4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-0.19.0.bazel
+++ /dev/null
@@ -1,72 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benches" with type "bench" omitted
-
-# Unsupported target "build-wasm-from-scratch" with type "example" omitted
-
-# Unsupported target "parse" with type "example" omitted
-
-# Unsupported target "round-trip" with type "example" omitted
-
-rust_library(
-    name = "walrus",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "parallel",
-        "rayon",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__walrus_macro__0_19_0//:walrus_macro",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.19.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__id_arena__2_2_1//:id_arena",
-        "@rules_rust_wasm_bindgen__leb128__0_2_5//:leb128",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__rayon__1_5_1//:rayon",
-        "@rules_rust_wasm_bindgen__wasmparser__0_77_0//:wasmparser",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-macro-0.19.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-macro-0.19.0.bazel
deleted file mode 100644
index c85ede7..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.walrus-macro-0.19.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_proc_macro(
-    name = "walrus_macro",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.19.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__heck__0_3_3//:heck",
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__syn__1_0_81//:syn",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
deleted file mode 100644
index 88a85d4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasi-0.10.2+wasi-snapshot-preview1.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0 OR (Apache-2.0 OR MIT)"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.10.2+wasi-snapshot-preview1",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-0.2.78.bazel
deleted file mode 100644
index b3d6168..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-0.2.78.bazel
+++ /dev/null
@@ -1,105 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "wasm_bindgen_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "default",
-        "spans",
-        "std",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "wasm_bindgen",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "spans",
-        "std",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__wasm_bindgen_macro__0_2_78//:wasm_bindgen_macro",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        ":wasm_bindgen_build_script",
-        "@rules_rust_wasm_bindgen__cfg_if__1_0_0//:cfg_if",
-    ],
-)
-
-# Unsupported target "headless" with type "test" omitted
-
-# Unsupported target "must_use" with type "test" omitted
-
-# Unsupported target "non_wasm" with type "test" omitted
-
-# Unsupported target "std-crate-no-std-dep" with type "test" omitted
-
-# Unsupported target "unwrap_throw" with type "test" omitted
-
-# Unsupported target "wasm" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-backend-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-backend-0.2.78.bazel
deleted file mode 100644
index 2eab676..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-backend-0.2.78.bazel
+++ /dev/null
@@ -1,61 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_backend",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "spans",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__bumpalo__3_8_0//:bumpalo",
-        "@rules_rust_wasm_bindgen__lazy_static__1_4_0//:lazy_static",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__syn__1_0_81//:syn",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-0.2.78.bazel
deleted file mode 100644
index da9e03e..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-0.2.78.bazel
+++ /dev/null
@@ -1,149 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_wasm_bindgen",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/wasm-bindgen.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__curl__0_4_40//:curl",
-        "@rules_rust_wasm_bindgen__docopt__1_1_1//:docopt",
-        "@rules_rust_wasm_bindgen__env_logger__0_8_4//:env_logger",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__rouille__3_4_0//:rouille",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_cli_support__0_2_78//:wasm_bindgen_cli_support",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    ],
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_wasm_bindgen_test_runner",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/wasm-bindgen-test-runner/main.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__curl__0_4_40//:curl",
-        "@rules_rust_wasm_bindgen__docopt__1_1_1//:docopt",
-        "@rules_rust_wasm_bindgen__env_logger__0_8_4//:env_logger",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__rouille__3_4_0//:rouille",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_cli_support__0_2_78//:wasm_bindgen_cli_support",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    ],
-)
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_wasm2es6js",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/bin/wasm2es6js.rs",
-    data = [],
-    edition = "2018",
-    proc_macro_deps = [
-        "@rules_rust_wasm_bindgen__serde_derive__1_0_130//:serde_derive",
-    ],
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__curl__0_4_40//:curl",
-        "@rules_rust_wasm_bindgen__docopt__1_1_1//:docopt",
-        "@rules_rust_wasm_bindgen__env_logger__0_8_4//:env_logger",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__rouille__3_4_0//:rouille",
-        "@rules_rust_wasm_bindgen__serde__1_0_130//:serde",
-        "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_cli_support__0_2_78//:wasm_bindgen_cli_support",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    ],
-)
-
-# Unsupported target "interface-types" with type "test" omitted
-
-# Unsupported target "reference" with type "test" omitted
-
-# Unsupported target "wasm-bindgen" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-support-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-support-0.2.78.bazel
deleted file mode 100644
index 383b043..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-cli-support-0.2.78.bazel
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_cli_support",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__base64__0_9_3//:base64",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__rustc_demangle__0_1_21//:rustc_demangle",
-        "@rules_rust_wasm_bindgen__serde_json__1_0_69//:serde_json",
-        "@rules_rust_wasm_bindgen__tempfile__3_2_0//:tempfile",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_externref_xform__0_2_78//:wasm_bindgen_externref_xform",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_multi_value_xform__0_2_78//:wasm_bindgen_multi_value_xform",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_threads_xform__0_2_78//:wasm_bindgen_threads_xform",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_wasm_conventions__0_2_78//:wasm_bindgen_wasm_conventions",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_wasm_interpreter__0_2_78//:wasm_bindgen_wasm_interpreter",
-        "@rules_rust_wasm_bindgen__wit_text__0_8_0//:wit_text",
-        "@rules_rust_wasm_bindgen__wit_validator__0_2_1//:wit_validator",
-        "@rules_rust_wasm_bindgen__wit_walrus__0_6_0//:wit_walrus",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-externref-xform-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-externref-xform-0.2.78.bazel
deleted file mode 100644
index fd43bb2..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-externref-xform-0.2.78.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_externref_xform",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-    ],
-)
-
-# Unsupported target "all" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-0.2.78.bazel
deleted file mode 100644
index eef1fa1..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-0.2.78.bazel
+++ /dev/null
@@ -1,58 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_proc_macro(
-    name = "wasm_bindgen_macro",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "spans",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_macro_support__0_2_78//:wasm_bindgen_macro_support",
-    ],
-)
-
-# Unsupported target "ui" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-support-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-support-0.2.78.bazel
deleted file mode 100644
index 4676a13..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-macro-support-0.2.78.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_macro_support",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "spans",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__proc_macro2__1_0_32//:proc_macro2",
-        "@rules_rust_wasm_bindgen__quote__1_0_10//:quote",
-        "@rules_rust_wasm_bindgen__syn__1_0_81//:syn",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_backend__0_2_78//:wasm_bindgen_backend",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_shared__0_2_78//:wasm_bindgen_shared",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-multi-value-xform-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-multi-value-xform-0.2.78.bazel
deleted file mode 100644
index 194a8b0..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-multi-value-xform-0.2.78.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_multi_value_xform",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-    ],
-)
-
-# Unsupported target "all" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-shared-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-shared-0.2.78.bazel
deleted file mode 100644
index 9a73b97..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-shared-0.2.78.bazel
+++ /dev/null
@@ -1,84 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "wasm_bindgen_shared_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2018",
-    links = "wasm_bindgen",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "wasm_bindgen_shared",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        ":wasm_bindgen_shared_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-threads-xform-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-threads-xform-0.2.78.bazel
deleted file mode 100644
index 6e22501..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-threads-xform-0.2.78.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_threads_xform",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_wasm_conventions__0_2_78//:wasm_bindgen_wasm_conventions",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-conventions-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-conventions-0.2.78.bazel
deleted file mode 100644
index c847aaa..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-conventions-0.2.78.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_wasm_conventions",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-interpreter-0.2.78.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-interpreter-0.2.78.bazel
deleted file mode 100644
index 216f2c9..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasm-bindgen-wasm-interpreter-0.2.78.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasm_bindgen_wasm_interpreter",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.78",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__log__0_4_14//:log",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wasm_bindgen_wasm_conventions__0_2_78//:wasm_bindgen_wasm_conventions",
-    ],
-)
-
-# Unsupported target "smoke" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.59.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.59.0.bazel
deleted file mode 100644
index b67db40..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.59.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmark" with type "bench" omitted
-
-# Unsupported target "simple" with type "example" omitted
-
-rust_library(
-    name = "wasmparser",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.59.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.77.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.77.0.bazel
deleted file mode 100644
index c90a80d..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.77.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmark" with type "bench" omitted
-
-# Unsupported target "simple" with type "example" omitted
-
-rust_library(
-    name = "wasmparser",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.77.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.81.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.81.0.bazel
deleted file mode 100644
index ec6874c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmparser-0.81.0.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "benchmark" with type "bench" omitted
-
-# Unsupported target "simple" with type "example" omitted
-
-rust_library(
-    name = "wasmparser",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.81.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmprinter-0.2.31.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmprinter-0.2.31.bazel
deleted file mode 100644
index d160327..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wasmprinter-0.2.31.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wasmprinter",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.31",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__wasmparser__0_81_0//:wasmparser",
-    ],
-)
-
-# Unsupported target "all" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wast-21.0.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wast-21.0.0.bazel
deleted file mode 100644
index dafc212..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wast-21.0.0.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wast",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "default",
-        "wasm-module",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "21.0.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__leb128__0_2_5//:leb128",
-    ],
-)
-
-# Unsupported target "annotations" with type "test" omitted
-
-# Unsupported target "comments" with type "test" omitted
-
-# Unsupported target "parse-fail" with type "test" omitted
-
-# Unsupported target "recursive" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-0.3.9.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-0.3.9.bazel
deleted file mode 100644
index b741a2c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-0.3.9.bazel
+++ /dev/null
@@ -1,133 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "handleapi",
-        "libloaderapi",
-        "lmcons",
-        "minschannel",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "schannel",
-        "securitybaseapi",
-        "sspi",
-        "std",
-        "sysinfoapi",
-        "timezoneapi",
-        "winbase",
-        "wincon",
-        "wincrypt",
-        "winerror",
-        "winnt",
-        "winsock2",
-        "ws2def",
-        "ws2ipdef",
-        "ws2tcpip",
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-        "consoleapi",
-        "errhandlingapi",
-        "fileapi",
-        "handleapi",
-        "libloaderapi",
-        "lmcons",
-        "minschannel",
-        "minwinbase",
-        "minwindef",
-        "processenv",
-        "schannel",
-        "securitybaseapi",
-        "sspi",
-        "std",
-        "sysinfoapi",
-        "timezoneapi",
-        "winbase",
-        "wincon",
-        "wincrypt",
-        "winerror",
-        "winnt",
-        "winsock2",
-        "ws2def",
-        "ws2ipdef",
-        "ws2tcpip",
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.3.9",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 2bd58be..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_i686_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_i686_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_i686_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel
deleted file mode 100644
index 9cf3e74..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-util-0.1.5.bazel
+++ /dev/null
@@ -1,64 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "unencumbered",  # Unlicense from expression "Unlicense OR MIT"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "winapi_util",
-    srcs = glob(["**/*.rs"]),
-    aliases = {
-    },
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.5",
-    # buildifier: leave-alone
-    deps = [
-    ] + selects.with_or({
-        # cfg(windows)
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@rules_rust_wasm_bindgen__winapi__0_3_9//:winapi",
-        ],
-        "//conditions:default": [],
-    }),
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
deleted file mode 100644
index 41d0496..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel
+++ /dev/null
@@ -1,83 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # MIT from expression "MIT OR Apache-2.0"
-])
-
-# Generated Targets
-# buildifier: disable=out-of-order-load
-# buildifier: disable=load-on-top
-load(
-    "@rules_rust//cargo:cargo_build_script.bzl",
-    "cargo_build_script",
-)
-
-cargo_build_script(
-    name = "winapi_x86_64_pc_windows_gnu_build_script",
-    srcs = glob(["**/*.rs"]),
-    build_script_env = {
-    },
-    crate_features = [
-    ],
-    crate_root = "build.rs",
-    data = glob(["**"]),
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    visibility = ["//visibility:private"],
-    deps = [
-    ],
-)
-
-rust_library(
-    name = "winapi_x86_64_pc_windows_gnu",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2015",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.4.0",
-    # buildifier: leave-alone
-    deps = [
-        ":winapi_x86_64_pc_windows_gnu_build_script",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-parser-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-parser-0.2.0.bazel
deleted file mode 100644
index d571710..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-parser-0.2.0.bazel
+++ /dev/null
@@ -1,56 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wit_parser",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__leb128__0_2_5//:leb128",
-        "@rules_rust_wasm_bindgen__wit_schema_version__0_1_0//:wit_schema_version",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-printer-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-printer-0.2.0.bazel
deleted file mode 100644
index 51f92a1..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-printer-0.2.0.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "wasm2wat" with type "example" omitted
-
-rust_library(
-    name = "wit_printer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__wasmprinter__0_2_31//:wasmprinter",
-        "@rules_rust_wasm_bindgen__wit_parser__0_2_0//:wit_parser",
-        "@rules_rust_wasm_bindgen__wit_schema_version__0_1_0//:wit_schema_version",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-schema-version-0.1.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-schema-version-0.1.0.bazel
deleted file mode 100644
index cda38e4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-schema-version-0.1.0.bazel
+++ /dev/null
@@ -1,77 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_binary(
-    # Prefix bin name to disambiguate from (probable) collision with lib name
-    # N.B.: The exact form of this is subject to change.
-    name = "cargo_bin_wit_schema_version",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/main.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.0",
-    # buildifier: leave-alone
-    deps = [
-        ":wit_schema_version",
-    ],
-)
-
-rust_library(
-    name = "wit_schema_version",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.1.0",
-    # buildifier: leave-alone
-    deps = [
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-text-0.8.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-text-0.8.0.bazel
deleted file mode 100644
index 29c068f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-text-0.8.0.bazel
+++ /dev/null
@@ -1,60 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-# Unsupported target "wat2wasm" with type "example" omitted
-
-rust_library(
-    name = "wit_text",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.8.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__wast__21_0_0//:wast",
-        "@rules_rust_wasm_bindgen__wit_writer__0_2_0//:wit_writer",
-    ],
-)
-
-# Unsupported target "all" with type "test" omitted
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-validator-0.2.1.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-validator-0.2.1.bazel
deleted file mode 100644
index 4e3f09c..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-validator-0.2.1.bazel
+++ /dev/null
@@ -1,57 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wit_validator",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.1",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__wasmparser__0_59_0//:wasmparser",
-        "@rules_rust_wasm_bindgen__wit_parser__0_2_0//:wit_parser",
-        "@rules_rust_wasm_bindgen__wit_schema_version__0_1_0//:wit_schema_version",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-walrus-0.6.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-walrus-0.6.0.bazel
deleted file mode 100644
index 802ae7f..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-walrus-0.6.0.bazel
+++ /dev/null
@@ -1,59 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wit_walrus",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.6.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__anyhow__1_0_45//:anyhow",
-        "@rules_rust_wasm_bindgen__id_arena__2_2_1//:id_arena",
-        "@rules_rust_wasm_bindgen__walrus__0_19_0//:walrus",
-        "@rules_rust_wasm_bindgen__wit_parser__0_2_0//:wit_parser",
-        "@rules_rust_wasm_bindgen__wit_schema_version__0_1_0//:wit_schema_version",
-        "@rules_rust_wasm_bindgen__wit_writer__0_2_0//:wit_writer",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-writer-0.2.0.bazel b/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-writer-0.2.0.bazel
deleted file mode 100644
index e1357c4..0000000
--- a/third_party/rules_rust/wasm_bindgen/raze/remote/BUILD.wit-writer-0.2.0.bazel
+++ /dev/null
@@ -1,55 +0,0 @@
-"""
-@generated
-cargo-raze crate build file.
-
-DO NOT EDIT! Replaced on runs of cargo-raze
-"""
-
-# buildifier: disable=load
-load("@bazel_skylib//lib:selects.bzl", "selects")
-
-# buildifier: disable=load
-load(
-    "@rules_rust//rust:defs.bzl",
-    "rust_binary",
-    "rust_library",
-    "rust_proc_macro",
-    "rust_test",
-)
-
-package(default_visibility = [
-    # Public for visibility by "@raze__crate__version//" targets.
-    #
-    # Prefer access through "//wasm_bindgen/raze", which limits external
-    # visibility to explicit Cargo.toml dependencies.
-    "//visibility:public",
-])
-
-licenses([
-    "notice",  # Apache-2.0 from expression "Apache-2.0"
-])
-
-# Generated Targets
-
-rust_library(
-    name = "wit_writer",
-    srcs = glob(["**/*.rs"]),
-    crate_features = [
-    ],
-    crate_root = "src/lib.rs",
-    data = [],
-    edition = "2018",
-    rustc_flags = [
-        "--cap-lints=allow",
-    ],
-    tags = [
-        "cargo-raze",
-        "manual",
-    ],
-    version = "0.2.0",
-    # buildifier: leave-alone
-    deps = [
-        "@rules_rust_wasm_bindgen__leb128__0_2_5//:leb128",
-        "@rules_rust_wasm_bindgen__wit_schema_version__0_1_0//:wit_schema_version",
-    ],
-)
diff --git a/third_party/rules_rust/wasm_bindgen/repositories.bzl b/third_party/rules_rust/wasm_bindgen/repositories.bzl
index 05fca81..1eac795 100644
--- a/third_party/rules_rust/wasm_bindgen/repositories.bzl
+++ b/third_party/rules_rust/wasm_bindgen/repositories.bzl
@@ -15,26 +15,61 @@
 # buildifier: disable=module-docstring
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
-load("//wasm_bindgen/raze:crates.bzl", "rules_rust_wasm_bindgen_fetch_remote_crates")
+load("//wasm_bindgen/3rdparty/crates:defs.bzl", "crate_repositories")
+
+WASM_BINDGEN_VERSION = "0.2.81"
+
+# buildifier: disable=unnamed-macro
+def rust_wasm_bindgen_dependencies():
+    """Declare dependencies needed for the `rules_rust` [wasm-bindgen][wb] rules.
+
+    [wb]: https://github.com/rustwasm/wasm-bindgen
+    """
+
+    maybe(
+        http_archive,
+        name = "rules_rust_wasm_bindgen_cli",
+        sha256 = "b255b6ab0d645af253319a990ad1f62e9efe2e72d353155f30834c10ecdb0af3",
+        urls = ["https://crates.io/api/v1/crates/wasm-bindgen-cli/{}/download".format(WASM_BINDGEN_VERSION)],
+        type = "tar.gz",
+        strip_prefix = "wasm-bindgen-cli-{}".format(WASM_BINDGEN_VERSION),
+        build_file = Label("//wasm_bindgen/3rdparty:BUILD.wasm-bindgen-cli.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "rules_nodejs",
+        sha256 = "017e2348bb8431156d5cf89b6f502c2e7fcffc568729f74f89e4a12bd8279e90",
+        urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.5.2/rules_nodejs-core-5.5.2.tar.gz"],
+    )
+
+    crate_repositories()
+
+# buildifier: disable=unnamed-macro
+def rust_wasm_bindgen_register_toolchains(register_toolchains = True):
+    """Registers the default toolchains for the `rules_rust` [wasm-bindgen][wb] rules.
+
+    [wb]: https://github.com/rustwasm/wasm-bindgen
+
+    Args:
+        register_toolchains (bool, optional): Whether or not to register toolchains.
+    """
+
+    if register_toolchains:
+        native.register_toolchains(str(Label("//wasm_bindgen:default_wasm_bindgen_toolchain")))
 
 # buildifier: disable=unnamed-macro
 def rust_wasm_bindgen_repositories(register_default_toolchain = True):
     """Declare dependencies needed for [rust_wasm_bindgen](#rust_wasm_bindgen).
 
+    **Deprecated**: Use [rust_wasm_bindgen_dependencies](#rust_wasm_bindgen_depednencies) and [rust_wasm_bindgen_register_toolchains](#rust_wasm_bindgen_register_toolchains).
+
     Args:
         register_default_toolchain (bool, optional): If True, the default [rust_wasm_bindgen_toolchain](#rust_wasm_bindgen_toolchain)
             (`@rules_rust//wasm_bindgen:default_wasm_bindgen_toolchain`) is registered. This toolchain requires a set of dependencies
             that were generated using [cargo raze](https://github.com/google/cargo-raze). These will also be loaded.
     """
 
-    maybe(
-        http_archive,
-        name = "build_bazel_rules_nodejs",
-        sha256 = "ddb78717b802f8dd5d4c01c340ecdc007c8ced5c1df7db421d0df3d642ea0580",
-        urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.6.0/rules_nodejs-4.6.0.tar.gz"],
-    )
+    rust_wasm_bindgen_dependencies()
 
-    # Load dependencies of the default toolchain and register it.
-    if register_default_toolchain:
-        rules_rust_wasm_bindgen_fetch_remote_crates()
-        native.register_toolchains(str(Label("//wasm_bindgen:default_wasm_bindgen_toolchain")))
+    rust_wasm_bindgen_register_toolchains(register_toolchains = register_default_toolchain)
diff --git a/third_party/rules_rust/wasm_bindgen/wasm_bindgen.bzl b/third_party/rules_rust/wasm_bindgen/wasm_bindgen.bzl
index d3a5524..9794313 100644
--- a/third_party/rules_rust/wasm_bindgen/wasm_bindgen.bzl
+++ b/third_party/rules_rust/wasm_bindgen/wasm_bindgen.bzl
@@ -20,9 +20,7 @@
 load(
     "//wasm_bindgen:providers.bzl",
     "DeclarationInfo",
-    "JSEcmaScriptModuleInfo",
     "JSModuleInfo",
-    "JSNamedModuleInfo",
 )
 
 _WASM_BINDGEN_DOC = """\
@@ -60,7 +58,7 @@
 toolchain(
     name = "wasm_bindgen_toolchain",
     toolchain = "wasm_bindgen_toolchain_impl",
-    toolchain_type = "@rules_rust//wasm_bindgen:wasm_bindgen_toolchain",
+    toolchain_type = "@rules_rust//wasm_bindgen:toolchain_type",
 )
 ```
 
@@ -131,7 +129,6 @@
     # Return a structure that is compatible with the deps[] of a ts_library.
     declarations = depset(ts_out)
     es5_sources = depset(js_out)
-    es6_sources = depset(js_out)
 
     return [
         DefaultInfo(
@@ -146,14 +143,6 @@
             direct_sources = es5_sources,
             sources = es5_sources,
         ),
-        JSNamedModuleInfo(
-            direct_sources = es5_sources,
-            sources = es5_sources,
-        ),
-        JSEcmaScriptModuleInfo(
-            direct_sources = es6_sources,
-            sources = es6_sources,
-        ),
     ]
 
 rust_wasm_bindgen = rule(
diff --git a/tools/lint/BUILD b/tools/lint/BUILD
index 55cccff..fedead2 100644
--- a/tools/lint/BUILD
+++ b/tools/lint/BUILD
@@ -15,7 +15,7 @@
     name = "rustfmt",
     srcs = ["rustfmt.sh"],
     data = [
-        "@rust//:rustfmt",
+        "@rust__x86_64-unknown-linux-gnu_tools//:rustfmt",
     ],
     deps = [
         "@bazel_tools//tools/bash/runfiles",
diff --git a/tools/lint/run-ci.sh b/tools/lint/run-ci.sh
index 5e48da6..33a3bf9 100755
--- a/tools/lint/run-ci.sh
+++ b/tools/lint/run-ci.sh
@@ -66,8 +66,8 @@
 
 cargo_raze() {
     local -r cargo_raze="$(readlink -f external/cargo_raze/impl/cargo_raze_bin)"
-    export CARGO="$(readlink -f external/rust/bin/cargo)"
-    export RUSTC="$(readlink -f external/rust/bin/rustc)"
+    export CARGO="$(readlink -f external/rust__x86_64-unknown-linux-gnu_tools/bin/cargo)"
+    export RUSTC="$(readlink -f external/rust__x86_64-unknown-linux-gnu_tools/bin/rustc)"
     cd "${BUILD_WORKSPACE_DIRECTORY}"
     # Note we don't run with --generate-lockfile here. If there's a new
     # dependency, we don't want to download it, just failing with an error
diff --git a/tools/lint/rustfmt.sh b/tools/lint/rustfmt.sh
index 57ce64f..42bb654 100755
--- a/tools/lint/rustfmt.sh
+++ b/tools/lint/rustfmt.sh
@@ -11,7 +11,7 @@
   { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e
 # --- end runfiles.bash initialization v2 ---
 
-readonly RUSTFMT="$(rlocation rust/bin/rustfmt)"
+readonly RUSTFMT="$(rlocation rust__x86_64-unknown-linux-gnu_tools/bin/rustfmt)"
 
 # Run everything from the root of the tree.
 cd "${BUILD_WORKSPACE_DIRECTORY}"
diff --git a/tools/rust/BUILD b/tools/rust/BUILD
index a5a2f89..a2d9317 100644
--- a/tools/rust/BUILD
+++ b/tools/rust/BUILD
@@ -16,7 +16,7 @@
         "@platforms//os:linux",
         "@platforms//cpu:x86_64",
     ],
-    toolchain = "@rust//:toolchain_for_x86_64-unknown-linux-gnu_impl",
+    toolchain = "@rust__x86_64-unknown-linux-gnu_tools//:rust_toolchain",
     toolchain_type = "@rules_rust//rust:toolchain",
 )
 
@@ -33,7 +33,7 @@
         # subtle order dependencies.
         "//tools/platforms/hardware:raspberry_pi",
     ],
-    toolchain = "@rust//:toolchain_for_armv7-unknown-linux-gnueabihf_impl",
+    toolchain = "@rust__armv7-unknown-linux-gnueabihf_tools//:rust_toolchain",
     toolchain_type = "@rules_rust//rust:toolchain",
 )
 
@@ -47,7 +47,7 @@
         "@platforms//os:linux",
         "@platforms//cpu:arm64",
     ],
-    toolchain = "@rust//:toolchain_for_aarch64-unknown-linux-gnu_impl",
+    toolchain = "@rust__aarch64-unknown-linux-gnu_tools//:rust_toolchain",
     toolchain_type = "@rules_rust//rust:toolchain",
 )
 
@@ -62,7 +62,7 @@
         "@platforms//cpu:armv7",
         "//tools/platforms/hardware:roborio",
     ],
-    toolchain = "@rust//:toolchain_for_arm-unknown-linux-gnueabi_impl",
+    toolchain = "@rust__arm-unknown-linux-gnueabi_tools//:rust_toolchain",
     toolchain_type = "@rules_rust//rust:toolchain",
 )